Add RequirementParts to hold parsed requirement info

This commit is contained in:
Chris Hunt 2019-09-19 21:23:13 -04:00
parent 13ab7a2bce
commit 1ae28f6946
1 changed files with 18 additions and 2 deletions

View File

@ -273,6 +273,20 @@ def _get_url_from_path(path, name):
return path_to_url(path)
class RequirementParts(object):
def __init__(
self,
requirement, # type: Optional[Requirement]
link, # type: Optional[Link]
markers, # type: Optional[Marker]
extras, # type: Set[str]
):
self.requirement = requirement
self.link = link
self.markers = markers
self.extras = extras
def install_req_from_line(
name, # type: str
comes_from=None, # type: Optional[Union[str, InstallRequirement]]
@ -364,13 +378,15 @@ def install_req_from_line(
else:
req = None
parts = RequirementParts(req, link, markers, extras)
return InstallRequirement(
req, comes_from, link=link, markers=markers,
parts.requirement, comes_from, link=parts.link, markers=parts.markers,
use_pep517=use_pep517, isolated=isolated,
options=options if options else {},
wheel_cache=wheel_cache,
constraint=constraint,
extras=extras,
extras=parts.extras,
)