Skip to content

Commit 2319d1c

Browse files
authored
Merge pull request #1191 from dnicolodi/sdist-pyversion
2 parents a723876 + 3449942 commit 2319d1c

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

changelog/1191.misc.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
- Use ``"source"`` instead of ``None`` as ``pyversion`` for ``sdist``
2+
uploads. This is what PyPI (and most likely other package indexes)
3+
expects.

tests/test_package.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,3 +466,9 @@ def test_malformed_from_file(monkeypatch):
466466
def test_package_from_egg():
467467
filename = "tests/fixtures/twine-3.3.0-py3.9.egg"
468468
package_file.PackageFile.from_filename(filename, comment=None)
469+
470+
471+
def test_package_from_sdist():
472+
filename = "tests/fixtures/twine-1.5.0.tar.gz"
473+
p = package_file.PackageFile.from_filename(filename, comment=None)
474+
assert p.python_version == "source"

twine/package.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,16 +157,18 @@ def from_filename(cls, filename: str, comment: Optional[str]) -> "PackageFile":
157157
)
158158
raise exceptions.InvalidDistribution(msg)
159159

160-
py_version: Optional[str]
161160
if dtype == "bdist_egg":
162161
(dist,) = importlib_metadata.Distribution.discover(path=[filename])
163162
py_version = dist.metadata["Version"]
164163
elif dtype == "bdist_wheel":
165164
py_version = cast(wheel.Wheel, meta).py_version
166165
elif dtype == "bdist_wininst":
167166
py_version = cast(wininst.WinInst, meta).py_version
167+
elif dtype == "sdist":
168+
py_version = "source"
168169
else:
169-
py_version = None
170+
# This should not be reached.
171+
raise ValueError
170172

171173
return cls(
172174
filename, comment, cast(CheckedDistribution, meta), py_version, dtype

0 commit comments

Comments
 (0)