
On 11.05.13 05:37, Nick Coghlan wrote:
I got bit by this quite recently, leaving out a comma in a long list of strings and I only found the bug by accident.
This being python "ideas" I'll throw one out.
Add another prefix character to strings:
a = [m'abc' 'def'] # equivalent to ['abcdef'] As MRAB suggested, a prefix for a compile time dedent would likely be more useful - then you'd just use a triple quoted string and be done with it. The other one I occasionally wish for is a compile time equivalent of str.split (if we had that, we likely wouldn't see APIs
On Sat, May 11, 2013 at 10:29 AM, Bruce Leban <bruce@leapyear.org> wrote: like collections.namedtuple and enum.Enum accepting space separated strings).
Amongst my ideas-so-farfetched-I-never-even-wrote-them-up (which is saying something, given some of the ideas I *have* written up) is a notation like:
!processor!"STRING LITERAL"
Where the compile time string processors had to be registered through an appropriate API (probably in the sys module). Then you would just define preprocessors like "merge" or "dedent" or "split" or "sh" of "format" and get the appropriate compile time raw string->AST translation.
So for this use case, you would do:
a = [!merge!"""\ abc def"""
Ah, I see we are on the same path here. Just not sure if it is right to move into a compile-time preprocessor language or to just handle the most common cases with a simple prefix? One example is code snippets which need proper de-indentation. I think a simple stripping of white-space in text = s""" leftmost column two-char indent """ would solve 95 % of common indentation and concatenation cases. I don't think provision for merging is needed very often. If text occurs deeply nested in code, then it is also quite likely to be part of an expression, anyway. My major use-case is text constants in a class or function that is multiple lines long and should be statically ready to use without calling a function. (here an 's' as a strip prefix, but I'm not sold on that) cheers - chris -- Christian Tismer :^) <mailto:tismer@stackless.com> Software Consulting : Have a break! Take a ride on Python's Karl-Liebknecht-Str. 121 : *Starship* http://starship.python.net/ 14482 Potsdam : PGP key -> http://pgp.uni-mainz.de phone +49 173 24 18 776 fax +49 (30) 700143-0023 PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04 whom do you want to sponsor today? http://www.stackless.com/