[Checkins] SVN: grok/trunk/src/grok/meta.py refactor more code into common functions.

Martijn Faassen faassen at infrae.com
Thu Jan 24 07:38:27 EST 2008


Log message for revision 83159:
  refactor more code into common functions.
  

Changed:
  U   grok/trunk/src/grok/meta.py

-=-
Modified: grok/trunk/src/grok/meta.py
===================================================================
--- grok/trunk/src/grok/meta.py	2008-01-24 12:30:38 UTC (rev 83158)
+++ grok/trunk/src/grok/meta.py	2008-01-24 12:38:26 UTC (rev 83159)
@@ -61,6 +61,11 @@
 def get_name(factory, default=''):
     return grok.util.class_annotation(factory, 'grok.name', default)
 
+def get_provides(factory):
+    provides = util.class_annotation(factory, 'grok.provides', None)
+    if provides is None:
+        util.check_implements_one(factory)
+    return provides
 
 class ContextGrokker(martian.GlobalGrokker):
 
@@ -79,9 +84,7 @@
 
     def grok(self, name, factory, module_info, config, **kw):
         adapter_context = get_context(module_info, factory)
-        provides = util.class_annotation(factory, 'grok.provides', None)
-        if provides is None:
-            util.check_implements_one(factory)
+        provides = get_provides(factory)
         name = get_name(factory)
         
         config.action(
@@ -95,9 +98,7 @@
     component_class = grok.MultiAdapter
 
     def grok(self, name, factory, module_info, config, **kw):
-        provides = util.class_annotation(factory, 'grok.provides', None)
-        if provides is None:
-            util.check_implements_one(factory)
+        provides = get_provides(factory)
         check_adapts(factory)
         name = get_name(factory)
         for_ = component.adaptedBy(factory)
@@ -118,9 +119,7 @@
     priority = 1100
 
     def grok(self, name, factory, module_info, config, **kw):
-        provides = util.class_annotation(factory, 'grok.provides', None)
-        if provides is None:
-            util.check_implements_one(factory)
+        provides = get_provides(factory)
         name = get_name(factory)
         direct = util.class_annotation(factory, 'grok.direct', False)
         if not direct:
@@ -710,6 +709,8 @@
 
     def grok(self, name, factory, module_info, config, **kw):
         adapter_context = get_context(module_info, factory)
+        # XXX cannot use get_provides here, can we refactor others to reuse
+        # this bit?
         provides = util.class_annotation(factory, 'grok.provides', None)
         if provides is None:
             base_interfaces = interface.implementedBy(grok.Annotation)



More information about the Checkins mailing list