[Checkins]
SVN: Sandbox/ulif/zope.introspector/src/zope/introspector/utilityinfo.py
Let utilityinfo find also local utilities.
Uli Fouquet
uli at gnufix.de
Fri Jun 20 08:33:20 EDT 2008
Log message for revision 87597:
Let utilityinfo find also local utilities.
Changed:
U Sandbox/ulif/zope.introspector/src/zope/introspector/utilityinfo.py
-=-
Modified: Sandbox/ulif/zope.introspector/src/zope/introspector/utilityinfo.py
===================================================================
--- Sandbox/ulif/zope.introspector/src/zope/introspector/utilityinfo.py 2008-06-20 12:32:37 UTC (rev 87596)
+++ Sandbox/ulif/zope.introspector/src/zope/introspector/utilityinfo.py 2008-06-20 12:33:19 UTC (rev 87597)
@@ -13,6 +13,7 @@
##############################################################################
"""Infos about utilities.
"""
+import zope.component
from zope.component import globalregistry
class UtilityInfo(object):
@@ -21,7 +22,17 @@
self.context = obj
def getAllUtilities(self):
- return [
- dict(name=x.name, provided=x.provided,
- registry=x.registry, component=x.component)
- for x in list(globalregistry.base.registeredUtilities())]
+ smlist = [zope.component.getSiteManager(self.context)]
+ seen = []
+ result = []
+ while smlist:
+ sm = smlist.pop()
+ if sm in seen:
+ continue
+ seen.append(sm)
+ smlist += list(sm.__bases__)
+ for u in sm.registeredUtilities():
+ result.append(
+ dict(name = u.name, provided=u.provided,
+ registry=u.registry, component=u.component))
+ return result
More information about the Checkins
mailing list