Skip to content

Commit ed56ff4

Browse files
authored
Merge pull request pypa#4286 from di/fix/3593
Support PEP 625
2 parents 230bde5 + 6e74c88 commit ed56ff4

File tree

4 files changed

+15
-2
lines changed

4 files changed

+15
-2
lines changed

newsfragments/3593.feature.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Support PEP 625 by canonicalizing package name and version in filenames.

setuptools/_core_metadata.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from . import _normalization, _reqs
1818
from .extern.packaging.markers import Marker
1919
from .extern.packaging.requirements import Requirement
20+
from .extern.packaging.utils import canonicalize_name, canonicalize_version
2021
from .extern.packaging.version import Version
2122
from .warnings import SetuptoolsDeprecationWarning
2223

@@ -257,3 +258,11 @@ def _write_provides_extra(file, processed_extras, safe, unsafe):
257258
else:
258259
processed_extras[safe] = unsafe
259260
file.write(f"Provides-Extra: {safe}\n")
261+
262+
263+
# from pypa/distutils#244; needed only until that logic is always available
264+
def get_fullname(self):
265+
return "{}-{}".format(
266+
canonicalize_name(self.get_name()).replace('-', '_'),
267+
canonicalize_version(self.get_version()),
268+
)

setuptools/monkey.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ def _patch_distribution_metadata():
9595
'write_pkg_file',
9696
'read_pkg_file',
9797
'get_metadata_version',
98+
'get_fullname',
9899
):
99100
new_val = getattr(_core_metadata, attr)
100101
setattr(distutils.dist.DistributionMetadata, attr, new_val)

setuptools/tests/test_config_discovery.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ def test_py_modules_when_wheel_dir_is_cwd(self, tmp_path):
255255

256256

257257
class TestNoConfig:
258-
DEFAULT_VERSION = "0.0.0" # Default version given by setuptools
258+
CANONICAL_DEFAULT_VERSION = "0" # Canonical default version given by setuptools
259259

260260
EXAMPLES = {
261261
"pkg1": ["src/pkg1.py"],
@@ -277,7 +277,9 @@ def test_build_with_discovered_name(self, tmp_path):
277277
_populate_project_dir(tmp_path, files, {})
278278
_run_build(tmp_path, "--sdist")
279279
# Expected distribution file
280-
dist_file = tmp_path / f"dist/ns.nested.pkg-{self.DEFAULT_VERSION}.tar.gz"
280+
dist_file = (
281+
tmp_path / f"dist/ns_nested_pkg-{self.CANONICAL_DEFAULT_VERSION}.tar.gz"
282+
)
281283
assert dist_file.is_file()
282284

283285

0 commit comments

Comments
 (0)