summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/engine/threadlocal.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-08-09 23:34:23 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-08-09 23:34:23 -0400
commitf665ae746428cdb69e97d4576da29268a388569a (patch)
treea997fe24b9f0c7e7fa9df600b3e8f750b497d038 /lib/sqlalchemy/engine/threadlocal.py
parenta9288ca5bd979d8aab9921f71bf5b722b1c3ab3d (diff)
downloadsqlalchemy-f665ae746428cdb69e97d4576da29268a388569a.tar.gz
this reorganizes things so the EventDescriptor and all is on a "Dispatch" object.
this leaves the original Event class alone so sphinx documents it. this is all a mess right now but the pool/engine tests are working fully at the moment so wanted to mark a working version.
Diffstat (limited to 'lib/sqlalchemy/engine/threadlocal.py')
-rw-r--r--lib/sqlalchemy/engine/threadlocal.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/lib/sqlalchemy/engine/threadlocal.py b/lib/sqlalchemy/engine/threadlocal.py
index 785c6e96a..b6e687b7c 100644
--- a/lib/sqlalchemy/engine/threadlocal.py
+++ b/lib/sqlalchemy/engine/threadlocal.py
@@ -27,7 +27,15 @@ class TLConnection(base.Connection):
self.__opencount = 0
base.Connection.close(self)
-
+class TLEvents(base.EngineEvents):
+ @classmethod
+ def listen(cls, fn, identifier, target):
+ if issubclass(target.TLConnection, TLConnection):
+ target.TLConnection = base._proxy_connection_cls(
+ TLConnection,
+ target.dispatch)
+ base.EngineEvents.listen(fn, identifier, target)
+
class TLEngine(base.Engine):
"""An Engine that includes support for thread-local managed transactions."""
@@ -37,15 +45,7 @@ class TLEngine(base.Engine):
super(TLEngine, self).__init__(*args, **kwargs)
self._connections = util.threading.local()
- class events(base.Engine.events):
- @classmethod
- def listen(cls, fn, identifier, target):
- if issubclass(target.TLConnection, TLConnection):
- target.TLConnection = base._proxy_connection_cls(
- TLConnection,
- target.events)
- base.Engine.events.listen(fn, identifier, target)
- events = event.dispatcher(events)
+ dispatch = event.dispatcher(TLEvents)
def contextual_connect(self, **kw):
if not hasattr(self._connections, 'conn'):