diff --git a/src/pip/_internal/req/constructors.py b/src/pip/_internal/req/constructors.py index edc6c36f9..7e57f22f7 100644 --- a/src/pip/_internal/req/constructors.py +++ b/src/pip/_internal/req/constructors.py @@ -218,7 +218,7 @@ def parse_req_from_editable(editable_req): def install_req_from_editable( editable_req, # type: str - comes_from=None, # type: Optional[str] + comes_from=None, # type: Optional[Union[InstallRequirement, str]] use_pep517=None, # type: Optional[bool] isolated=False, # type: bool options=None, # type: Optional[Dict[str, Any]] @@ -231,7 +231,9 @@ def install_req_from_editable( source_dir = parts.link.file_path if parts.link.scheme == 'file' else None return InstallRequirement( - parts.requirement, comes_from, source_dir=source_dir, + parts.requirement, + comes_from=comes_from, + source_dir=source_dir, editable=True, link=parts.link, constraint=constraint, diff --git a/src/pip/_internal/resolution/resolvelib/candidates.py b/src/pip/_internal/resolution/resolvelib/candidates.py index b78201a34..db750823f 100644 --- a/src/pip/_internal/resolution/resolvelib/candidates.py +++ b/src/pip/_internal/resolution/resolvelib/candidates.py @@ -60,10 +60,7 @@ def make_install_req_from_editable(link, parent): assert parent.editable, "parent not editable" return install_req_from_editable( link.url, - # HACK: install_req_from_editable accepts Optional[str] here, but - # parent.comes_from is Union[str, InstallRequirement, None]. How do - # we fix the type hint conflicts? - comes_from=parent.comes_from, # type: ignore + comes_from=parent.comes_from, use_pep517=parent.use_pep517, isolated=parent.isolated, constraint=parent.constraint,