summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/identity.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-05-24 17:02:47 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2014-05-24 17:02:47 -0400
commitf9adac0a34e49bacfc02cb18a899b4ae757754dd (patch)
tree8f15dae4d4b874c8dfb27248c8610a8517afbe87 /lib/sqlalchemy/orm/identity.py
parente41af7fcfd284ac590a368c072f7714a3f43459c (diff)
downloadsqlalchemy-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.py39
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()]