closes bpo-37675: Use pkgutil.iter_modules to find fixers in a package rather than listdir. (14942)

This commit is contained in:
Benjamin Peterson 2019-07-24 16:38:50 -07:00 committed by GitHub
parent 123536fdab
commit 93e8aa62cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 4 deletions

View File

@ -14,6 +14,7 @@ __author__ = "Guido van Rossum <guido@python.org>"
# Python imports
import io
import os
import pkgutil
import sys
import logging
import operator
@ -30,13 +31,12 @@ from . import btm_matcher as bm
def get_all_fix_names(fixer_pkg, remove_prefix=True):
"""Return a sorted list of all available fix names in the given package."""
pkg = __import__(fixer_pkg, [], [], ["*"])
fixer_dir = os.path.dirname(pkg.__file__)
fix_names = []
for name in sorted(os.listdir(fixer_dir)):
if name.startswith("fix_") and name.endswith(".py"):
for finder, name, ispkg in pkgutil.iter_modules(pkg.__path__):
if name.startswith("fix_"):
if remove_prefix:
name = name[4:]
fix_names.append(name[:-3])
fix_names.append(name)
return fix_names

View File

@ -0,0 +1 @@
2to3 now works when run from a zipped standard library.