]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Always use native itemgetter & attrgetter
authorJason Kirtland <jek@discorporate.us>
Tue, 15 Jul 2008 19:53:17 +0000 (19:53 +0000)
committerJason Kirtland <jek@discorporate.us>
Tue, 15 Jul 2008 19:53:17 +0000 (19:53 +0000)
lib/sqlalchemy/ext/associationproxy.py
lib/sqlalchemy/orm/attributes.py
lib/sqlalchemy/orm/collections.py
lib/sqlalchemy/orm/query.py
lib/sqlalchemy/sql/expression.py
lib/sqlalchemy/util.py

index 5415bf98857c076902c9371274678d7ccdb77574..e856d5e02be3195c4288b20b1245af473ab3d912 100644 (file)
@@ -7,6 +7,7 @@ See the example ``examples/association/proxied_association.py``.
 
 """
 import itertools
+import operator
 import weakref
 from sqlalchemy import exceptions
 from sqlalchemy import orm
@@ -206,7 +207,7 @@ class AssociationProxy(object):
 
     def _default_getset(self, collection_class):
         attr = self.value_attr
-        getter = util.attrgetter(attr)
+        getter = operator.attrgetter(attr)
         if collection_class is dict:
             setter = lambda o, k, v: setattr(o, attr, v)
         else:
index 85a842c08a1c0ea804a35bf27dee92139c7be0a3..fa5fb69a3cd9d77c7336e0a1ca0ebecfaa8a4126 100644 (file)
@@ -5,10 +5,11 @@
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
 import operator
+from operator import attrgetter, itemgetter
 import weakref
 
 from sqlalchemy import util
-from sqlalchemy.util import attrgetter, itemgetter, EMPTY_SET
+from sqlalchemy.util import EMPTY_SET
 from sqlalchemy.orm import interfaces, collections, exc
 import sqlalchemy.exceptions as sa_exc
 
index 98ce70c204b2c190512d09d883f440a76261cb09..d868145259d515d5606a2a3bd867a19a30cd2e4a 100644 (file)
@@ -98,6 +98,7 @@ through the adapter, allowing for some very sophisticated behavior.
 
 import copy
 import inspect
+import operator
 import sets
 import sys
 import weakref
@@ -105,7 +106,7 @@ import weakref
 import sqlalchemy.exceptions as sa_exc
 from sqlalchemy import schema
 import sqlalchemy.util as sautil
-from sqlalchemy.util import attrgetter
+
 
 
 __all__ = ['collection', 'collection_adapter',
@@ -162,7 +163,7 @@ def attribute_mapped_collection(attr_name):
     after a session flush.
 
     """
-    return lambda: MappedCollection(attrgetter(attr_name))
+    return lambda: MappedCollection(operator.attrgetter(attr_name))
 
 
 def mapped_collection(keyfunc):
index f1bd9eb83b7431810015b0a1f68b1922e06ec0de..5f9ee46c5a4c9c6fb47160c6a3f28f34cc299477 100644 (file)
@@ -19,6 +19,7 @@ iterable result sets.
 """
 
 from itertools import chain
+from operator import itemgetter
 
 from sqlalchemy import sql, util, log, schema
 from sqlalchemy import exc as sa_exc
@@ -1078,7 +1079,7 @@ class Query(object):
         (process, labels) = zip(*[query_entity.row_processor(self, context, custom_rows) for query_entity in self._entities])
 
         if not single_entity:
-            labels = dict((label, property(util.itemgetter(i)))
+            labels = dict((label, property(itemgetter(i)))
                           for i, label in enumerate(labels)
                           if label)
             rowtuple = type.__new__(type, "RowTuple", (tuple,), labels)
index fb989dee05e732edde59742876a92b4e2e3d2289..c026065e3a444d31145b9ce61fcd27ba00aacbe5 100644 (file)
@@ -26,6 +26,8 @@ to stay the same in future releases.
 """
 
 import itertools, re
+from operator import attrgetter
+
 from sqlalchemy import util, exc
 from sqlalchemy.sql import operators, visitors
 from sqlalchemy import types as sqltypes
@@ -1784,7 +1786,7 @@ class FromClause(Selectable):
                 delattr(self, attr)
 
     def _expr_attr_func(name):
-        get = util.attrgetter(name)
+        get = attrgetter(name)
         def attr(self):
             try:
                 return get(self)
@@ -2547,7 +2549,7 @@ class _Label(ColumnElement):
     _label = property(_label)
 
     def _proxy_attr(name):
-        get = util.attrgetter(name)
+        get = attrgetter(name)
         def attr(self):
             return get(self.element)
         return property(attr)
index 1eacca19a8f55757e14d43ad2568dbb4bbd7c2be..a389ccca4fc74980ebb0e282e956e265515c4528 100644 (file)
@@ -27,19 +27,6 @@ try:
 except ImportError:
     import pickle
 
-
-try:
-    from operator import attrgetter
-except ImportError:
-    def attrgetter(attribute):
-        return lambda value: getattr(value, attribute)
-
-try:
-    from operator import itemgetter
-except ImportError:
-    def itemgetter(attribute):
-        return lambda value: value[attribute]
-
 if sys.version_info >= (2, 5):
     class PopulateDict(dict):
         """a dict which populates missing values via a creation function.
@@ -602,8 +589,9 @@ class OrderedProperties(object):
     def clear(self):
         self._data.clear()
 
+
 class OrderedDict(dict):
-    """A Dictionary that returns keys/values/items in the order they were added."""
+    """A dict that returns keys/values/items in the order they were added."""
 
     def __init__(self, ____sequence=None, **kwargs):
         self._list = []
@@ -616,10 +604,10 @@ class OrderedDict(dict):
     def clear(self):
         self._list = []
         dict.clear(self)
-    
+
     def sort(self, fn=None):
         self._list.sort(fn)
-        
+
     def update(self, ____sequence=None, **kwargs):
         if ____sequence is not None:
             if hasattr(____sequence, 'keys'):