[Python-Dev] python-dev Summary for 2004-08-16 through 2004-08-31 [draft]

Erik Heneryd erik at heneryd.com
Thu Sep 16 14:15:31 CEST 2004

Brett C. wrote:
> The second issue was other the design of the API.  Originally Template 
> was a class that overrode __mod__ to make it work like string 
> interpolation works now for str and unicode.  But then some people felt 
> a class was too heavy-handed if there was no way to change the way 
> Template worked through a subclass.  This obviously led to a desire for 
> functions to do the work for both Template and SafeTemplate (similar 
> class to Template that left in substitution points if they didn't match 
> any values in the dict passed in).
> In the end the class design was kept thanks to Tim Peters and 
> metaclasses.  Tim came up with a neat way to have the regex be generated 
> at class creation time through a metaclass and thus allow subclasses to 
> change how Template matched substitution points and such, all without a 
> performance hit at instance creation time.  Use of __mod__ and the 
> SafeTemplate class were removed and Template grew substitute and 
> safe_substitute methods.  Everyone at this point seems happy with the 
> design.

Well, not *everyone*.  As expressed in the PEP 292: Method Names thread 
I (still) think that:

1) substitute() and safe_substitute() are far too long names for such 
(probably) common/frequent operations.

2) The design would be more flexible if done with the 
Template/SafeTemplate class approach.  Less code duplication, easier to 
extend and it solves the long method name problem...

Didn't get that much (any) positive feedback though... <wink>


More information about the Python-Dev mailing list