summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/instrumentation.py
diff options
context:
space:
mode:
authorDiana Clarke <diana.joan.clarke@gmail.com>2012-11-19 14:16:39 -0500
committerDiana Clarke <diana.joan.clarke@gmail.com>2012-11-19 14:16:39 -0500
commit03687b36b78be86c0f2a01eeb658c5b52fbd6c76 (patch)
tree9b8ccc3fed989ef64d41a53d091e2309836a9992 /lib/sqlalchemy/ext/instrumentation.py
parentef326d9fe39ab493dd4aeaf2cecf9052a04d49b7 (diff)
downloadsqlalchemy-03687b36b78be86c0f2a01eeb658c5b52fbd6c76.tar.gz
just a pep8 pass of lib/sqlalchemy/ext
Diffstat (limited to 'lib/sqlalchemy/ext/instrumentation.py')
-rw-r--r--lib/sqlalchemy/ext/instrumentation.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/lib/sqlalchemy/ext/instrumentation.py b/lib/sqlalchemy/ext/instrumentation.py
index f840ad066..bb44a492c 100644
--- a/lib/sqlalchemy/ext/instrumentation.py
+++ b/lib/sqlalchemy/ext/instrumentation.py
@@ -61,6 +61,7 @@ attribute.
"""
+
def find_native_user_instrumentation_hook(cls):
"""Find user-specified instrumentation management for a class."""
return getattr(cls, INSTRUMENTATION_MANAGER, None)
@@ -81,6 +82,7 @@ ClassManager instrumentation is used.
"""
+
class ExtendedInstrumentationRegistry(InstrumentationFactory):
"""Extends :class:`.InstrumentationFactory` with additional
bookkeeping, to accommodate multiple types of
@@ -169,17 +171,21 @@ class ExtendedInstrumentationRegistry(InstrumentationFactory):
def state_of(self, instance):
if instance is None:
raise AttributeError("None has no persistent state.")
- return self._state_finders.get(instance.__class__, _default_state_getter)(instance)
+ return self._state_finders.get(
+ instance.__class__, _default_state_getter)(instance)
def dict_of(self, instance):
if instance is None:
raise AttributeError("None has no persistent state.")
- return self._dict_finders.get(instance.__class__, _default_dict_getter)(instance)
+ return self._dict_finders.get(
+ instance.__class__, _default_dict_getter)(instance)
+
orm_instrumentation._instrumentation_factory = \
_instrumentation_factory = ExtendedInstrumentationRegistry()
orm_instrumentation.instrumentation_finders = instrumentation_finders
+
class InstrumentationManager(object):
"""User-defined class instrumentation extension.
@@ -259,6 +265,7 @@ class InstrumentationManager(object):
def dict_getter(self, class_):
return lambda inst: self.get_instance_dict(class_, inst)
+
class _ClassInstrumentationAdapter(ClassManager):
"""Adapts a user-defined InstrumentationManager to a ClassManager."""
@@ -353,6 +360,7 @@ class _ClassInstrumentationAdapter(ClassManager):
def dict_getter(self):
return self._get_dict
+
def _install_instrumented_lookups():
"""Replace global class/object management functions
with ExtendedInstrumentationRegistry implementations, which
@@ -368,22 +376,24 @@ def _install_instrumented_lookups():
"""
_install_lookups(
dict(
- instance_state = _instrumentation_factory.state_of,
- instance_dict = _instrumentation_factory.dict_of,
- manager_of_class = _instrumentation_factory.manager_of_class
+ instance_state=_instrumentation_factory.state_of,
+ instance_dict=_instrumentation_factory.dict_of,
+ manager_of_class=_instrumentation_factory.manager_of_class
)
)
+
def _reinstall_default_lookups():
"""Restore simplified lookups."""
_install_lookups(
dict(
- instance_state = _default_state_getter,
- instance_dict = _default_dict_getter,
- manager_of_class = _default_manager_getter
+ instance_state=_default_state_getter,
+ instance_dict=_default_dict_getter,
+ manager_of_class=_default_manager_getter
)
)
+
def _install_lookups(lookups):
global instance_state, instance_dict, manager_of_class
instance_state = lookups['instance_state']