From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Mon, 18 Aug 2025 13:55:44 +0000 (+0200) Subject: [3.13] gh-123085: _compile_importlib: Avoid copying sources before compilation (GH... X-Git-Tag: v3.13.8~175 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fc2e84feb11564d705a76255c132f37c3868498e;p=thirdparty%2FPython%2Fcpython.git [3.13] gh-123085: _compile_importlib: Avoid copying sources before compilation (GH-124131) (#137914) gh-123085: _compile_importlib: Avoid copying sources before compilation (GH-124131) (cherry picked from commit 42c8b0556c02d29e32f4c7c95e7128a343716250) Co-authored-by: Petr Viktorin Co-authored-by: Jason R. Coombs --- diff --git a/Lib/test/test_importlib/resources/test_files.py b/Lib/test/test_importlib/resources/test_files.py index f903d3bba85e..db8a4e62a32d 100644 --- a/Lib/test/test_importlib/resources/test_files.py +++ b/Lib/test/test_importlib/resources/test_files.py @@ -154,18 +154,17 @@ class ImplicitContextFiles: def _compile_importlib(self): """ Make a compiled-only copy of the importlib resources package. + + Currently only code is copied, as importlib resources doesn't itself + have any resources. """ bin_site = self.fixtures.enter_context(os_helper.temp_dir()) c_resources = pathlib.Path(bin_site, 'c_resources') sources = pathlib.Path(resources.__file__).parent - shutil.copytree(sources, c_resources, ignore=lambda *_: ['__pycache__']) - - for dirpath, _, filenames in os.walk(c_resources): - for filename in filenames: - source_path = pathlib.Path(dirpath) / filename - cfile = source_path.with_suffix('.pyc') - py_compile.compile(source_path, cfile) - pathlib.Path.unlink(source_path) + + for source_path in sources.glob('**/*.py'): + c_path = c_resources.joinpath(source_path.relative_to(sources)).with_suffix('.pyc') + py_compile.compile(source_path, c_path) self.fixtures.enter_context(import_helper.DirsOnSysPath(bin_site)) def test_implicit_files_with_compiled_importlib(self):