[Grok-dev] Re: RFC: Making the automatic registration of templates more explicit

Martijn Faassen faassen at startifact.com
Wed Jan 31 10:58:39 EST 2007


Philipp von Weitershausen wrote:
> On 30 Jan 2007, at 19:59 , Jan-Wijbrand Kolman wrote:
[snip]
>> If we need a more explicit way of declaring templates for a module I
>> could imagine allowing the 'grok.template' directive to be used on a
>> module level. You would then get this:
>>
>> qux.py:
>>
>>  import grok
>>  grok.template('fropple')
>>  grok.template('frepple')
>>  ...
>>  grok.template('frupple')

I hadn't considered this one yet. It would be a slightly briefer way to 
make very explicit which templates are in play, as opposed to:

class Fropple:
    pass

or alternatively:

class Foo:
    grok.template('fropple')

> Shrug. I would consider that quite an unnecessary repetition of 
> grok.template(). Heck, you know what I'd end up writing to end the 
> repetition? This:
> 
>   here = os.path.dirname(__file__)
>   for file in os.listdir(os.path.join(here, __name__ + '_templates')):
>       if file.endswith('.pt'):
>           grok.template(file[:-3])
> 
> And then, because I would need it a lot, I'd end up putting this into a 
> reusable function, and voila, we got:
> 
>   grok.autotemplates()

The advance of the method JW proposed would be that you can *see* which 
templates are in play by just looking at the Python code. The drawback 
of the current method, and grok.autotemplates, is that you still don't 
know which templates are really in play unless you go look at a 
directory and compare it with the Python file and think hard which 
templates are there which are not represented by Python.

The nice thing about grok.autotemplates() is that we would turn this 
*off* by default. The alternative JW proposes would be to turn this off 
entirely and only allow explicit template references, with a slightly 
shorter spelling. Does this mean JW that you think the automatic 
association is something you'd never want?

Regards,

Martijn



More information about the Grok-dev mailing list