Message236396
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"
>>> |
|
Date |
User |
Action |
Args |
2015-02-22 00:57:55 | mdear | set | recipients:
+ mdear |
2015-02-22 00:57:55 | mdear | set | messageid: <1424566675.14.0.0615952821634.issue23497@psf.upfronthosting.co.za> |
2015-02-22 00:57:55 | mdear | link | issue23497 messages |
2015-02-22 00:57:54 | mdear | create | |
|