summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2013-05-26 18:23:26 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2013-05-26 18:23:26 -0400
commit61c796786cb222cfdca611395d8550973fc3f8d5 (patch)
treed635c3f6042a51d9b0b08448f8507afe0255b18f /lib/sqlalchemy/ext
parentebc03d5e63f41b51a5adf24b9c84978d09b74818 (diff)
downloadsqlalchemy-61c796786cb222cfdca611395d8550973fc3f8d5.tar.gz
do a sweep of some obvious 3kisms
Diffstat (limited to 'lib/sqlalchemy/ext')
-rw-r--r--lib/sqlalchemy/ext/associationproxy.py43
1 files changed, 27 insertions, 16 deletions
diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py
index e0a867e5a..39f8a7cf6 100644
--- a/lib/sqlalchemy/ext/associationproxy.py
+++ b/lib/sqlalchemy/ext/associationproxy.py
@@ -571,7 +571,7 @@ class _AssociationList(_AssociationCollection):
def count(self, value):
return sum([1 for _ in
- filter(lambda v: v == value, iter(self))])
+ util.itertools_filter(lambda v: v == value, iter(self))])
def extend(self, values):
for v in values:
@@ -740,7 +740,7 @@ class _AssociationDict(_AssociationCollection):
return cmp(dict(self), other)
def __repr__(self):
- return repr(dict(list(self.items())))
+ return repr(dict(self.items()))
def get(self, key, default=None):
try:
@@ -756,26 +756,35 @@ class _AssociationDict(_AssociationCollection):
return self[key]
def keys(self):
- return list(self.col.keys())
+ return self.col.keys()
- def iterkeys(self):
- return iter(self.col.keys())
-
- def values(self):
- return [self._get(member) for member in list(self.col.values())]
+ def _iteritems(self):
+ for key in self.col:
+ yield (key, self._get(self.col[key]))
+ raise StopIteration
- def itervalues(self):
+ def _itervalues(self):
for key in self.col:
yield self._get(self.col[key])
raise StopIteration
- def items(self):
- return [(k, self._get(self.col[k])) for k in self]
+ def _iterkeys(self):
+ return self.col.iterkeys()
- def iteritems(self):
- for key in self.col:
- yield (key, self._get(self.col[key]))
- raise StopIteration
+
+ if util.py2k:
+ iterkeys = _iterkeys
+ itervalues = _itervalues
+ iteritems = _iteritems
+
+ def values(self):
+ return [self._get(member) for member in list(self.col.values())]
+
+ def items(self):
+ return [(k, self._get(self.col[k])) for k in self]
+ else:
+ values = _itervalues
+ items = _iteritems
def pop(self, key, default=_NotProvided):
if default is _NotProvided:
@@ -813,7 +822,7 @@ class _AssociationDict(_AssociationCollection):
self[key] = value
def copy(self):
- return dict(list(self.items()))
+ return dict(self.items())
def __hash__(self):
raise TypeError("%s objects are unhashable" % type(self).__name__)
@@ -846,6 +855,8 @@ class _AssociationSet(_AssociationCollection):
else:
return False
+ __nonzero__ = __bool__
+
def __contains__(self, value):
for member in self.col:
# testlib.pragma exempt:__eq__