diff options
| author | jonathan vanasco <jonathan@2xlp.com> | 2015-07-10 18:52:46 -0400 |
|---|---|---|
| committer | jonathan vanasco <jonathan@2xlp.com> | 2015-07-10 18:52:46 -0400 |
| commit | 0a5dcdc2c4112478d87e5cd68c187e302f586834 (patch) | |
| tree | dfdb29e7668d4a007bd243805fd38cbccd971ad1 /lib/sqlalchemy/ext/instrumentation.py | |
| parent | 6de3d490a2adb0fff43f98e15a53407b46668b61 (diff) | |
| parent | cadc2e0ba00feadf7e860598030bda0fb8bc691c (diff) | |
| download | sqlalchemy-0a5dcdc2c4112478d87e5cd68c187e302f586834.tar.gz | |
Merge branch 'master' of bitbucket.org:zzzeek/sqlalchemy
Diffstat (limited to 'lib/sqlalchemy/ext/instrumentation.py')
| -rw-r--r-- | lib/sqlalchemy/ext/instrumentation.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/sqlalchemy/ext/instrumentation.py b/lib/sqlalchemy/ext/instrumentation.py index 024136661..30a0ab7d7 100644 --- a/lib/sqlalchemy/ext/instrumentation.py +++ b/lib/sqlalchemy/ext/instrumentation.py @@ -166,7 +166,13 @@ class ExtendedInstrumentationRegistry(InstrumentationFactory): def manager_of_class(self, cls): if cls is None: return None - return self._manager_finders.get(cls, _default_manager_getter)(cls) + try: + finder = self._manager_finders.get(cls, _default_manager_getter) + except TypeError: + # due to weakref lookup on invalid object + return None + else: + return finder(cls) def state_of(self, instance): if instance is None: @@ -392,6 +398,7 @@ def _reinstall_default_lookups(): manager_of_class=_default_manager_getter ) ) + _instrumentation_factory._extended = False def _install_lookups(lookups): |
