[Python-3000] Issues with PEP 3101 (string formatting)

Chris McDonough chrism at plope.com
Wed Jun 20 17:52:47 CEST 2007


Allowing attribute and/or item access within templating expressions  
has historically been the domain of full-on templating languages  
(which invariably also have a way to do repeats, conditionals,  
arbitrary method calls, etc).

I think it should probably stay that way because to me, at least,  
there's not much more compelling about being able to do item/ 
attribute access within a template expression than there is to be  
able to do replacements using results from arbitrary method calls.   
It's fairly arbitrary to allow calls to __getitem__ and __getattr__  
and but prevent, say, calls to "traverse", at least if the format  
arguments are not restricted to plain lists/tuples/dicts.

That's not to say that maybe an extended templating thingy shouldn't  
ship within the stdlib though, maybe even one that extends the  
default interpolation syntax in these sorts of ways.

- C

On Jun 20, 2007, at 10:49 AM, Nick Coghlan wrote:

> Chris McDonough wrote:
>> Wrt http://www.python.org/dev/peps/pep-3101/
>> PEP 3101 says Py3K should allow item and attribute access syntax   
>> within string templating expressions but "to limit potential  
>> security  issues", access to underscore prefixed names within  
>> attribute/item  access expressions will be disallowed.
>
> Personally, I'd be fine with leaving at least the embedded  
> attribute access out of the initial implementation of the PEP. I'd  
> even be OK with leaving out the embedded item access, but if we  
> leave it in "vars(obj)" and the embedded item access would still  
> provide a shorthand notation for access to instance variable  
> attributes in a format string.
>
> So +1 for leaving out embedded attribute access from the initial  
> implementation of PEP 3101, and -0 for leaving out the embedded  
> item access.
>
> Cheers,
> Nick.
>
> -- 
> Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
> ---------------------------------------------------------------
>             http://www.boredomandlaziness.org
>



More information about the Python-3000 mailing list