[Grok-dev] Re: more changes in martian, grokcore.component

Philipp von Weitershausen philipp at weitershausen.de
Sat Jun 7 05:51:32 EDT 2008


Martijn Faassen wrote:
> I've just released Martian 0.10. Martian 0.10 follows up on some recent 
> Martian changes. What's new:
> 
> * new tutorial content, replacing the old README.txt. Those tests have 
> moved to core.txt. The new tutorial is shorter and should explain 
> Martian better to beginners.

Excellent idea.

> * new directives: martian.component, replaces component_class 
> class-level attribute on grokkers. martian.priority replaces priority 
> class level attribute on grokkers, and martian.directive replaces the 
> new 'directives' list. It takes a directive (class) as an argument, and 
> optionally the further parameters to bind() (name, default, get_default).
> 
> * combined martian.GrokRegistry that makes martian more easy to use from 
> Python code.
> 
> The new directives allow you to write a grokker in the same style as the 
> classes you're actually grokking:
> 
> class FooGrokker(martian.ClassGrokker):
>     martian.component(Foo)
>     martian.directive(name)
>     martian.directive(context, get_default=default_context)
> 
>     def execute(self, class_, name, context, **kw):
>          ...

Excellent! I really like how we've evolved the spelling of the directive 
binding over time. Also, more of eating our dogfood!

> I've also updated grokcore.component trunk to work with the new version 
> of Martian. I haven't updated the Grok trunk yet. Someone else will have 
> to update five.grok; the changes aren't difficult but if you have 
> questions, please ask them here!

I can take care of five.grok and some of the megrok packages that might 
be affected (as I've done on all previous refactorings already). Let me 
know if you need help with updating Grok.

> P.S. yes, an actual feature version bump to martian 0.10, we shouldn't 
> be doing major changes to the way martian works in the third number!

Yeah, I suppose we should've made a proper version bump for the first 
directive change as well. Actually, looking at Martian 0.9.x releases, 
almost every one was a feature release...


More information about the Grok-dev mailing list