Move requirement parsing to separate function in req.constructors
@@ -287,23 +287,8 @@ class RequirementParts(object):
self.extras = extras
-def install_req_from_line(
- name, # type: str
- comes_from=None, # type: Optional[Union[str, InstallRequirement]]
- use_pep517=None, # type: Optional[bool]
- isolated=False, # type: bool
- options=None, # type: Optional[Dict[str, Any]]
- wheel_cache=None, # type: Optional[WheelCache]
- constraint=False, # type: bool
- line_source=None, # type: Optional[str]
-):
- # type: (...) -> InstallRequirement
- """Creates an InstallRequirement from a name, which might be a
- requirement, directory containing 'setup.py', filename, or URL.
-
- :param line_source: An optional string describing where the line is from,
- for logging purposes in case of an error.
- """
+def parse_req_from_line(name, line_source):
+ # type: (str, Optional[str]) -> RequirementParts
if is_url(name):
marker_sep = '; '
else:
@@ -378,7 +363,27 @@ def install_req_from_line(
else:
req = None
- parts = RequirementParts(req, link, markers, extras)
+ return RequirementParts(req, link, markers, extras)
+
+
+def install_req_from_line(
+ name, # type: str
+ comes_from=None, # type: Optional[Union[str, InstallRequirement]]
+ use_pep517=None, # type: Optional[bool]
+ isolated=False, # type: bool
+ options=None, # type: Optional[Dict[str, Any]]
+ wheel_cache=None, # type: Optional[WheelCache]
+ constraint=False, # type: bool
+ line_source=None, # type: Optional[str]
+):
+ # type: (...) -> InstallRequirement
+ """Creates an InstallRequirement from a name, which might be a
+ requirement, directory containing 'setup.py', filename, or URL.
+
+ :param line_source: An optional string describing where the line is from,
+ for logging purposes in case of an error.
+ """
+ parts = parse_req_from_line(name, line_source)
return InstallRequirement(
parts.requirement, comes_from, link=parts.link, markers=parts.markers,
