[Python-ideas] Idea for new multi-line triple quote literal
Daniel Robinson
gottagetmac at gmail.com
Mon Jul 1 08:15:46 CEST 2013
Have you tried using textwrap.dedent with this string? It gives what I
think is the expected result:
'\nfoo: Bar\nuser:\n fname: Hans\n lname: Gans\n'
since it only removes common leading whitespace.
On Mon, Jul 1, 2013 at 1:50 AM, Markus Unterwaditzer <
markus at unterwaditzer.net> wrote:
> I think this could cause problems with multi-line strings that contain
> additional indentation:
>
> def get_yaml():
> x = """
> foo: Bar
> user:
> fname: Hans
> lname: Gans
> """.dedent()
> return x
>
>
> While i don't see many arguments why somebody would want to store
> configuration
> files inside a string, i am sure many beginners who try to use this method
> will
> be surprised by its behavior.
>
> -- Markus
>
> On Mon, Jul 01, 2013 at 11:47:29AM +1000, Nick Coghlan wrote:
> > On 1 July 2013 11:09, Steven D'Aprano <steve at pearwood.info> wrote:
> > > but in either case, I think the choice of --- as delimiter is ugly and
> > > arbitrary, and very likely is ambiguous (currently, x = ---1 is legal
> code).
> > > Similar suggestions to this have been made many times before, you
> should
> > > search the archives:
> > >
> > > http://mail.python.org/mailman/listinfo/python-ideas
> >
> > I'm still partial to the idea of offering textwrap.indent() and
> > textwrap.dedent() as string methods.
> >
> > 1. You could add a ".dedent()" at the end of a triple quoted string
> > for this kind of problem. For a lot of code, the runtime cost isn't an
> > issue.
> > 2. A JIT would definitely be able to avoid recalculating the result
> every time
> > 3. Even CPython may eventually gain constant folding for that kind of
> > method applied directly to a string literal
> > 4. I dedent and indent long strings more often than I capitalize,
> > center, tab expand, or perform various other operations which already
> > grace the str type as methods.
> >
> > Cheers,
> > Nick.
> >
> > --
> > Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
> > _______________________________________________
> > Python-ideas mailing list
> > Python-ideas at python.org
> > http://mail.python.org/mailman/listinfo/python-ideas
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> http://mail.python.org/mailman/listinfo/python-ideas
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130701/0161038f/attachment-0001.html>
More information about the Python-ideas
mailing list