Have you tried using textwrap.dedent with this string? It gives what I think is the expected result: <div><br></div><div>'\nfoo: Bar\nuser:\n    fname: Hans\n    lname: Gans\n'</div><div><br></div><div>since it only removes common leading whitespace.</div>

<div><br></div><div><div class="gmail_quote">On Mon, Jul 1, 2013 at 1:50 AM, Markus Unterwaditzer <span dir="ltr"><<a href="mailto:markus@unterwaditzer.net" target="_blank">markus@unterwaditzer.net</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I think this could cause problems with multi-line strings that contain<br>
additional indentation:<br>
<br>
    def get_yaml():<br>
        x = """<br>
        foo: Bar<br>
        user:<br>
            fname: Hans<br>
            lname: Gans<br>
        """.dedent()<br>
        return x<br>
<br>
<br>
While i don't see many arguments why somebody would want to store configuration<br>
files inside a string, i am sure many beginners who try to use this method will<br>
be surprised by its behavior.<br>
<span class="HOEnZb"><font color="#888888"><br>
-- Markus<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Mon, Jul 01, 2013 at 11:47:29AM +1000, Nick Coghlan wrote:<br>
> On 1 July 2013 11:09, Steven D'Aprano <<a href="mailto:steve@pearwood.info">steve@pearwood.info</a>> wrote:<br>
> > but in either case, I think the choice of --- as delimiter is ugly and<br>
> > arbitrary, and very likely is ambiguous (currently, x = ---1 is legal code).<br>
> > Similar suggestions to this have been made many times before, you should<br>
> > search the archives:<br>
> ><br>
> > <a href="http://mail.python.org/mailman/listinfo/python-ideas" target="_blank">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
><br>
> I'm still partial to the idea of offering textwrap.indent() and<br>
> textwrap.dedent() as string methods.<br>
><br>
> 1. You could add a ".dedent()" at the end of a triple quoted string<br>
> for this kind of problem. For a lot of code, the runtime cost isn't an<br>
> issue.<br>
> 2. A JIT would definitely be able to avoid recalculating the result every time<br>
> 3. Even CPython may eventually gain constant folding for that kind of<br>
> method applied directly to a string literal<br>
> 4. I dedent and indent long strings more often than I capitalize,<br>
> center, tab expand, or perform various other operations which already<br>
> grace the str type as methods.<br>
><br>
> Cheers,<br>
> Nick.<br>
><br>
> --<br>
> Nick Coghlan   |   <a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>   |   Brisbane, Australia<br>
> _______________________________________________<br>
> Python-ideas mailing list<br>
> <a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
> <a href="http://mail.python.org/mailman/listinfo/python-ideas" target="_blank">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/python-ideas" target="_blank">http://mail.python.org/mailman/listinfo/python-ideas</a><br>
</div></div></blockquote></div><br></div>