From 4b614b9b35cd2baddb7ca67c04bee5d70ec6a172 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 27 Apr 2013 19:53:57 -0400 Subject: - the raw 2to3 run - went through examples/ and cleaned out excess list() calls --- lib/sqlalchemy/ext/associationproxy.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) (limited to 'lib/sqlalchemy/ext/associationproxy.py') diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index 252efcb42..ad09db831 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -475,7 +475,7 @@ class _AssociationCollection(object): def __len__(self): return len(self.col) - def __nonzero__(self): + def __bool__(self): return bool(self.col) def __getstate__(self): @@ -514,7 +514,7 @@ class _AssociationList(_AssociationCollection): stop = index.stop step = index.step or 1 - rng = range(index.start or 0, stop, step) + rng = list(range(index.start or 0, stop, step)) if step == 1: for i in rng: del self[index.start] @@ -569,7 +569,7 @@ class _AssociationList(_AssociationCollection): def count(self, value): return sum([1 for _ in - itertools.ifilter(lambda v: v == value, iter(self))]) + filter(lambda v: v == value, iter(self))]) def extend(self, values): for v in values: @@ -668,8 +668,8 @@ class _AssociationList(_AssociationCollection): def __hash__(self): raise TypeError("%s objects are unhashable" % type(self).__name__) - for func_name, func in locals().items(): - if (util.callable(func) and func.func_name == func_name and + for func_name, func in list(locals().items()): + if (util.callable(func) and func.__name__ == func_name and not func.__doc__ and hasattr(list, func_name)): func.__doc__ = getattr(list, func_name).__doc__ del func_name, func @@ -711,7 +711,7 @@ class _AssociationDict(_AssociationCollection): return key in self.col def __iter__(self): - return self.col.iterkeys() + return iter(self.col.keys()) def clear(self): self.col.clear() @@ -738,7 +738,7 @@ class _AssociationDict(_AssociationCollection): return cmp(dict(self), other) def __repr__(self): - return repr(dict(self.items())) + return repr(dict(list(self.items()))) def get(self, key, default=None): try: @@ -754,13 +754,13 @@ class _AssociationDict(_AssociationCollection): return self[key] def keys(self): - return self.col.keys() + return list(self.col.keys()) def iterkeys(self): - return self.col.iterkeys() + return iter(self.col.keys()) def values(self): - return [self._get(member) for member in self.col.values()] + return [self._get(member) for member in list(self.col.values())] def itervalues(self): for key in self.col: @@ -811,13 +811,13 @@ class _AssociationDict(_AssociationCollection): self[key] = value def copy(self): - return dict(self.items()) + return dict(list(self.items())) def __hash__(self): raise TypeError("%s objects are unhashable" % type(self).__name__) - for func_name, func in locals().items(): - if (util.callable(func) and func.func_name == func_name and + for func_name, func in list(locals().items()): + if (util.callable(func) and func.__name__ == func_name and not func.__doc__ and hasattr(dict, func_name)): func.__doc__ = getattr(dict, func_name).__doc__ del func_name, func @@ -838,7 +838,7 @@ class _AssociationSet(_AssociationCollection): def __len__(self): return len(self.col) - def __nonzero__(self): + def __bool__(self): if self.col: return True else: @@ -1014,8 +1014,8 @@ class _AssociationSet(_AssociationCollection): def __hash__(self): raise TypeError("%s objects are unhashable" % type(self).__name__) - for func_name, func in locals().items(): - if (util.callable(func) and func.func_name == func_name and + for func_name, func in list(locals().items()): + if (util.callable(func) and func.__name__ == func_name and not func.__doc__ and hasattr(set, func_name)): func.__doc__ = getattr(set, func_name).__doc__ del func_name, func -- cgit v1.2.1 From 220fa91337aced11789b23065289203414f2063d Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sat, 4 May 2013 16:23:27 -0400 Subject: most of ORM passing... --- lib/sqlalchemy/ext/associationproxy.py | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lib/sqlalchemy/ext/associationproxy.py') diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index ad09db831..e0a867e5a 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -478,6 +478,8 @@ class _AssociationCollection(object): def __bool__(self): return bool(self.col) + __nonzero__ = __bool__ + def __getstate__(self): return {'parent': self.parent, 'lazy_collection': self.lazy_collection} -- cgit v1.2.1 From 61c796786cb222cfdca611395d8550973fc3f8d5 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 26 May 2013 18:23:26 -0400 Subject: do a sweep of some obvious 3kisms --- lib/sqlalchemy/ext/associationproxy.py | 43 +++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 16 deletions(-) (limited to 'lib/sqlalchemy/ext/associationproxy.py') 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__ -- cgit v1.2.1 From 6cde27fe9161a21b075c7b8faa09d1e77169f1f2 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 26 May 2013 19:06:13 -0400 Subject: a pass where we try to squash down as many list()/keys() combinations as possible --- lib/sqlalchemy/ext/associationproxy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/sqlalchemy/ext/associationproxy.py') diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index 39f8a7cf6..08875c3a0 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -778,7 +778,7 @@ class _AssociationDict(_AssociationCollection): iteritems = _iteritems def values(self): - return [self._get(member) for member in list(self.col.values())] + return [self._get(member) for member in self.col.values()] def items(self): return [(k, self._get(self.col[k])) for k in self] -- cgit v1.2.1 From 6abd0c4eac69ba9ca3530a9e5076d57a5b42b998 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 26 May 2013 20:17:22 -0400 Subject: clean up some of this collection stuff --- lib/sqlalchemy/ext/associationproxy.py | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) (limited to 'lib/sqlalchemy/ext/associationproxy.py') diff --git a/lib/sqlalchemy/ext/associationproxy.py b/lib/sqlalchemy/ext/associationproxy.py index 08875c3a0..0482a9205 100644 --- a/lib/sqlalchemy/ext/associationproxy.py +++ b/lib/sqlalchemy/ext/associationproxy.py @@ -758,24 +758,15 @@ class _AssociationDict(_AssociationCollection): def keys(self): return self.col.keys() - def _iteritems(self): - for key in self.col: - yield (key, self._get(self.col[key])) - raise StopIteration - - def _itervalues(self): - for key in self.col: - yield self._get(self.col[key]) - raise StopIteration + if util.py2k: + def iteritems(self): + return ((key, self._get(self.col[key])) for key in self.col) - def _iterkeys(self): - return self.col.iterkeys() + def itervalues(self): + return (self._get(self.col[key]) for key in self.col) - - if util.py2k: - iterkeys = _iterkeys - itervalues = _itervalues - iteritems = _iteritems + def iterkeys(self): + return self.col.iterkeys() def values(self): return [self._get(member) for member in self.col.values()] @@ -783,8 +774,11 @@ class _AssociationDict(_AssociationCollection): def items(self): return [(k, self._get(self.col[k])) for k in self] else: - values = _itervalues - items = _iteritems + def items(self): + return ((key, self._get(self.col[key])) for key in self.col) + + def values(self): + return (self._get(self.col[key]) for key in self.col) def pop(self, key, default=_NotProvided): if default is _NotProvided: -- cgit v1.2.1