diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-05-24 17:02:47 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-05-24 17:02:47 -0400 |
commit | f9adac0a34e49bacfc02cb18a899b4ae757754dd (patch) | |
tree | 8f15dae4d4b874c8dfb27248c8610a8517afbe87 /lib/sqlalchemy/orm/identity.py | |
parent | e41af7fcfd284ac590a368c072f7714a3f43459c (diff) | |
download | sqlalchemy-f9adac0a34e49bacfc02cb18a899b4ae757754dd.tar.gz |
- fix some identity map accessors
- fix a bad comparison in MySQL w/ limit/offset thing
Diffstat (limited to 'lib/sqlalchemy/orm/identity.py')
-rw-r--r-- | lib/sqlalchemy/orm/identity.py | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/sqlalchemy/orm/identity.py b/lib/sqlalchemy/orm/identity.py index f75aeba55..fa3a31d9c 100644 --- a/lib/sqlalchemy/orm/identity.py +++ b/lib/sqlalchemy/orm/identity.py @@ -14,6 +14,9 @@ class IdentityMap(object): self._modified = set() self._wr = weakref.ref(self) + def keys(self): + return self._dict.keys() + def replace(self, state): raise NotImplementedError() @@ -173,6 +176,10 @@ class WeakInstanceDict(IdentityMap): def itervalues(self): return iter(self.values()) + + def __iter__(self): + return iter(self.keys()) + else: def items(self): return iter(self._items()) @@ -180,6 +187,9 @@ class WeakInstanceDict(IdentityMap): def values(self): return iter(self._values()) + def __iter__(self): + return self.keys() + def all_states(self): if util.py2k: return self._dict.values() @@ -198,6 +208,35 @@ class WeakInstanceDict(IdentityMap): class StrongInstanceDict(IdentityMap): + if util.py2k: + def itervalues(self): + return self._dict.itervalues() + + def iteritems(self): + return self._dict.iteritems() + + def __iter__(self): + return iter(self.keys()) + else: + def __iter__(self): + return self.keys() + + def __getitem__(self, key): + return self._dict[key] + + def __contains__(self, key): + return key in self._dict + + def get(self, key, default=None): + return self._dict.get(key, default) + + def values(self): + return self._dict.values() + + def items(self): + return self._dict.items() + + def all_states(self): return [attributes.instance_state(o) for o in self.values()] |