diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-02-25 22:44:52 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2007-02-25 22:44:52 +0000 |
commit | 962c22c9eda7d2ab7dc0b41bd1c7a52cf0c9d008 (patch) | |
tree | f0ab113c7947c80dfea42d4a1bef52217bf6ed96 /lib/sqlalchemy/ext/sessioncontext.py | |
parent | 8fa3becd5fac57bb898a0090bafaac377b60f070 (diff) | |
download | sqlalchemy-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.py | 47 |
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 |