summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/dynamic.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2011-02-11 15:37:44 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2011-02-11 15:37:44 -0500
commitad9b85fa8e751f5bfc8c27705e86898131dbc62e (patch)
tree4cd8ce603a146413c276b061d3b6c7de1ed429ad /lib/sqlalchemy/orm/dynamic.py
parentd7fda4ae03f0e1c1ab73ced15e7b0472f36d1024 (diff)
downloadsqlalchemy-ad9b85fa8e751f5bfc8c27705e86898131dbc62e.tar.gz
- replace all usage of True and False for passive with PASSIVE_NO_INITIALIZE,
PASSIVE_OFF, now expresed as non-boolean symbols - make "passive" available positionally on all get_history() methods, call it like that
Diffstat (limited to 'lib/sqlalchemy/orm/dynamic.py')
-rw-r--r--lib/sqlalchemy/orm/dynamic.py35
1 files changed, 19 insertions, 16 deletions
diff --git a/lib/sqlalchemy/orm/dynamic.py b/lib/sqlalchemy/orm/dynamic.py
index 8dbdd8ffe..bdcb7b6b2 100644
--- a/lib/sqlalchemy/orm/dynamic.py
+++ b/lib/sqlalchemy/orm/dynamic.py
@@ -56,20 +56,20 @@ class DynamicAttributeImpl(attributes.AttributeImpl):
else:
self.query_class = mixin_user_query(query_class)
- def get(self, state, dict_, passive=False):
- if passive:
+ def get(self, state, dict_, passive=attributes.PASSIVE_OFF):
+ if passive is not attributes.PASSIVE_OFF:
return self._get_collection_history(state,
- passive=True).added_items
+ attributes.PASSIVE_NO_INITIALIZE).added_items
else:
return self.query_class(self, state)
- def get_collection(self, state, dict_, user_data=None, passive=True):
- if passive:
+ def get_collection(self, state, dict_, user_data=None,
+ passive=attributes.PASSIVE_NO_INITIALIZE):
+ if passive is not attributes.PASSIVE_OFF:
return self._get_collection_history(state,
- passive=passive).added_items
+ passive).added_items
else:
- history = self._get_collection_history(state,
- passive=passive)
+ history = self._get_collection_history(state, passive)
return history.added_items + history.unchanged_items
def fire_append_event(self, state, dict_, value, initiator):
@@ -132,7 +132,7 @@ class DynamicAttributeImpl(attributes.AttributeImpl):
raise NotImplementedError("Dynamic attributes don't support "
"collection population.")
- def get_history(self, state, dict_, passive=False):
+ def get_history(self, state, dict_, passive=attributes.PASSIVE_OFF):
c = self._get_collection_history(state, passive)
return attributes.History(c.added_items, c.unchanged_items,
c.deleted_items)
@@ -145,22 +145,24 @@ class DynamicAttributeImpl(attributes.AttributeImpl):
c.added_items + c.unchanged_items + c.deleted_items
]
- def _get_collection_history(self, state, passive=False):
+ def _get_collection_history(self, state, passive=attributes.PASSIVE_OFF):
if self.key in state.committed_state:
c = state.committed_state[self.key]
else:
c = CollectionHistory(self, state)
- if not passive:
+ if passive is attributes.PASSIVE_OFF:
return CollectionHistory(self, state, apply_to=c)
else:
return c
- def append(self, state, dict_, value, initiator, passive=False):
+ def append(self, state, dict_, value, initiator,
+ passive=attributes.PASSIVE_OFF):
if initiator is not self:
self.fire_append_event(state, dict_, value, initiator)
- def remove(self, state, dict_, value, initiator, passive=False):
+ def remove(self, state, dict_, value, initiator,
+ passive=attributes.PASSIVE_OFF):
if initiator is not self:
self.fire_remove_event(state, dict_, value, initiator)
@@ -225,7 +227,7 @@ class AppenderMixin(object):
if sess is None:
return iter(self.attr._get_collection_history(
attributes.instance_state(self.instance),
- passive=True).added_items)
+ attributes.PASSIVE_NO_INITIALIZE).added_items)
else:
return iter(self._clone(sess))
@@ -234,7 +236,8 @@ class AppenderMixin(object):
if sess is None:
return self.attr._get_collection_history(
attributes.instance_state(self.instance),
- passive=True).added_items.__getitem__(index)
+ attributes.PASSIVE_NO_INITIALIZE).added_items.\
+ __getitem__(index)
else:
return self._clone(sess).__getitem__(index)
@@ -243,7 +246,7 @@ class AppenderMixin(object):
if sess is None:
return len(self.attr._get_collection_history(
attributes.instance_state(self.instance),
- passive=True).added_items)
+ attributes.PASSIVE_NO_INITIALIZE).added_items)
else:
return self._clone(sess).count()