diff options
| author | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-08-15 19:20:31 +0100 |
|---|---|---|
| committer | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2022-08-15 19:20:31 +0100 |
| commit | 40fb3369d90b3ebad620e6f23cc682272783f908 (patch) | |
| tree | 4d1d94038abd4f13c3009cba0b309f8d58176d41 /setuptools | |
| parent | 1c96fbe9c3ae7fb476149d2198971fc10ac11298 (diff) | |
| download | python-setuptools-git-40fb3369d90b3ebad620e6f23cc682272783f908.tar.gz | |
Revert change in dist_info search for build_meta
Diffstat (limited to 'setuptools')
| -rw-r--r-- | setuptools/build_meta.py | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/setuptools/build_meta.py b/setuptools/build_meta.py index 98fb148a..3a256259 100644 --- a/setuptools/build_meta.py +++ b/setuptools/build_meta.py @@ -346,15 +346,30 @@ class _BuildMetaBackend(_ConfigSettingsTranslator): Returns the basename of the info directory, e.g. `proj-0.0.0.dist-info`. """ - candidates = list(Path(metadata_directory).glob(f"**/*{suffix}/")) - assert len(candidates) == 1, f"Exactly one {suffix} should have been produced" - info_dir = candidates[0] - - if not same_path(info_dir.parent, metadata_directory): - shutil.move(str(info_dir), metadata_directory) - # PEP 517 allow other files and dirs to exist in metadata_directory - - return info_dir.name + dist_info_directory = metadata_directory + while True: + dist_infos = [f for f in os.listdir(dist_info_directory) + if f.endswith('.dist-info')] + + if ( + len(dist_infos) == 0 and + len(_get_immediate_subdirectories(dist_info_directory)) == 1 + ): + + dist_info_directory = os.path.join( + dist_info_directory, os.listdir(dist_info_directory)[0]) + continue + + assert len(dist_infos) == 1 + break + + if dist_info_directory != metadata_directory: + shutil.move( + os.path.join(dist_info_directory, dist_infos[0]), + metadata_directory) + shutil.rmtree(dist_info_directory, ignore_errors=True) + + return dist_infos[0] def prepare_metadata_for_build_wheel(self, metadata_directory, config_settings=None): |
