[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