Thanks for pointing it out, i have to admit that i didn't read the documentation carefully, and yes, that indeed makes my example invalid, but then there are still strings that have indentation on all lines, which would be completely trunchated with dedent().
-- Markus (from phone)
Daniel Robinson
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@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
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:
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@gmail.com | Brisbane, Australia _______________________________________________ Python-ideas mailing list Python-ideas@python.org http://mail.python.org/mailman/listinfo/python-ideas
Python-ideas mailing list Python-ideas@python.org http://mail.python.org/mailman/listinfo/python-ideas