[Checkins] SVN: zope.introspector/trunk/src/zope/introspector/code.py Let PackageInfo make use of new package scanner.

Uli Fouquet uli at gnufix.de
Fri Aug 1 11:48:30 EDT 2008


Log message for revision 89157:
  Let PackageInfo make use of new package scanner.

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

-=-
Modified: zope.introspector/trunk/src/zope/introspector/code.py
===================================================================
--- zope.introspector/trunk/src/zope/introspector/code.py	2008-08-01 15:46:54 UTC (rev 89156)
+++ zope.introspector/trunk/src/zope/introspector/code.py	2008-08-01 15:48:29 UTC (rev 89157)
@@ -21,6 +21,7 @@
 from martian.util import isclass
 from zope.interface import implements
 from zope.introspector.interfaces import IInfo
+from zope.introspector.util import resolve, get_package_items
 import os
 
 class Code(object):
@@ -80,17 +81,20 @@
                and (x.endswith('.txt') or x.endswith('.rst'))])
 
     def _filterSubItems(self, filter=lambda x: True):
-        mod_info = self.context.getModuleInfo()
-        for submod in mod_info.getSubModuleInfos():
-            if not filter(submod):
-                continue
-            yield submod
+        for name in get_package_items(self.context.dotted_name):
+            try:
+                info = module_info_from_dotted_name(
+                    self.context.dotted_name + '.' + name)
+                if filter and filter(info):
+                    yield info
+            except ImportError:
+                pass
         
     def getSubPackages(self):
-        return self._filterSubItems(lambda x: x.isPackage())
+        return sorted(self._filterSubItems(lambda x: x.isPackage()))
 
     def getModules(self):
-        return self._filterSubItems(lambda x: not x.isPackage())
+        return sorted(self._filterSubItems(lambda x: not x.isPackage()))
         
 
 class Module(PackageOrModule):



More information about the Checkins mailing list