From: Jonathan Ellis Date: Wed, 17 Jan 2007 18:25:37 +0000 (+0000) Subject: document "Accessing the Session" X-Git-Tag: rel_0_3_4~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d22b16255c98cd760fdd55657c24b8c5e131ac1;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git document "Accessing the Session" --- diff --git a/lib/sqlalchemy/ext/sqlsoup.py b/lib/sqlalchemy/ext/sqlsoup.py index d3081bc237..7b0a5759df 100644 --- a/lib/sqlalchemy/ext/sqlsoup.py +++ b/lib/sqlalchemy/ext/sqlsoup.py @@ -163,6 +163,21 @@ to disambiguate columns with their table name: Advanced Use ============ +Accessing the Session +--------------------- + +SqlSoup uses a SessionContext to provide thread-local sessions. You can +get a reference to the current one like this: + + >>> from sqlalchemy.ext.sqlsoup import objectstore + >>> session = objectstore.current + +Now you have access to all the standard session-based SA features, such +as transactions. (SqlSoup's flush() is normally transactionalized, but +you can perform manual transaction management if you need a transaction +to span multiple flushes.) + + Mapping arbitrary Selectables ----------------------------- @@ -336,7 +351,7 @@ def _selectable_name(selectable): def class_for_table(selectable, **mapper_kwargs): if not hasattr(selectable, '_selectable') \ or selectable._selectable() != selectable: - raise 'class_for_table requires a selectable as its argument' + raise ArgumentError('class_for_table requires a selectable as its argument') mapname = 'Mapped' + _selectable_name(selectable) klass = TableClassType(mapname, (object,), {}) def __cmp__(self, o):