Kaydet (Commit) 441cc01e authored tarafından Victor Stinner's avatar Victor Stinner

compileall uses repr() to format filenames/paths

Issue #11169: compileall module uses repr() to format filenames and paths to
escape surrogate characters and show spaces.
üst fd34b378
......@@ -35,11 +35,11 @@ def compile_dir(dir, maxlevels=10, ddir=None, force=False, rx=None,
optimize: optimization level or -1 for level of the interpreter
"""
if not quiet:
print('Listing', dir, '...')
print('Listing {!r}...'.format(dir))
try:
names = os.listdir(dir)
except os.error:
print("Can't list", dir)
print("Can't list {!r}".format(dir))
names = []
names.sort()
success = 1
......@@ -109,13 +109,13 @@ def compile_file(fullname, ddir=None, force=False, rx=None, quiet=False,
except IOError:
pass
if not quiet:
print('Compiling', fullname, '...')
print('Compiling {!r}...'.format(fullname))
try:
ok = py_compile.compile(fullname, cfile, dfile, True,
optimize=optimize)
except py_compile.PyCompileError as err:
if quiet:
print('*** Error compiling', fullname, '...')
print('*** Error compiling {!r}...'.format(fullname))
else:
print('*** ', end='')
# escape non-printable characters in msg
......@@ -126,7 +126,7 @@ def compile_file(fullname, ddir=None, force=False, rx=None, quiet=False,
success = 0
except (SyntaxError, UnicodeError, IOError) as e:
if quiet:
print('*** Error compiling', fullname, '...')
print('*** Error compiling {!r}...'.format(fullname))
else:
print('*** ', end='')
print(e.__class__.__name__ + ':', e)
......
......@@ -345,7 +345,7 @@ class CommandLineTests(unittest.TestCase):
def test_invalid_arg_produces_message(self):
out = self.assertRunOK('badfilename')
self.assertRegex(out, b"Can't list badfilename")
self.assertRegex(out, b"Can't list 'badfilename'")
def test_main():
......
......@@ -19,6 +19,9 @@ Core and Builtins
Library
-------
- Issue #11169: compileall module uses repr() to format filenames and paths to
escape surrogate characters and show spaces.
- Issue #11089: Fix performance issue limiting the use of ConfigParser()
with large config files.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment