[3.12] gh-109002: Ensure only one wheel for each vendored package (GH-109003) (#109005)

Output with one wheel:
```
❯ GITHUB_ACTIONS=true ./Tools/build/verify_ensurepip_wheels.py
Verifying checksum for /Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl.
Expected digest: 7ccf472345f20d35bdc9d1841ff5f313260c2c33fe417f48c30ac46cccabf5be
Actual digest:   7ccf472345f20d35bdc9d1841ff5f313260c2c33fe417f48c30ac46cccabf5be
::notice file=/Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl::Successfully verified the checksum of the pip wheel.
```

Output with two wheels:
```
❯ GITHUB_ACTIONS=true ./Tools/build/verify_ensurepip_wheels.py
::error file=/Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-22.0.4-py3-none-any.whl::Found more than one wheel for package pip.

::error file=/Volumes/RAMDisk/cpython/Lib/ensurepip/_bundled/pip-23.2.1-py3-none-any.whl::Found more than one wheel for package pip.
```

Output without wheels:
```
❯ GITHUB_ACTIONS=true ./Tools/build/verify_ensurepip_wheels.py
::error file=::Could not find a pip wheel on disk.
```
(cherry picked from commit f8a047941f)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
This commit is contained in:
Miss Islington (bot) 2023-09-06 11:01:36 -07:00 committed by GitHub
parent ce3709568b
commit db55cfcbab
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,4 +1,4 @@
#! /usr/bin/env python3 #!/usr/bin/env python3
""" """
Compare checksums for wheels in :mod:`ensurepip` against the Cheeseshop. Compare checksums for wheels in :mod:`ensurepip` against the Cheeseshop.
@ -35,11 +35,17 @@ def print_error(file_path: str, message: str) -> None:
def verify_wheel(package_name: str) -> bool: def verify_wheel(package_name: str) -> bool:
# Find the package on disk # Find the package on disk
package_path = next(WHEEL_DIR.glob(f"{package_name}*.whl"), None) package_paths = list(WHEEL_DIR.glob(f"{package_name}*.whl"))
if not package_path: if len(package_paths) != 1:
print_error("", f"Could not find a {package_name} wheel on disk.") if package_paths:
for p in package_paths:
print_error(p, f"Found more than one wheel for package {package_name}.")
else:
print_error("", f"Could not find a {package_name} wheel on disk.")
return False return False
package_path = package_paths[0]
print(f"Verifying checksum for {package_path}.") print(f"Verifying checksum for {package_path}.")
# Find the version of the package used by ensurepip # Find the version of the package used by ensurepip