diff options
Diffstat (limited to 'lib/sqlalchemy/orm/attributes.py')
| -rw-r--r-- | lib/sqlalchemy/orm/attributes.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/sqlalchemy/orm/attributes.py b/lib/sqlalchemy/orm/attributes.py index 27f4b017c..123a99c9a 100644 --- a/lib/sqlalchemy/orm/attributes.py +++ b/lib/sqlalchemy/orm/attributes.py @@ -686,7 +686,7 @@ class InstanceState(object): self._strong_obj = None -class InstanceDict(UserDict.UserDict): +class WeakInstanceDict(UserDict.UserDict): """similar to WeakValueDictionary, but wired towards 'state' objects.""" def __init__(self, *args, **kw): @@ -802,7 +802,12 @@ class InstanceDict(UserDict.UserDict): def copy(self): raise NotImplementedError() - + def all_states(self): + return self.data.values() + +class StrongInstanceDict(dict): + def all_states(self): + return [o._state for o in self.values()] class AttributeHistory(object): """Calculate the *history* of a particular attribute on a |
