[Checkins]
SVN: grok/branches/gotcha-configuration-actions/src/grok/
different strategy for storing context and templates: don't
attach it to module_info,
Philipp von Weitershausen
philikon at philikon.de
Wed Oct 10 04:40:26 EDT 2007
Log message for revision 80772:
different strategy for storing context and templates: don't attach it to module_info,
make it a module "annotation".
Changed:
U grok/branches/gotcha-configuration-actions/src/grok/_grok.py
U grok/branches/gotcha-configuration-actions/src/grok/meta.py
-=-
Modified: grok/branches/gotcha-configuration-actions/src/grok/_grok.py
===================================================================
--- grok/branches/gotcha-configuration-actions/src/grok/_grok.py 2007-10-10 08:36:08 UTC (rev 80771)
+++ grok/branches/gotcha-configuration-actions/src/grok/_grok.py 2007-10-10 08:40:25 UTC (rev 80772)
@@ -101,9 +101,7 @@
def finalize_grok(name, module, kw):
module_info = kw['module_info']
-
- # XXX find a better way to associate arbitrary data with module_info
- templates = getattr(module_info, 'templates', None)
+ templates = module_info.getAnnotation('grok.templates', None)
if templates is None:
return
unassociated = list(templates.listUnassociated())
Modified: grok/branches/gotcha-configuration-actions/src/grok/meta.py
===================================================================
--- grok/branches/gotcha-configuration-actions/src/grok/meta.py 2007-10-10 08:36:08 UTC (rev 80771)
+++ grok/branches/gotcha-configuration-actions/src/grok/meta.py 2007-10-10 08:40:25 UTC (rev 80772)
@@ -57,7 +57,7 @@
possible_contexts = martian.scan_for_classes(module, [grok.Model,
grok.Container])
context = util.determine_module_context(module_info, possible_contexts)
- module_info.context = context
+ module.__grok_context__ = context
return True
@@ -65,7 +65,7 @@
component_class = grok.Adapter
def grok(self, name, factory, module_info, config, **kw):
- context = module_info.context
+ context = module_info.getAnnotation('grok.context', None)
adapter_context = util.determine_class_context(factory, context)
provides = util.class_annotation(factory, 'grok.provides', None)
if provides is None:
@@ -119,7 +119,7 @@
component_class = grok.XMLRPC
def grok(self, name, factory, module_info, config, **kw):
- context = module_info.context
+ context = module_info.getAnnotation('grok.context', None)
view_context = util.determine_class_context(factory, context)
# XXX We should really not make __FOO__ methods available to
# the outside -- need to discuss how to restrict such things.
@@ -161,7 +161,7 @@
component_class = grok.View
def grok(self, name, factory, module_info, config, **kw):
- context = module_info.context
+ context = module_info.getAnnotation('grok.context', None)
view_context = util.determine_class_context(factory, context)
factory.module_info = module_info
@@ -182,8 +182,10 @@
# find templates
template_name = util.class_annotation(factory, 'grok.template',
factory_name)
- templates = module_info.templates
- template = templates.get(template_name)
+ template = None
+ templates = module_info.getAnnotation('grok.templates', None)
+ if templates is not None:
+ template = templates.get(template_name)
if factory_name != template_name:
# grok.template is being used
@@ -251,7 +253,7 @@
component_class = grok.JSON
def grok(self, name, factory, module_info, config, **kw):
- context = module_info.context
+ context = module_info.getAnnotation('grok.context', None)
view_context = util.determine_class_context(factory, context)
methods = util.methods_from_class(factory)
@@ -292,7 +294,7 @@
component_class = grok.Traverser
def grok(self, name, factory, module_info, config, **kw):
- context = module_info.context
+ context = module_info.getAnnotation('grok.context', None)
factory_context = util.determine_class_context(factory, context)
component.provideAdapter(factory,
adapts=(factory_context, IBrowserRequest),
@@ -306,7 +308,7 @@
priority = 1001
def grok(self, name, module, module_info, config, **kw):
- module_info.templates = templatereg.TemplateRegistry()
+ module.__grok_templates__ = templatereg.TemplateRegistry()
return True
@@ -318,7 +320,10 @@
component_class = grok.PageTemplate
def grok(self, name, instance, module_info, config, **kw):
- module_info.templates.register(name, instance)
+ templates = module_info.getAnnotation('grok.templates', None)
+ if templates is None:
+ return False
+ templates.register(name, instance)
instance._annotateGrokInfo(name, module_info.dotted_name)
return True
@@ -334,7 +339,10 @@
priority = 999
def grok(self, name, module, module_info, config):
- module_info.templates.findFilesystem(module_info)
+ templates = module_info.getAnnotation('grok.templates', None)
+ if templates is None:
+ return False
+ templates.findFilesystem(module_info)
return True
@@ -353,7 +361,7 @@
class AdapterDecoratorGrokker(martian.GlobalGrokker):
def grok(self, name, module, module_info, config, **kw):
- context = module_info.context
+ context = module_info.getAnnotation('grok.context', None)
implementers = module_info.getAnnotation('implementers', [])
for function in implementers:
interfaces = getattr(function, '__component_adapts__', None)
@@ -611,7 +619,7 @@
component_class = grok.Annotation
def grok(self, name, factory, module_info, config, **kw):
- context = module_info.context
+ context = module_info.getAnnotation('grok.context', None)
adapter_context = util.determine_class_context(factory, context)
provides = util.class_annotation(factory, 'grok.provides', None)
if provides is None:
@@ -663,7 +671,6 @@
component_class = components.IndexesClass
def grok(self, name, factory, module_info, config, **kw):
- context = module_info.context
site = util.class_annotation(factory, 'grok.site', None)
if site is None:
raise GrokError("No site specified for grok.Indexes "
@@ -673,6 +680,7 @@
indexes = util.class_annotation(factory, 'grok.indexes', None)
if indexes is None:
return False
+ context = module_info.getAnnotation('grok.context', None)
context = util.determine_class_context(factory, context)
catalog_name = util.class_annotation(factory, 'grok.name', u'')
zope.component.provideHandler(
More information about the Checkins
mailing list