[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