[Checkins] SVN: grokui.introspector/trunk/src/grokui/introspector/ Move the code responsible for wrapping Python code down into zope.introspector.

Martijn Faassen faassen at infrae.com
Tue Jul 22 12:00:21 EDT 2008


Log message for revision 88713:
  Move the code responsible for wrapping Python code down into zope.introspector.
  

Changed:
  U   grokui.introspector/trunk/src/grokui/introspector/code.py
  U   grokui.introspector/trunk/src/grokui/introspector/introspector.py

-=-
Modified: grokui.introspector/trunk/src/grokui/introspector/code.py
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/code.py	2008-07-22 16:00:15 UTC (rev 88712)
+++ grokui.introspector/trunk/src/grokui/introspector/code.py	2008-07-22 16:00:21 UTC (rev 88713)
@@ -14,56 +14,19 @@
 """Introspecting code.
 """
 import grok
-from grokcore.component.interfaces import IContext
-import types
-from martian.scan import module_info_from_dotted_name
-from martian.util import isclass
+from zope.introspector.code import Code, PackageOrModule
 
-class Code(object):
-    grok.implements(IContext)
-
-    def __init__(self, dotted_name):
-        self.dotted_name = dotted_name
-
 class Index(grok.View):
     grok.context(Code)
     def render(self):
         return "This is code"
 
-class PackageOrModule(Code):
-    def __init__(self, dotted_name):
-        super(PackageOrModule, self).__init__(dotted_name)
-        self._module_info = module_info_from_dotted_name(dotted_name)
-    
-class Package(PackageOrModule):    
-    def traverse(self, name):
-        sub_module = self._module_info.getSubModuleInfo(name)
-        if sub_module is None:
-            return None
-        if sub_module.isPackage():
-            return Package(sub_module.dotted_name)
-        return Module(sub_module.dotted_name)
+class CodeTraverser(grok.Traverser):
+    grok.context(PackageOrModule)
 
-class Module(PackageOrModule):
     def traverse(self, name):
-        module = self._module_info.getModule()
-        obj = getattr(module, name, None)
-        if obj is None:
+        try:
+            return self.context[name]
+        except KeyError:
             return None
-        sub_dotted_name = self.dotted_name + '.' + name
-        if isclass(obj):
-            return Class(sub_dotted_name)
-        elif type(obj) is types.FunctionType:
-            return Function(sub_dotted_name)
-        else:
-            return Instance(sub_dotted_name)
 
-
-class Class(Code):
-    pass
-
-class Function(Code):
-    pass
-
-class Instance(Code):
-    pass

Modified: grokui.introspector/trunk/src/grokui/introspector/introspector.py
===================================================================
--- grokui.introspector/trunk/src/grokui/introspector/introspector.py	2008-07-22 16:00:15 UTC (rev 88712)
+++ grokui.introspector/trunk/src/grokui/introspector/introspector.py	2008-07-22 16:00:21 UTC (rev 88713)
@@ -19,7 +19,7 @@
 from grokui.introspector.interfaces import (IGrokRegistryIntrospector,
                                             IGrokCodeIntrospector)
 from zope.app.folder.interfaces import IRootFolder
-from grokui.introspector.code import Package
+from zope.introspector.code import Package
 
 class RootTraverser(grok.Traverser):
     grok.context(IRootFolder)



More information about the Checkins mailing list