[Python-ideas] Dart like multi line strings identation

Steve Barnes gadgetsteve at live.co.uk
Mon Apr 2 08:08:47 EDT 2018



On 01/04/2018 02:48, Steven D'Aprano wrote:
> On Sun, Apr 01, 2018 at 02:20:16AM +0100, Rob Cliffe via Python-ideas wrote:
> 
>>> New unordered 'd' and 'D' prefixes, for 'dedent', applied to multiline
>>> strings only, would multiply the number of alternatives by about 5 and
>>> would require another rewrite of all code (Python or not) that parses
>>> Python code (such as in syntax colorizers).
>>
>> I think you're exaggerating the difficulty somewhat.  Multiplying the
>> number of alternatives by 5 is not the same thing as increasing the
>> complexity of code to parse it by 5.
> 
> Terry didn't say that it would increase the complexity of the code by a
> factor of five. He said it would multiply the number of alternatives by
> "about 5". There would be a significant increase in the complexity of
> the code too, but I wouldn't want to guess how much.
> 
> Starting with r and f prefixes, in both upper and lower case, we have:
> 
> 4 single letter prefixes
> (plus 2 more, u and U, that don't combine with others)
> 8 double letter prefixes
> 
> making 14 in total. Adding one more prefix, d|D, increases it to:
> 
> 6 single letter prefixes
> (plus 2 more, u and U)
> 24 double letter prefixes
> 48 triple letter prefixes
> 
> making 80 prefixes in total. Terry actually underestimated the explosion
> in prefixes: it is closer to six times more than five (but who is
> counting? apart from me *wink*)
> 
> [Aside: if we add a fourth, the total becomes 634 prefixes.]
> 
> 
> 

Can I suggest, rather than another string prefix, that will require the 
user to add the d flag to every string that they use, we consider a file 
scope dedent_multiline or auto_dedent import, possibly from __future__ 
or textwrap, that automatically applies the dedent function to all 
multiline strings in the file.

This would reflect that, typically, a specific developer tends to want 
either all or no multi-line text strings dedented. It should have 
minimumal impact on the language, operate at compile time so be low 
overhead and avoid cluttering strings up.
-- 
Steve (Gadget) Barnes
Any opinions in this message are my personal opinions and do not reflect 
those of my employer.

---
This email has been checked for viruses by AVG.
http://www.avg.com



More information about the Python-ideas mailing list