]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-39769: Fix compileall ddir for subpkgs. (GH-18676) (GH-18718)
authorGregory P. Smith <greg@krypto.org>
Sun, 1 Mar 2020 18:42:56 +0000 (10:42 -0800)
committerGitHub <noreply@github.com>
Sun, 1 Mar 2020 18:42:56 +0000 (10:42 -0800)
commitce720d3e0674d6ac6f1b950c20a89be4cfde7853
tree54dba81e8458c72a3e65886d69d688c9ed07b044
parentfec6681f7ae3e8867bd0446aa993a0b5f23045f9
bpo-39769: Fix compileall ddir for subpkgs. (GH-18676) (GH-18718)

Fix compileall.compile_dir() ddir= behavior on sub-packages.

Fixes compileall.compile_dir's ddir parameter and compileall command
line flag `-d` to no longer write the wrong pathname to the generated
pyc file for submodules beneath the root of the directory tree being
compiled.  This fixes a regression introduced with Python 3.5.

Tests backported from GH 02673352b5db6ca4d3dc804965facbedfe66425d, the
implementation is different due to intervening code changes.  But still
quiet simple.

Why was the bug ever introduced?  The refactoring to add parallel
execution kept the ddir -> dfile computations but discarded the results
instead of sending them to compile_file().  This fixes that.  Lack of tests
meant this went unnoticed.
Lib/compileall.py
Lib/test/test_compileall.py
Lib/test/test_importlib/util.py
Misc/NEWS.d/next/Library/2020-02-29-13-20-33.bpo-39769.hJmxu4.rst [new file with mode: 0644]