[Checkins] SVN: martian/trunk/src/martian/ There was one more function that needs to know about the exclude_filter

Jan-Wijbrand Kolman janwijbrand at gmail.com
Tue Oct 2 07:37:39 EDT 2007


Log message for revision 80471:
  There was one more function that needs to know about the exclude_filter
  argument.
  
  Use None as a default value instead of the lambda.
  
  

Changed:
  U   martian/trunk/src/martian/core.py
  U   martian/trunk/src/martian/scan.py

-=-
Modified: martian/trunk/src/martian/core.py
===================================================================
--- martian/trunk/src/martian/core.py	2007-10-02 09:24:58 UTC (rev 80470)
+++ martian/trunk/src/martian/core.py	2007-10-02 11:37:39 UTC (rev 80471)
@@ -13,7 +13,7 @@
 
     def register(self, grokker):
         raise NotImplementedError
-    
+
     def grok(self, name, obj, **kw):
         grokked_status = False
 
@@ -25,30 +25,30 @@
                     (g, grokked), None)
             if grokked:
                 grokked_status = True
-        
+
         return grokked_status
 
     def clear(self):
         raise NotImplementedError
-    
+
     def grokkers(self, name, obj):
         raise NotImplementedError
 
 class ModuleGrokker(MultiGrokkerBase):
-  
+
     def __init__(self, grokker=None, prepare=None, finalize=None):
         if grokker is None:
             grokker = MultiGrokker()
         self._grokker = grokker
         self.prepare = prepare
         self.finalize = finalize
-        
+
     def register(self, grokker):
         self._grokker.register(grokker)
 
     def clear(self):
         self._grokker.clear()
-    
+
     def grok(self, name, module, **kw):
         grokked_status = False
 
@@ -60,7 +60,7 @@
         grokkers = sorted(self.grokkers(name, module),
                           key=lambda (grokker, name, obj): grokker.priority,
                           reverse=True)
-        
+
         for g, name, obj in grokkers:
             grokked = g.grok(name, obj, **kw)
             if grokked not in (True, False):
@@ -69,7 +69,7 @@
                     (g, grokked), None)
             if grokked:
                 grokked_status = True
-                
+
         # finalize module grok
         if self.finalize is not None:
             self.finalize(name, module, kw)
@@ -81,7 +81,7 @@
         # get any global grokkers
         for t in grokker.grokkers(name, module):
             yield t
-        
+
         # try to grok everything in module
         for name in dir(module):
             if name.startswith('__grok_'):
@@ -98,7 +98,7 @@
 
     def __init__(self):
         self.clear()
-        
+
     def register(self, grokker):
         key = grokker.component_class
         grokkers = self._grokkers.setdefault(key, [])
@@ -148,12 +148,12 @@
     def grokkers(self, name, module):
         for grokker in self._grokkers:
             yield grokker, name, module
-    
+
 class MultiGrokker(MultiGrokkerBase):
-    
+
     def __init__(self):
         self.clear()
-        
+
     def register(self, grokker):
         if isinstance(grokker, InstanceGrokker):
             self._multi_instance_grokker.register(grokker)
@@ -177,7 +177,7 @@
             return self._multi_global_grokker.grokkers(name, obj)
         else:
             return self._multi_instance_grokker.grokkers(name, obj)
-        
+
 class MetaMultiGrokker(MultiGrokker):
     """Multi grokker which comes pre-registered with meta-grokkers.
     """
@@ -188,10 +188,10 @@
         self.register(InstanceMetaGrokker(self))
         self.register(GlobalMetaGrokker(self))
 
-def grok_dotted_name(dotted_name, grokker, **kw):
-    module_info = scan.module_info_from_dotted_name(dotted_name)
+def grok_dotted_name(dotted_name, grokker, exclude_filter=None, **kw):
+    module_info = scan.module_info_from_dotted_name(dotted_name, exclude_filter)
     grok_package(module_info, grokker, **kw)
-    
+
 def grok_package(module_info, grokker, **kw):
     grok_module(module_info, grokker, **kw)
     for sub_module_info in module_info.getSubModuleInfos():
@@ -199,7 +199,7 @@
 
 def grok_module(module_info, grokker, **kw):
     grokker.grok(module_info.dotted_name, module_info.getModule(), **kw)
-    
+
 # deep meta mode here - we define grokkers that can pick up the
 # three kinds of grokker: ClassGrokker, InstanceGrokker and ModuleGrokker
 class MetaGrokker(ClassGrokker):
@@ -207,11 +207,11 @@
         """multi_grokker - the grokker to register grokkers with.
         """
         self.multi_grokker = multi_grokker
-        
+
     def grok(self, name, obj, **kw):
         self.multi_grokker.register(obj())
         return True
-    
+
 class ClassMetaGrokker(MetaGrokker):
     component_class = ClassGrokker
 

Modified: martian/trunk/src/martian/scan.py
===================================================================
--- martian/trunk/src/martian/scan.py	2007-10-02 09:24:58 UTC (rev 80470)
+++ martian/trunk/src/martian/scan.py	2007-10-02 11:37:39 UTC (rev 80471)
@@ -32,14 +32,18 @@
 class ModuleInfo(object):
     implements(IModuleInfo)
 
-    def __init__(self, path, dotted_name, exclude_filter=lambda name:False):
+    def __init__(self, path, dotted_name, exclude_filter=None):
         # Normalize .pyc files to .py
         if path.endswith('c'):
             path = path[:-1]
         self.path = path
         self.dotted_name = dotted_name
-        self.exclude_filter = exclude_filter
 
+        if exclude_filter is None:
+            self.exclude_filter = lambda x: False
+        else:
+            self.exclude_filter = exclude_filter
+
         name_parts = dotted_name.split('.')
         self.name = name_parts[-1]
         if self.isPackage():
@@ -121,11 +125,11 @@
         return "<ModuleInfo object for '%s'>" % self.dotted_name
 
 
-def module_info_from_dotted_name(dotted_name, exclude_filter=lambda name:False):
+def module_info_from_dotted_name(dotted_name, exclude_filter=None):
     module = resolve(dotted_name)
     return ModuleInfo(module.__file__, dotted_name, exclude_filter)
 
-def module_info_from_module(module, exclude_filter=lambda name:False):
+def module_info_from_module(module, exclude_filter=None):
     return ModuleInfo(module.__file__, module.__name__, exclude_filter)
 
 



More information about the Checkins mailing list