[Checkins] SVN: Sandbox/ulif/zope.introspector/src/zope/introspector/objectinfo.py Add implementations of basic object infos.

Uli Fouquet uli at gnufix.de
Wed Jun 18 08:55:59 EDT 2008


Log message for revision 87508:
  Add implementations of basic object infos.

Changed:
  U   Sandbox/ulif/zope.introspector/src/zope/introspector/objectinfo.py

-=-
Modified: Sandbox/ulif/zope.introspector/src/zope/introspector/objectinfo.py
===================================================================
--- Sandbox/ulif/zope.introspector/src/zope/introspector/objectinfo.py	2008-06-18 12:54:28 UTC (rev 87507)
+++ Sandbox/ulif/zope.introspector/src/zope/introspector/objectinfo.py	2008-06-18 12:55:59 UTC (rev 87508)
@@ -13,13 +13,16 @@
 ##############################################################################
 """Representations of simple objects.
 """
-
+import os
 import inspect
-from zope.interface import implements
-from zope.introspector.interfaces import IObjectInfo
+import types
+from zope.interface import Interface
+from zope.introspector.interfaces import IObjectInfo, IPackageInfo, ITypeInfo
+import grokcore.component as grok
 
-class ObjectInfo(object):
-    implements(IObjectInfo)
+class ObjectInfo(grok.Adapter):
+    grok.implements(IObjectInfo)
+    grok.context(Interface)
     
     def __init__(self, obj):
         self.obj = obj
@@ -32,3 +35,23 @@
 
     def isClass(self):
         return inspect.isclass(self.obj)
+
+class ModuleInfo(ObjectInfo):
+    grok.implements(IPackageInfo)
+    grok.provides(IObjectInfo)
+    grok.context(types.ModuleType)
+
+class PackageInfo(ModuleInfo):
+    grok.implements(IPackageInfo)
+    grok.provides(IPackageInfo)
+
+    def getPackageFiles(self, filter=None):
+        pkg_file_path = os.path.dirname(self.obj.__file__)
+        return sorted([x for x in os.listdir(pkg_file_path)
+               if os.path.isfile(os.path.join(pkg_file_path, x))
+               and (x.endswith('.txt') or x.endswith('.rst'))])
+
+class TypeInfo(ObjectInfo):
+    grok.implements(ITypeInfo)
+    grok.provides(IObjectInfo)
+    grok.context(types.TypeType)



More information about the Checkins mailing list