[Checkins] SVN: grok/branches/jw-philipp-using-ndir-directives/src/grok/meta.py bring back some helpers that were removed in grokcore.component and are needed for now

Philipp von Weitershausen philikon at philikon.de
Sat May 3 05:46:36 EDT 2008


Log message for revision 86162:
  bring back some helpers that were removed in grokcore.component and are needed for now

Changed:
  U   grok/branches/jw-philipp-using-ndir-directives/src/grok/meta.py

-=-
Modified: grok/branches/jw-philipp-using-ndir-directives/src/grok/meta.py
===================================================================
--- grok/branches/jw-philipp-using-ndir-directives/src/grok/meta.py	2008-05-03 09:37:04 UTC (rev 86161)
+++ grok/branches/jw-philipp-using-ndir-directives/src/grok/meta.py	2008-05-03 09:46:36 UTC (rev 86162)
@@ -56,15 +56,40 @@
 
 from grokcore.component.meta import get_context, get_name_classname
 from grokcore.component.util import check_adapts
-from grokcore.component.util import determine_class_component
-from grokcore.component.util import determine_class_directive
 from grokcore.component.util import determine_module_component
-from grokcore.component.util import public_methods_from_class
 
+# XXX these helpers will eventually be replaced with
+#     grok.viewletmanager.get(class_, module_info.getModule())
+# et. al.
+
 def get_viewletmanager(module_info, factory):
     return determine_class_component(module_info, factory,
                                      'viewletmanager', 'grok.viewletmanager')
 
+def determine_class_component(module_info, class_,
+                              component_name, component_directive):
+    """Determine component for a class.
+
+    Determine a component for a class. If no class-specific component exists,
+    try falling back on module-level component.
+    """
+    module_component = module_info.getAnnotation(component_directive, None)
+    component = class_annotation(class_, component_directive, module_component)
+    check_module_component(class_, component,
+                           component_name, component_directive)
+    return component
+
+def determine_class_directive(directive_name, factory, module_info,
+                              default=None):
+    directive = class_annotation(factory, directive_name, None)
+    if directive is None:
+        directive = module_info.getAnnotation(directive_name, None)
+    if directive is not None:
+        return directive
+    return default
+
+# XXX
+
 class ViewletManagerContextGrokker(martian.GlobalGrokker):
 
     priority = 1001



More information about the Checkins mailing list