diff options
author | Victor Stinner <victor.stinner@haypocalc.com> | 2011-05-10 22:36:28 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@haypocalc.com> | 2011-05-10 22:36:28 (GMT) |
commit | 530712625bac0cb8b507746406163b66f2d36c49 (patch) | |
tree | bb239f54caca4a082e47a83cb73e408a9eb3e6ca | |
parent | 1eb4f28c6db5dd6362341a5f4defc09ef0e7942d (diff) | |
download | cpython-530712625bac0cb8b507746406163b66f2d36c49.zip cpython-530712625bac0cb8b507746406163b66f2d36c49.tar.gz cpython-530712625bac0cb8b507746406163b66f2d36c49.tar.bz2 |
Issue #11169: compileall module uses repr() to format filenames and paths to
escape surrogate characters and show spaces.
-rw-r--r-- | Lib/compileall.py | 10 | ||||
-rw-r--r-- | Lib/test/test_compileall.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 9 insertions, 6 deletions
diff --git a/Lib/compileall.py b/Lib/compileall.py index d79a1bb..743be27 100644 --- a/Lib/compileall.py +++ b/Lib/compileall.py @@ -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) diff --git a/Lib/test/test_compileall.py b/Lib/test/test_compileall.py index c1dfdb3..d1c9ee5 100644 --- a/Lib/test/test_compileall.py +++ b/Lib/test/test_compileall.py @@ -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(): @@ -86,6 +86,9 @@ Core and Builtins Library ------- +- Issue #11169: compileall module uses repr() to format filenames and paths to + escape surrogate characters and show spaces. + - Issue #10419, #6011: build_scripts command of distutils handles correctly non-ASCII path (path to the Python executable). Open and write the script in binary mode, but ensure that the shebang is decodable from UTF-8 and from the |