Skip to content

Commit

Permalink
Merge pull request #1191 from dnicolodi/sdist-pyversion
Browse files Browse the repository at this point in the history
  • Loading branch information
woodruffw authored Dec 4, 2024
2 parents a723876 + 3449942 commit 2319d1c
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
3 changes: 3 additions & 0 deletions changelog/1191.misc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
- Use ``"source"`` instead of ``None`` as ``pyversion`` for ``sdist``
uploads. This is what PyPI (and most likely other package indexes)
expects.
6 changes: 6 additions & 0 deletions tests/test_package.py
Original file line number Diff line number Diff line change
Expand Up @@ -466,3 +466,9 @@ def test_malformed_from_file(monkeypatch):
def test_package_from_egg():
filename = "tests/fixtures/twine-3.3.0-py3.9.egg"
package_file.PackageFile.from_filename(filename, comment=None)


def test_package_from_sdist():
filename = "tests/fixtures/twine-1.5.0.tar.gz"
p = package_file.PackageFile.from_filename(filename, comment=None)
assert p.python_version == "source"
6 changes: 4 additions & 2 deletions twine/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,16 +157,18 @@ def from_filename(cls, filename: str, comment: Optional[str]) -> "PackageFile":
)
raise exceptions.InvalidDistribution(msg)

py_version: Optional[str]
if dtype == "bdist_egg":
(dist,) = importlib_metadata.Distribution.discover(path=[filename])
py_version = dist.metadata["Version"]
elif dtype == "bdist_wheel":
py_version = cast(wheel.Wheel, meta).py_version
elif dtype == "bdist_wininst":
py_version = cast(wininst.WinInst, meta).py_version
elif dtype == "sdist":
py_version = "source"
else:
py_version = None
# This should not be reached.
raise ValueError

return cls(
filename, comment, cast(CheckedDistribution, meta), py_version, dtype
Expand Down

0 comments on commit 2319d1c

Please sign in to comment.