[Grok-dev] Re: ClassGrokkers and component_class and component base
classes
Philipp von Weitershausen
philipp at weitershausen.de
Tue Feb 6 11:11:30 EST 2007
Jan-Wijbrand Kolman wrote:
> grok.meta.ViewGrokker looks out for classes that subclass grok.View.
> However, the grok.View class itself "subclasses" grok.View as well
> (according to issubclass()) and thus grok.View is actually grokked
> (and some view is registered, but for what?).
I would be surprised if the 'grok.components' module was grokked. If it
actually is being grokked, I would say it shouldn't.
> The fact that grok component base classes are grokked as well hit me
> when I tried to implement my own grokker for my own type of component:
>
> component.py:
>
> class MyComponent(object):
> pass
>
> meta.py:
>
> MyComponentGrokker(grok.ClassGrokker):
> component_class = MyComponent
>
> def register(self, context, name, factory, module_info, templates):
> ...
>
> where the MyComponent class itself is just a base class for the actual
> component implementations in my application.
>
> (I wonder if I still make sense...)
>
> Can we somehow prevent the component base classes from being grokked?
In general I think it'd be useful to be able to tell grok "don't grok
this thing". There is undocumented behaviour in the GrokkerRegistry that
makes sure classes whose names end in "Base" aren't grokked, but I think
something more powerful is necessary.
--
http://worldcookery.com -- Professional Zope documentation and training
Next Zope 3 training at Camp5: http://trizpug.org/boot-camp/camp5
More information about the Grok-dev
mailing list