[Checkins] SVN: zope.introspector/trunk/src/zope/introspector/util.py Factor out namespace package scanner.

Uli Fouquet uli at gnufix.de
Fri Aug 1 21:20:55 EDT 2008


Log message for revision 89175:
  Factor out namespace package scanner.

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

-=-
Modified: zope.introspector/trunk/src/zope/introspector/util.py
===================================================================
--- zope.introspector/trunk/src/zope/introspector/util.py	2008-08-01 22:34:06 UTC (rev 89174)
+++ zope.introspector/trunk/src/zope/introspector/util.py	2008-08-02 01:20:53 UTC (rev 89175)
@@ -36,18 +36,19 @@
     Supports also namespace packages.
     Supports also zipped eggs.
     """
-    if not is_namespace_package(dotted_name):
-        resources = pkg_resources.resource_listdir(dotted_name, '')
-        result = []
-        for res in resources:
-            if res.startswith('.'):
-                # Ignore hidden files and directories.
+    if is_namespace_package(dotted_name):
+        return get_namespace_package_items(dotted_name)
+    resources = pkg_resources.resource_listdir(dotted_name, '')
+    result = []
+    for res in resources:
+        if res.startswith('.'):
+            # Ignore hidden files and directories.
+            continue
+        if pkg_resources.resource_isdir(dotted_name, res):
+            if pkg_resources.resource_exists(
+                dotted_name + '.' + res, '__init__.py'):
+                result.append(res)
                 continue
-            if pkg_resources.resource_isdir(dotted_name, res):
-                if pkg_resources.resource_exists(
-                    dotted_name + '.' + res, '__init__.py'):
-                    result.append(res)
-                continue
             if not '.' in res:
                 continue
             name, ext = res.rsplit('.', 1)
@@ -58,7 +59,10 @@
             if ext.lower() in ['txt', 'rst', 'zcml']:
                 result.append(res)
         return result
-    # get subpackages from pkg_resources working set
+
+def get_namespace_package_items(dotted_name):
+    """Get subpackages of a namespace package.
+    """
     ws = pkg_resources.working_set
     pkg_names = []
     for entry in ws.entry_keys.values():



More information about the Checkins mailing list