|
26 | 26 | from pip._internal.req.req_install import InstallRequirement
|
27 | 27 | from pip._internal.utils.filetypes import is_archive_file
|
28 | 28 | from pip._internal.utils.misc import is_installable_dir
|
| 29 | +from pip._internal.utils.packaging import get_requirement |
29 | 30 | from pip._internal.utils.urls import path_to_url
|
30 | 31 | from pip._internal.vcs import is_url, vcs
|
31 | 32 |
|
@@ -54,7 +55,7 @@ def _strip_extras(path: str) -> Tuple[str, Optional[str]]:
|
54 | 55 | def convert_extras(extras: Optional[str]) -> Set[str]:
|
55 | 56 | if not extras:
|
56 | 57 | return set()
|
57 |
| - return Requirement("placeholder" + extras.lower()).extras |
| 58 | + return get_requirement("placeholder" + extras.lower()).extras |
58 | 59 |
|
59 | 60 |
|
60 | 61 | def parse_editable(editable_req: str) -> Tuple[Optional[str], str, Set[str]]:
|
@@ -83,7 +84,7 @@ def parse_editable(editable_req: str) -> Tuple[Optional[str], str, Set[str]]:
|
83 | 84 | return (
|
84 | 85 | package_name,
|
85 | 86 | url_no_extras,
|
86 |
| - Requirement("placeholder" + extras.lower()).extras, |
| 87 | + get_requirement("placeholder" + extras.lower()).extras, |
87 | 88 | )
|
88 | 89 | else:
|
89 | 90 | return package_name, url_no_extras, set()
|
@@ -309,7 +310,7 @@ def with_source(text: str) -> str:
|
309 | 310 |
|
310 | 311 | def _parse_req_string(req_as_string: str) -> Requirement:
|
311 | 312 | try:
|
312 |
| - req = Requirement(req_as_string) |
| 313 | + req = get_requirement(req_as_string) |
313 | 314 | except InvalidRequirement:
|
314 | 315 | if os.path.sep in req_as_string:
|
315 | 316 | add_msg = "It looks like a path."
|
@@ -386,7 +387,7 @@ def install_req_from_req_string(
|
386 | 387 | user_supplied: bool = False,
|
387 | 388 | ) -> InstallRequirement:
|
388 | 389 | try:
|
389 |
| - req = Requirement(req_string) |
| 390 | + req = get_requirement(req_string) |
390 | 391 | except InvalidRequirement:
|
391 | 392 | raise InstallationError(f"Invalid requirement: '{req_string}'")
|
392 | 393 |
|
|
0 commit comments