[New-bugs-announce] [issue25661] tokenize.untokenize does not maintain the order of tabbed indentations and leading spaces

Blake Hilliard 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
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>
AssertionError


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)
messages: 254857
nosy: Blake Hilliard
priority: normal
severity: normal
status: open
title: tokenize.untokenize does not maintain the order of tabbed indentations and leading spaces
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue25661>
_______________________________________


More information about the New-bugs-announce mailing list