From 7e929c13c6f124ea82c0a5bae33d94b9fe812fd2 Mon Sep 17 00:00:00 2001 From: Wouter Wijsman Date: Fri, 21 Feb 2025 14:16:06 +0100 Subject: [PATCH 1/2] Fix KeyError for packages with versions --- piprot/piprot.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/piprot/piprot.py b/piprot/piprot.py index 5ba1f6f..4c6f774 100755 --- a/piprot/piprot.py +++ b/piprot/piprot.py @@ -180,9 +180,13 @@ def get_version_and_release_date( try: if version: - if version in response["releases"]: + if version in response.get("releases", []): release_date = response["releases"][version][0]["upload_time"] - else: + elif response.get("urls"): + for download in response['urls']: + if download["packagetype"] == "sdist": + release_date = download['upload_time'] + if not release_date: return None, None else: version = response["info"].get("stable_version") From 0105ca3e0c0e5d376eb631eb2941f6d4cb50b522 Mon Sep 17 00:00:00 2001 From: Wouter Wijsman Date: Fri, 21 Feb 2025 14:20:54 +0100 Subject: [PATCH 2/2] Handle KeyError when determining date --- piprot/piprot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/piprot/piprot.py b/piprot/piprot.py index 4c6f774..0661953 100755 --- a/piprot/piprot.py +++ b/piprot/piprot.py @@ -213,7 +213,7 @@ def get_version_and_release_date( return version, datetime.fromtimestamp( time.mktime(time.strptime(release_date, "%Y-%m-%dT%H:%M:%S")) ) - except IndexError: + except (IndexError, KeyError): if verbose: print("{} ({}) didn't return a date property".format(requirement, version)) return None, None