[Checkins]
SVN: grokui.introspector/trunk/src/grokui/introspector/introspector.py
Add an introspector traverser and make introspectors locatable.
Uli Fouquet
uli at gnufix.de
Tue Jul 8 09:45:07 EDT 2008
Log message for revision 88109:
Add an introspector traverser and make introspectors locatable.
Changed:
U grokui.introspector/trunk/src/grokui/introspector/introspector.py
-=-
Modified: grokui.introspector/trunk/src/grokui/introspector/introspector.py
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/introspector.py 2008-07-08 12:36:37 UTC (rev 88108)
+++ grokui.introspector/trunk/src/grokui/introspector/introspector.py 2008-07-08 13:45:06 UTC (rev 88109)
@@ -15,14 +15,27 @@
"""
import grok
from zope.introspector import UtilityInfo
+from zope.location.interfaces import ILocation
+from zope.traversing.interfaces import ITraversable
+from grok.interfaces import IContext
from grokui.introspector.interfaces import (IGrokIntrospector,
IGrokRegistryIntrospector,
IGrokCodeIntrospector,
IGrokZODBBrowser)
-class Introspector(grok.Model):
- grok.implements(IGrokIntrospector)
+class Introspector(object):
+ grok.implements(IGrokIntrospector, ILocation, IContext)
+ def __init__(self, parent, name):
+ self.__parent__ = parent
+ self.__name__ = name
+
+def get_introspector():
+ return Introspector
+grok.global_utility(get_introspector, provides=IGrokIntrospector)
+
+class IntrospectorTraverser(grok.Traverser):
+ grok.context(IGrokIntrospector)
def traverse(self, path, *args, **kw):
if path == 'registries':
return RegistryIntrospector()
@@ -30,7 +43,7 @@
return CodeIntrospector()
if path == 'zodb':
return ZODBBrowser()
- return self
+ return self.context
class RegistryIntrospector(grok.Model):
grok.implements(IGrokRegistryIntrospector)
@@ -38,7 +51,6 @@
def getUtilities(self):
uinfo = UtilityInfo()
return uinfo.getAllUtilities()
-
class CodeIntrospector(grok.Model):
grok.implements(IGrokCodeIntrospector)
More information about the Checkins
mailing list