From 8a3374aebb2499f4f8506c0cee04c7ab364d3865 Mon Sep 17 00:00:00 2001 From: Achilles Rasquinha Date: Wed, 30 Mar 2022 11:21:23 -0500 Subject: [PATCH] fix #133 --- src/pipupgrade/_pip.py | 3 +++ src/pipupgrade/model/package.py | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/pipupgrade/_pip.py b/src/pipupgrade/_pip.py index 443126d..443e82a 100644 --- a/src/pipupgrade/_pip.py +++ b/src/pipupgrade/_pip.py @@ -40,6 +40,9 @@ class FakeParsedRequirement(object): DistInfoDistribution, EggInfoDistribution ) +from pip._vendor.packaging.requirements import ( + Requirement +) def _get_pip_executable(multiple = False): pips = ("pip", "pip3", "pip2") diff --git a/src/pipupgrade/model/package.py b/src/pipupgrade/model/package.py index ea959af..a5ac9e5 100644 --- a/src/pipupgrade/model/package.py +++ b/src/pipupgrade/model/package.py @@ -83,8 +83,11 @@ def to_datetime(string): return datetime.strptime(string, "%Y-%m-%d %H:%M:%S.%f") def parse_parsed_requirement(package): - requirement = package.requirement + requirement = _pip.Requirement(package.requirement) meta_data = { } + + meta_data["name"] = requirement.name + meta_data["current_version"] = str(requirement.specifier) return meta_data @@ -110,6 +113,7 @@ def __init__(self, package, sync = False, pip_exec = None): elif isinstance(package, _pip.ParsedRequirement): meta_data = parse_parsed_requirement(package) self.name = meta_data["name"] + self.current_version = meta_data["current_version"] elif isinstance(package, dict): self.name = package["name"] self.current_version = package["version"] @@ -159,7 +163,7 @@ def __init__(self, package, sync = False, pip_exec = None): self.latest_version = _pypi_info.get("version") self.home_page = _pypi_info.get("home_page") - self.releases = [version for version in iterkeys(_pypi_info.get("releases") or [])] + self.releases = [version for version in iterkeys(_pypi_info.get("releases") or {})] if not res: try: