This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: 2to3 should fix bad indentation (or warn about it)
Type: Stage: resolved
Components: 2to3 (2.x to 3.x conversion tool) Versions:
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: BreamoreBoy, benjamin.peterson, jwilk, r.david.murray
Priority: low Keywords:

Created on 2012-07-12 14:44 by jwilk, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
badtabs.py jwilk, 2012-07-12 14:44
Messages (4)
msg165303 - (view) Author: Jakub Wilk (jwilk) Date: 2012-07-12 14:44
Python 3 is more rigid about mixing tabs and spaces within a single file. 2to3 should either fix indentation that would become a syntax error in Python 3.X, or maybe issue a warning about it (or both).

Example:

$ python badtabs.py && echo okay
okay

$ 2to3 badtabs.py 
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: No files need to be modified.

$ python3 badtabs.py && echo okay
  File "badtabs.py", line 3
    'b'
      ^
TabError: inconsistent use of tabs and spaces in indentation
msg165326 - (view) Author: Benjamin Peterson (benjamin.peterson) * (Python committer) Date: 2012-07-12 17:36
You can already find this using "python -tt" and fix it using reindent.py.
msg221607 - (view) Author: Mark Lawrence (BreamoreBoy) * Date: 2014-06-26 15:05
I'd be inclined to close this as "won't fix" as a workaround is given, especially considering that mixing tabs and spaces has always been considered a no no.
msg278314 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2016-10-08 18:01
Agreed.  -tt is designed for this job; there's no need for 2to3 to duplicate the functionality given that reindent.py exists and can be (and "should" be) applied to the python2 source even if you aren't doing single-source.
History
Date User Action Args
2022-04-11 14:57:32adminsetgithub: 59537
2019-07-30 09:05:55mark.dickinsonlinkissue37714 superseder
2016-10-08 18:01:46r.david.murraysetstatus: open -> closed

nosy: + r.david.murray
messages: + msg278314

resolution: not a bug
stage: resolved
2014-06-26 15:05:13BreamoreBoysetnosy: + BreamoreBoy
messages: + msg221607
2012-07-12 17:36:18benjamin.petersonsetpriority: normal -> low
nosy: + benjamin.peterson
messages: + msg165326

2012-07-12 14:44:42jwilkcreate