From e18f52cdc6b0da6ce1a287498da9cae47d15328b Mon Sep 17 00:00:00 2001 From: Swen Kooij Date: Thu, 19 Mar 2020 15:23:07 +0200 Subject: [PATCH] Add support for wheel entries --- pippackagelist/entry.py | 8 ++++++++ pippackagelist/parse_requirements_list.py | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/pippackagelist/entry.py b/pippackagelist/entry.py index 84b8d89..d774640 100644 --- a/pippackagelist/entry.py +++ b/pippackagelist/entry.py @@ -53,6 +53,14 @@ class RequirementsVCSPackageEntry(RequirementsEntry): return result +@dataclass +class RequirementsWheelPackageEntry(RequirementsEntry): + uri: str + + def __str__(self) -> str: + return self.uri + + @dataclass class RequirementsPackageEntry(RequirementsEntry): name: str diff --git a/pippackagelist/parse_requirements_list.py b/pippackagelist/parse_requirements_list.py index cbaec46..90e06f6 100644 --- a/pippackagelist/parse_requirements_list.py +++ b/pippackagelist/parse_requirements_list.py @@ -10,6 +10,7 @@ from .entry import ( RequirementsPackageEntry, RequirementsRecursiveEntry, RequirementsVCSPackageEntry, + RequirementsWheelPackageEntry, ) @@ -41,6 +42,10 @@ def parse_requirements_list( elif re.match(r"^(.+)\+", stripped_line): yield parse_vcs_requirements_entry(line_source, stripped_line) + + elif stripped_line.endswith("whl"): + yield parse_wheel_requirements_entry(line_source, stripped_line) + else: yield parse_package_requirements_entry(line_source, stripped_line) @@ -99,6 +104,12 @@ def parse_vcs_requirements_entry( return RequirementsVCSPackageEntry(source=source, vcs=vcs, uri=uri, tag=tag) +def parse_wheel_requirements_entry( + source: RequirementsEntrySource, line: str +) -> RequirementsWheelPackageEntry: + return RequirementsWheelPackageEntry(source=source, uri=line,) + + def parse_package_requirements_entry( source: RequirementsEntrySource, line: str ) -> RequirementsPackageEntry: