From 5fc0e5afecaad5d5d63b5e6c753817246598f6a7 Mon Sep 17 00:00:00 2001 From: Brian Rutledge Date: Mon, 17 May 2021 21:03:30 -0400 Subject: [PATCH 1/2] Improve error message for unsupported metadata --- tests/test_package.py | 1 + twine/package.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/test_package.py b/tests/test_package.py index 467e8758..45cc420b 100644 --- a/tests/test_package.py +++ b/tests/test_package.py @@ -278,6 +278,7 @@ def EmptyDist(filename): package_file.PackageFile.from_filename(filename, comment=None) assert "Invalid distribution metadata" in err.value.args[0] + assert "1.0, 1.1, 1.2, 2.0, and 2.1" in err.value.args[0] def test_malformed_from_file(monkeypatch): diff --git a/twine/package.py b/twine/package.py index 745752ff..a2da7612 100644 --- a/twine/package.py +++ b/twine/package.py @@ -105,8 +105,11 @@ def from_filename(cls, filename: str, comment: Optional[str]) -> "PackageFile": # give us back empty metadata. At the very least, we should have a name # and version if not (meta.name and meta.version): + supported_metadata = list(pkginfo.distribution.HEADER_ATTRS) raise exceptions.InvalidDistribution( - "Invalid distribution metadata. Try upgrading twine if possible." + "Invalid distribution metadata. " + "This version of twine supports Metadata-Version " + f"{', '.join(supported_metadata[:-1])}, and {supported_metadata[-1]}" ) py_version: Optional[str] From d1cdb16b39dcdd186185b7317ed2ffdd64934355 Mon Sep 17 00:00:00 2001 From: Brian Rutledge Date: Sat, 29 May 2021 15:48:06 -0400 Subject: [PATCH 2/2] Add changelog entry --- changelog/755.bugfix.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/755.bugfix.rst diff --git a/changelog/755.bugfix.rst b/changelog/755.bugfix.rst new file mode 100644 index 00000000..bad27f9a --- /dev/null +++ b/changelog/755.bugfix.rst @@ -0,0 +1 @@ +Improve error message for unsupported metadata.