summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/sessioncontext.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2007-02-25 22:44:52 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2007-02-25 22:44:52 +0000
commit962c22c9eda7d2ab7dc0b41bd1c7a52cf0c9d008 (patch)
treef0ab113c7947c80dfea42d4a1bef52217bf6ed96 /lib/sqlalchemy/ext/sessioncontext.py
parent8fa3becd5fac57bb898a0090bafaac377b60f070 (diff)
downloadsqlalchemy-962c22c9eda7d2ab7dc0b41bd1c7a52cf0c9d008.tar.gz
migrated (most) docstrings to pep-257 format, docstring generator using straight <pre> + trim() func
for now. applies most of [ticket:214], compliemnts of Lele Gaifax
Diffstat (limited to 'lib/sqlalchemy/ext/sessioncontext.py')
-rw-r--r--lib/sqlalchemy/ext/sessioncontext.py47
1 files changed, 27 insertions, 20 deletions
diff --git a/lib/sqlalchemy/ext/sessioncontext.py b/lib/sqlalchemy/ext/sessioncontext.py
index f431f87c7..2f81e55d2 100644
--- a/lib/sqlalchemy/ext/sessioncontext.py
+++ b/lib/sqlalchemy/ext/sessioncontext.py
@@ -4,35 +4,41 @@ from sqlalchemy.orm.mapper import MapperExtension
__all__ = ['SessionContext', 'SessionContextExt']
class SessionContext(object):
- """A simple wrapper for ScopedRegistry that provides a "current" property
- which can be used to get, set, or remove the session in the current scope.
-
- By default this object provides thread-local scoping, which is the default
- scope provided by sqlalchemy.util.ScopedRegistry.
-
- Usage:
- engine = create_engine(...)
- def session_factory():
- return Session(bind_to=engine)
- context = SessionContext(session_factory)
-
- s = context.current # get thread-local session
- context.current = Session(bind_to=other_engine) # set current session
- del context.current # discard the thread-local session (a new one will
- # be created on the next call to context.current)
+ """A simple wrapper for ``ScopedRegistry`` that provides a
+ `current` property which can be used to get, set, or remove the
+ session in the current scope.
+
+ By default this object provides thread-local scoping, which is the
+ default scope provided by sqlalchemy.util.ScopedRegistry.
+
+ Usage::
+
+ engine = create_engine(...)
+ def session_factory():
+ return Session(bind_to=engine)
+ context = SessionContext(session_factory)
+
+ s = context.current # get thread-local session
+ context.current = Session(bind_to=other_engine) # set current session
+ del context.current # discard the thread-local session (a new one will
+ # be created on the next call to context.current)
"""
+
def __init__(self, session_factory, scopefunc=None):
self.registry = ScopedRegistry(session_factory, scopefunc)
super(SessionContext, self).__init__()
def get_current(self):
return self.registry()
+
def set_current(self, session):
self.registry.set(session)
+
def del_current(self):
self.registry.clear()
+
current = property(get_current, set_current, del_current,
- """Property used to get/set/del the session in the current scope""")
+ """Property used to get/set/del the session in the current scope.""")
def _get_mapper_extension(self):
try:
@@ -40,16 +46,17 @@ class SessionContext(object):
except AttributeError:
self._extension = ext = SessionContextExt(self)
return ext
+
mapper_extension = property(_get_mapper_extension,
- doc="""get a mapper extension that implements get_session using this context""")
+ doc="""Get a mapper extension that implements `get_session` using this context.""")
class SessionContextExt(MapperExtension):
- """a mapper extionsion that provides sessions to a mapper using SessionContext"""
+ """A mapper extension that provides sessions to a mapper using ``SessionContext``."""
def __init__(self, context):
MapperExtension.__init__(self)
self.context = context
-
+
def get_session(self):
return self.context.current