Browse Source

python3: enable lib2to3 to also search and fix .pyc files.

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.

Signed-off-by: Nj Hsiong <nj.hsiong@gmail.com>
lilik-openwrt-22.03
Nj Hsiong 6 years ago
parent
commit
c98b12d9a9
2 changed files with 18 additions and 1 deletions
  1. +1
    -1
      lang/python/python3/Makefile
  2. +17
    -0
      lang/python/python3/patches/017_lib2to3_fix_pyc_search.patch

+ 1
- 1
lang/python/python3/Makefile View File

@ -14,7 +14,7 @@ PYTHON_VERSION:=$(PYTHON3_VERSION)
PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
PKG_NAME:=python3
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz


+ 17
- 0
lang/python/python3/patches/017_lib2to3_fix_pyc_search.patch View File

@ -0,0 +1,17 @@
diff --git a/Lib/lib2to3/refactor.py b/Lib/lib2to3/refactor.py
index 7841b99..1e0d3b3 100644
--- a/Lib/lib2to3/refactor.py
+++ b/Lib/lib2to3/refactor.py
@@ -37,6 +37,12 @@ def get_all_fix_names(fixer_pkg, remove_prefix=True):
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

Loading…
Cancel
Save