summaryrefslogtreecommitdiff
path: root/setuptools
diff options
context:
space:
mode:
authorAnderson Bravalheri <andersonbravalheri@gmail.com>2022-08-15 19:20:31 +0100
committerAnderson Bravalheri <andersonbravalheri@gmail.com>2022-08-15 19:20:31 +0100
commit40fb3369d90b3ebad620e6f23cc682272783f908 (patch)
tree4d1d94038abd4f13c3009cba0b309f8d58176d41 /setuptools
parent1c96fbe9c3ae7fb476149d2198971fc10ac11298 (diff)
downloadpython-setuptools-git-40fb3369d90b3ebad620e6f23cc682272783f908.tar.gz
Revert change in dist_info search for build_meta
Diffstat (limited to 'setuptools')
-rw-r--r--setuptools/build_meta.py33
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):