[Checkins] SVN: grok/trunk/src/grok/ implemented ModuleInfo.getSubModuleInfo(name)

Wolfgang Schnerring wosc at wosc.de
Wed Oct 18 07:29:13 EDT 2006


Log message for revision 70776:
  implemented ModuleInfo.getSubModuleInfo(name)

Changed:
  U   grok/trunk/src/grok/scan.py
  U   grok/trunk/src/grok/tests/scan/scan.py

-=-
Modified: grok/trunk/src/grok/scan.py
===================================================================
--- grok/trunk/src/grok/scan.py	2006-10-18 10:56:24 UTC (rev 70775)
+++ grok/trunk/src/grok/scan.py	2006-10-18 11:29:12 UTC (rev 70776)
@@ -86,6 +86,18 @@
                     os.path.join(entry_path, '__init__.py'), dotted_name))
         return module_infos
 
+    def getSubModuleInfo(self, name):
+        path = os.path.join(os.path.dirname(self.path), name)
+        if is_package(path):
+            return ModuleInfo(os.path.join(path, '__init__.py'),
+                              '%s.%s' % (self.package_dotted_name, name))
+        elif os.path.isfile(path + '.py') or os.path.isfile(path + '.pyc'):
+                return ModuleInfo(path + '.py',
+                                  '%s.%s' % (self.package_dotted_name, name))
+        else:
+            return None
+        
+
     def getAnnotation(self, key, default):
         key = key.replace('.', '_')
         key = '__%s__' % key

Modified: grok/trunk/src/grok/tests/scan/scan.py
===================================================================
--- grok/trunk/src/grok/tests/scan/scan.py	2006-10-18 10:56:24 UTC (rev 70775)
+++ grok/trunk/src/grok/tests/scan/scan.py	2006-10-18 11:29:12 UTC (rev 70776)
@@ -13,6 +13,12 @@
   'grok.tests.scan.stoneage'
   >>> module_info.name
   'stoneage'
+  >>> module_info.getSubModuleInfo('cave')
+  <ModuleInfo object for 'grok.tests.scan.stoneage.cave'>
+  >>> module_info.getSubModuleInfo('hunt')
+  <ModuleInfo object for 'grok.tests.scan.stoneage.hunt'>
+  >>> print module_info.getSubModuleInfo('doesnotexist')
+  None
 
   >>> module = module_info.getModule()
   >>> module



More information about the Checkins mailing list