summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/util
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-12-12 13:01:34 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2010-12-12 13:01:34 -0500
commit0d71ea8126137d2b3d4141aa0fb30c2e64376d44 (patch)
treeedcc99227a474a61686f277fdc36cf2b0960e14c /lib/sqlalchemy/util
parent6d5dd2214a4cc6340d8f07147a43fac03a12b040 (diff)
downloadsqlalchemy-0d71ea8126137d2b3d4141aa0fb30c2e64376d44.tar.gz
- inlinings and callcount reductions
- add test coverage for the rare case of noload->lazyload + pickle
Diffstat (limited to 'lib/sqlalchemy/util')
-rw-r--r--lib/sqlalchemy/util/__init__.py2
-rw-r--r--lib/sqlalchemy/util/compat.py10
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/sqlalchemy/util/__init__.py b/lib/sqlalchemy/util/__init__.py
index aa150874f..9119e35b7 100644
--- a/lib/sqlalchemy/util/__init__.py
+++ b/lib/sqlalchemy/util/__init__.py
@@ -6,7 +6,7 @@
from compat import callable, cmp, reduce, defaultdict, py25_dict, \
threading, py3k, jython, win32, set_types, buffer, pickle, \
- update_wrapper, partial, md5_hex, decode_slice
+ update_wrapper, partial, md5_hex, decode_slice, dottedgetter
from _collections import NamedTuple, ImmutableContainer, frozendict, \
Properties, OrderedProperties, ImmutableProperties, OrderedDict, \
diff --git a/lib/sqlalchemy/util/compat.py b/lib/sqlalchemy/util/compat.py
index 59dd9eaf0..79dd6228f 100644
--- a/lib/sqlalchemy/util/compat.py
+++ b/lib/sqlalchemy/util/compat.py
@@ -188,6 +188,16 @@ else:
def decode_slice(slc):
return (slc.start, slc.stop, slc.step)
+if sys.version_info >= (2, 6):
+ from operator import attrgetter as dottedgetter
+else:
+ def dottedgetter(attr):
+ def g(obj):
+ for name in attr.split("."):
+ obj = getattr(obj, name)
+ return obj
+ return g
+
import decimal