[Checkins] SVN: z3c.saconfig/trunk/src/z3c/saconfig/ allow relative dotted names in zcml directives; named_scoped_session with a null name is same as Session

Laurence Rowe l at lrowe.co.uk
Thu Oct 9 13:36:20 EDT 2008


Log message for revision 91926:
  allow relative dotted names in zcml directives; named_scoped_session with a null name is same as Session

Changed:
  U   z3c.saconfig/trunk/src/z3c/saconfig/scopedsession.py
  U   z3c.saconfig/trunk/src/z3c/saconfig/zcml.py

-=-
Modified: z3c.saconfig/trunk/src/z3c/saconfig/scopedsession.py
===================================================================
--- z3c.saconfig/trunk/src/z3c/saconfig/scopedsession.py	2008-10-09 17:16:57 UTC (rev 91925)
+++ z3c.saconfig/trunk/src/z3c/saconfig/scopedsession.py	2008-10-09 17:36:19 UTC (rev 91926)
@@ -23,7 +23,7 @@
 # to define behavior.
 Session = scoped_session(session_factory, scopefunc)
 
-_named_scoped_sessions = {}
+_named_scoped_sessions = {u'': Session}
 
 def named_scoped_session(name):
     try:

Modified: z3c.saconfig/trunk/src/z3c/saconfig/zcml.py
===================================================================
--- z3c.saconfig/trunk/src/z3c/saconfig/zcml.py	2008-10-09 17:16:57 UTC (rev 91925)
+++ z3c.saconfig/trunk/src/z3c/saconfig/zcml.py	2008-10-09 17:36:19 UTC (rev 91926)
@@ -1,7 +1,7 @@
 import zope.interface
 import zope.schema
 import zope.component.zcml
-import zope.dottedname.resolve
+from zope.configuration.name import resolve
 
 import utility
 import interfaces
@@ -26,7 +26,7 @@
         required=False,
         default=False)
 
-    setup = zope.schema.DottedName(
+    setup = zope.schema.BytesLine(
         title=u'After engine creation hook',
         description=u'Callback for creating mappers etc. One argument is passed, the engine',
         required=False,
@@ -72,12 +72,18 @@
         name=name)
     
     if setup:
-        callback = zope.dottedname.resolve.resolve(setup)
+        if _context.package is None:
+            callback = resolve(setup)
+        else:
+            callback = resolve(setup, package=_context.package.__name__)
         callback(factory())
 
 def session(_context, name=u"", engine=u"", twophase=False,
             factory="z3c.saconfig.utility.GloballyScopedSession"):
-    ScopedSession = zope.dottedname.resolve.resolve(factory)
+    if _context.package is None:
+        ScopedSession = resolve(factory)
+    else:
+        ScopedSession = resolve(factory, package=_context.package.__name__)
     scoped_session = ScopedSession(engine=engine, twophase=twophase)
 
     zope.component.zcml.utility(



More information about the Checkins mailing list