New submission from Myles Dear: The textwrap.dedent function does not work when the string to dedent itself contains embedded strings that contain newline characters.
https://docs.python.org/3.4/library/textwrap.html?highlight=dedent#textwrap.dedent states that this function "can be used to make triple-quoted strings line up with the left edge of the display". It just so happens that my triple-quoted string itself contains a single-quoted string with newline characters. I would have expected textwrap.dedent to ignore these newline characters inside single or double quoted strings contained in the larger triple-quoted string. The semantics of this bug may be slightly different than https://bugs.python.org/issue19479 "textwrap.dedent doesn't work properly with strings containing CRLF", so I'm raising a new issue. I am seeing this in a module I'm writing that emits synthetic python code that is subsequently passed back into the interpreter via "exec". Python 3.4.1 (default, Nov 12 2014, 13:34:29) [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from textwrap import dedent >>> s = ''' ... 'my_key' : r'my value which contains \n character' ... ''' >>> s "\n 'my_key' : r'my value which contains \n character'\n" >>> dedent(s) "\n 'my_key' : r'my value which contains \ncharacter'\n" >>> ---------- messages: 236396 nosy: mdear priority: normal severity: normal status: open title: textwrap.dedent doesn't work properly with embedded strings containing linefeeds _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue23497> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com