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 Conversion Result using BlankLine() can be Syntactically Incorrect
Type: enhancement Stage: resolved
Components: 2to3 (2.x to 3.x conversion tool) Versions: Python 3.9
process
Status: closed Resolution: wont fix
Dependencies: Superseder: Close 2to3 issues and list them here
View: 45544
Assigned To: Nosy List: Samuel Tatasurya, benjamin.peterson
Priority: normal Keywords: patch

Created on 2019-11-04 07:12 by Samuel Tatasurya, last changed 2022-04-11 14:59 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 17096 closed python-dev, 2019-11-09 05:52
Messages (1)
msg355926 - (view) Author: Samuel Tatasurya (Samuel Tatasurya) Date: 2019-11-04 07:12
Transformation performed by certain fixers (e.g. future, itertools_imports) that causes a statement to be replaced by a blank line will generate a Python file that contains syntax error.

For example, assuming a Python file (foo.py) containing line below:

try:
    from itertools import imap
except ImportError:
    pass

If we run "itertools_imports" fixer against it:
2to3 -f itertools_imports foo.py

will result in the following:

try:

except ImportError:
    pass

which is syntactically incorrect.

Suggestion:
Instead of always replacing such case with BlankLine(), a check should be performed beforehand if the statement to be replaced has any siblings. If no sibling is found, then replace that statement with a "pass" statement instead.

By doing this, Python source files generated by 2to3 are more readily runnable right after the transformation.
History
Date User Action Args
2022-04-11 14:59:22adminsetgithub: 82862
2021-10-20 22:56:56iritkatrielsetstatus: open -> closed
superseder: Close 2to3 issues and list them here
resolution: wont fix
stage: patch review -> resolved
2020-01-18 03:15:58cheryl.sabellalinkissue39331 superseder
2019-11-09 05:52:30python-devsetkeywords: + patch
stage: patch review
pull_requests: + pull_request16602
2019-11-08 23:31:00terry.reedysetnosy: + benjamin.peterson
2019-11-04 07:12:47Samuel Tatasuryacreate