classification
Title: lib2to3 failed to convert as refactor's fixes not search.pyc files
Type: behavior Stage:
Components: 2to3 (2.x to 3.x conversion tool) Versions: Python 3.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: benjamin.peterson, njhsio
Priority: normal Keywords:

Created on 2019-01-10 16:08 by njhsio, last changed 2019-01-10 16:38 by xtreak.

Messages (1)
msg333393 - (view) Author: Nj Hsiong (njhsio) * Date: 2019-01-10 16:08
python3's lib2to3 would fail in silence if python3 and its packages are installed as compiled .pyc files.

Root cause is in Lib/lib2to3/refactor.py, the function get_all_fix_names only searches '.py' fix names.

=========below is workaround=========
--- a/Lib/lib2to3/refactor.py
+++ b/Lib/lib2to3/refactor.py
@@ -37,6 +37,12 @@
             if remove_prefix:
                 name = name[4:]
             fix_names.append(name[:-3])
+        if name.startswith("fix_") and name.endswith(".pyc"):
+            if remove_prefix:
+                name = name[4:]
+            name = name[:-4]
+            if name not in fix_names:
+                fix_names.append(name)
     return fix_names
History
Date User Action Args
2019-01-10 16:38:39xtreaksetnosy: + benjamin.peterson
2019-01-10 16:08:02njhsiocreate