[New-bugs-announce] [issue25661] tokenize.untokenize does not maintain the order of tabbed indentations and leading spaces
report at bugs.python.org
Wed Nov 18 16:13:27 EST 2015
New submission from Blake Hilliard:
Here's a simple test case that shows the bug:
Python 2.7.9 (default, Apr 2 2015, 14:49:18)
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import StringIO, tokenize
>>> code = "if False:\n\tx=3\n \ty=3\n"
>>> g = list(tokenize.generate_tokens(StringIO.StringIO(code).readline))
>>> assert tokenize.untokenize(g) == code
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
This is very similar to: https://bugs.python.org/issue20387
I'm using the patch that was provided to fix that bug, but with the patch this slightly different test case still fails. On the last line of "code" from my example, where the line begins with a single space then a tab, the untokenized string reverses the order, and the tab precedes the space. This generates code that will throw an IndentationError if run.
components: Library (Lib)
nosy: Blake Hilliard
title: tokenize.untokenize does not maintain the order of tabbed indentations and leading spaces
versions: Python 2.7
Python tracker <report at bugs.python.org>
More information about the New-bugs-announce