[Zope-Checkins] CVS: Zope3/lib/python/Zope/ComponentArchitecture - hooks.py:1.1.2.19.4.1

Gary Poster garyposter@earthlink.net
Mon, 1 Apr 2002 14:29:39 -0500


Update of /cvs-repository/Zope3/lib/python/Zope/ComponentArchitecture
In directory cvs.zope.org:/tmp/cvs-serv30049/ComponentArchitecture

Modified Files:
      Tag: gary-pre_create_views-branch
	hooks.py 
Log Message:
hooks.py now can call factories with arguments, and the traverse knows what to do with the ;create namespace



=== Zope3/lib/python/Zope/ComponentArchitecture/hooks.py 1.1.2.19 => 1.1.2.19.4.1 ===
     return provideFactory_hook(qname, factory)
 
-def createObject(place, name):
-    return createObject_hook(place, name)
+def createObject(place, name, *args, **kwargs):
+    return createObject_hook(place, name, args, kwargs)
 
 # default hooks
 
@@ -80,15 +80,14 @@
     _verify(_IFactory, factory)
     _factories[qname] = factory
 
-def createObject_hook(place, name):
+def createObject_hook(place, name, args=[], kwargs={}): ### # gary
 
     # XXX: place is ignored at present, as we don't yet
     #      have placeful factories
 
-    try: factory = _factories[name]
+    try: return _factories[name](*args, **kwargs)
     except KeyError:
         raise ComponentLookupError(name)
-    return factory()
 
 def _clear():
     global _adapters, _utilities, _factories