[Checkins] SVN: z3c.saconfig/trunk/src/z3c/saconfig/utility.py
Support SA 0.4-series by having distinct session defaults
(similar to the test-setup in zope.sqlalchemy).
Malthe Borch
mborch at gmail.com
Wed Jul 9 05:23:06 EDT 2008
Log message for revision 88138:
Support SA 0.4-series by having distinct session defaults (similar to the test-setup in zope.sqlalchemy).
Changed:
U z3c.saconfig/trunk/src/z3c/saconfig/utility.py
-=-
Modified: z3c.saconfig/trunk/src/z3c/saconfig/utility.py
===================================================================
--- z3c.saconfig/trunk/src/z3c/saconfig/utility.py 2008-07-09 09:10:56 UTC (rev 88137)
+++ z3c.saconfig/trunk/src/z3c/saconfig/utility.py 2008-07-09 09:23:05 UTC (rev 88138)
@@ -14,6 +14,19 @@
from z3c.saconfig.interfaces import (IScopedSession, ISiteScopedSession,
IEngineFactory)
+SA_0_5 = sqlalchemy.__version__.split('.')[:2] == ['0', '5']
+
+if SA_0_5:
+ SESSION_DEFAULTS = dict(
+ autocommit=False,
+ autoflush=True,
+ extension=ZopeTransactionExtension())
+else:
+ SESSION_DEFAULTS = dict(
+ autoflush=True,
+ transactional=True,
+ extension=ZopeTransactionExtension())
+
class GloballyScopedSession(object):
"""A globally scoped session.
@@ -57,13 +70,11 @@
def _zope_session_defaults(kw):
"""Adjust keyword parameters with proper defaults for Zope.
"""
+
kw = kw.copy()
- if 'autocommit' not in kw:
- kw['autocommit'] = False
- if 'autoflush' not in kw:
- kw['autoflush'] = True
- if 'extension' not in kw:
- kw['extension'] = ZopeTransactionExtension()
+ kw.update(dict((key, default) for key, default in SESSION_DEFAULTS.items() \
+ if key not in kw))
+
return kw
class SiteScopedSession(object):
More information about the Checkins
mailing list