diff options
Diffstat (limited to 'lib/sqlalchemy/mods/threadlocal.py')
-rw-r--r-- | lib/sqlalchemy/mods/threadlocal.py | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/lib/sqlalchemy/mods/threadlocal.py b/lib/sqlalchemy/mods/threadlocal.py deleted file mode 100644 index c8043bc62..000000000 --- a/lib/sqlalchemy/mods/threadlocal.py +++ /dev/null @@ -1,53 +0,0 @@ -"""This plugin installs thread-local behavior at the ``Engine`` and ``Session`` level. - -The default ``Engine`` strategy will be *threadlocal*, producing -``TLocalEngine`` instances for create_engine by default. - -With this engine, ``connect()`` method will return the same connection -on the same thread, if it is already checked out from the pool. This -greatly helps functions that call multiple statements to be able to -easily use just one connection without explicit ``close`` statements -on result handles. - -On the ``Session`` side, module-level methods will be installed within -the objectstore module, such as ``flush()``, ``delete()``, etc. which -call this method on the thread-local session. - -Note: this mod creates a global, thread-local session context named -``sqlalchemy.objectstore``. All mappers created while this mod is -installed will reference this global context when creating new mapped -object instances. -""" - -from sqlalchemy import util, engine, mapper -from sqlalchemy.ext.sessioncontext import SessionContext -import sqlalchemy.ext.assignmapper as assignmapper -from sqlalchemy.orm.mapper import global_extensions -from sqlalchemy.orm.session import Session -import sqlalchemy -import sys, types - -__all__ = ['Objectstore', 'assign_mapper'] - -class Objectstore(object): - def __init__(self, *args, **kwargs): - self.context = SessionContext(*args, **kwargs) - def __getattr__(self, name): - return getattr(self.context.current, name) - session = property(lambda s:s.context.current) - -def assign_mapper(class_, *args, **kwargs): - assignmapper.assign_mapper(objectstore.context, class_, *args, **kwargs) - -objectstore = Objectstore(Session) -def install_plugin(): - sqlalchemy.objectstore = objectstore - global_extensions.append(objectstore.context.mapper_extension) - engine.default_strategy = 'threadlocal' - sqlalchemy.assign_mapper = assign_mapper - -def uninstall_plugin(): - engine.default_strategy = 'plain' - global_extensions.remove(objectstore.context.mapper_extension) - -install_plugin() |