Commit e99ea5d0 by Ben Altieri Committed by GitHub

Remove pip_editable_install wrapper

Resolves: #4265
parent e345879d
...@@ -26,7 +26,6 @@ from poetry.utils.authenticator import Authenticator ...@@ -26,7 +26,6 @@ from poetry.utils.authenticator import Authenticator
from poetry.utils.env import EnvCommandError from poetry.utils.env import EnvCommandError
from poetry.utils.helpers import pluralize from poetry.utils.helpers import pluralize
from poetry.utils.helpers import safe_rmtree from poetry.utils.helpers import safe_rmtree
from poetry.utils.pip import pip_editable_install
from poetry.utils.pip import pip_install from poetry.utils.pip import pip_install
...@@ -115,12 +114,8 @@ class Executor: ...@@ -115,12 +114,8 @@ class Executor:
def pip_install( def pip_install(
self, req: Path | Link, upgrade: bool = False, editable: bool = False self, req: Path | Link, upgrade: bool = False, editable: bool = False
) -> int: ) -> int:
func = pip_install
if editable:
func = pip_editable_install
try: try:
func(req, self._env, upgrade=upgrade) pip_install(req, self._env, upgrade=upgrade, editable=editable)
except EnvCommandError as e: except EnvCommandError as e:
output = decode(e.e.output) output = decode(e.e.output)
if ( if (
...@@ -572,11 +567,11 @@ class Executor: ...@@ -572,11 +567,11 @@ class Executor:
with builder.setup_py(): with builder.setup_py():
if package.develop: if package.develop:
return self.pip_install(req, editable=True) return self.pip_install(req, upgrade=True, editable=True)
return self.pip_install(req, upgrade=True) return self.pip_install(req, upgrade=True)
if package.develop: if package.develop:
return self.pip_install(req, editable=True) return self.pip_install(req, upgrade=True, editable=True)
return self.pip_install(req, upgrade=True) return self.pip_install(req, upgrade=True)
......
...@@ -14,7 +14,6 @@ from poetry.core.pyproject.toml import PyProjectTOML ...@@ -14,7 +14,6 @@ from poetry.core.pyproject.toml import PyProjectTOML
from poetry.installation.base_installer import BaseInstaller from poetry.installation.base_installer import BaseInstaller
from poetry.utils._compat import encode from poetry.utils._compat import encode
from poetry.utils.helpers import safe_rmtree from poetry.utils.helpers import safe_rmtree
from poetry.utils.pip import pip_editable_install
from poetry.utils.pip import pip_install from poetry.utils.pip import pip_install
...@@ -231,15 +230,20 @@ class PipInstaller(BaseInstaller): ...@@ -231,15 +230,20 @@ class PipInstaller(BaseInstaller):
with builder.setup_py(): with builder.setup_py():
if package.develop: if package.develop:
return pip_editable_install( return pip_install(
directory=req, environment=self._env directory=req,
environment=self._env,
upgrade=True,
editable=True,
) )
return pip_install( return pip_install(
path=req, environment=self._env, deps=False, upgrade=True path=req, environment=self._env, deps=False, upgrade=True
) )
if package.develop: if package.develop:
return pip_editable_install(directory=req, environment=self._env) return pip_install(
directory=req, environment=self._env, upgrade=True, editable=True
)
return pip_install(path=req, environment=self._env, deps=False, upgrade=True) return pip_install(path=req, environment=self._env, deps=False, upgrade=True)
def install_git(self, package: Package) -> None: def install_git(self, package: Package) -> None:
......
...@@ -16,7 +16,7 @@ from poetry.core.semver.version import Version ...@@ -16,7 +16,7 @@ from poetry.core.semver.version import Version
from poetry.utils._compat import WINDOWS from poetry.utils._compat import WINDOWS
from poetry.utils._compat import decode from poetry.utils._compat import decode
from poetry.utils.helpers import is_dir_writable from poetry.utils.helpers import is_dir_writable
from poetry.utils.pip import pip_editable_install from poetry.utils.pip import pip_install
if TYPE_CHECKING: if TYPE_CHECKING:
...@@ -93,14 +93,14 @@ class EditableBuilder(Builder): ...@@ -93,14 +93,14 @@ class EditableBuilder(Builder):
try: try:
if self._env.pip_version < Version.from_parts(19, 0): if self._env.pip_version < Version.from_parts(19, 0):
pip_editable_install(self._path, self._env) pip_install(self._path, self._env, upgrade=True, editable=True)
else: else:
# Temporarily rename pyproject.toml # Temporarily rename pyproject.toml
shutil.move( shutil.move(
str(self._poetry.file), str(self._poetry.file.with_suffix(".tmp")) str(self._poetry.file), str(self._poetry.file.with_suffix(".tmp"))
) )
try: try:
pip_editable_install(self._path, self._env) pip_install(self._path, self._env, upgrade=True, editable=True)
finally: finally:
shutil.move( shutil.move(
str(self._poetry.file.with_suffix(".tmp")), str(self._poetry.file.with_suffix(".tmp")),
......
...@@ -53,9 +53,3 @@ def pip_install( ...@@ -53,9 +53,3 @@ def pip_install(
return environment.run_pip(*args) return environment.run_pip(*args)
except EnvCommandError as e: except EnvCommandError as e:
raise PoetryException(f"Failed to install {path.as_posix()}") from e raise PoetryException(f"Failed to install {path.as_posix()}") from e
def pip_editable_install(directory: Path | Link, environment: Env) -> int | str:
return pip_install(
path=directory, environment=environment, editable=True, deps=False, upgrade=True
)
...@@ -106,9 +106,7 @@ def test_execute_executes_a_batch_of_operations( ...@@ -106,9 +106,7 @@ def test_execute_executes_a_batch_of_operations(
mock_file_downloads: None, mock_file_downloads: None,
env: MockEnv, env: MockEnv,
): ):
pip_editable_install = mocker.patch( pip_install = mocker.patch("poetry.installation.executor.pip_install")
"poetry.installation.executor.pip_editable_install"
)
config.merge({"cache-dir": tmp_dir}) config.merge({"cache-dir": tmp_dir})
...@@ -171,9 +169,11 @@ Package operations: 4 installs, 1 update, 1 removal ...@@ -171,9 +169,11 @@ Package operations: 4 installs, 1 update, 1 removal
expected = set(expected.splitlines()) expected = set(expected.splitlines())
output = set(io.fetch_output().splitlines()) output = set(io.fetch_output().splitlines())
assert output == expected assert output == expected
assert len(env.executed) == 5 assert len(env.executed) == 1
assert return_code == 0 assert return_code == 0
pip_editable_install.assert_called_once() assert pip_install.call_count == 5
assert pip_install.call_args.kwargs.get("upgrade", False)
assert pip_install.call_args.kwargs.get("editable", False)
def test_execute_shows_skipped_operations_if_verbose( def test_execute_shows_skipped_operations_if_verbose(
......
...@@ -192,15 +192,13 @@ if __name__ == '__main__': ...@@ -192,15 +192,13 @@ if __name__ == '__main__':
def test_builder_falls_back_on_setup_and_pip_for_packages_with_build_scripts( def test_builder_falls_back_on_setup_and_pip_for_packages_with_build_scripts(
mocker: MockerFixture, extended_poetry: Poetry, tmp_dir: str mocker: MockerFixture, extended_poetry: Poetry, tmp_dir: str
): ):
pip_editable_install = mocker.patch( pip_install = mocker.patch("poetry.masonry.builders.editable.pip_install")
"poetry.masonry.builders.editable.pip_editable_install"
)
env = MockEnv(path=Path(tmp_dir) / "foo") env = MockEnv(path=Path(tmp_dir) / "foo")
builder = EditableBuilder(extended_poetry, env, NullIO()) builder = EditableBuilder(extended_poetry, env, NullIO())
builder.build() builder.build()
pip_editable_install.assert_called_once_with( pip_install.assert_called_once_with(
extended_poetry.pyproject.file.path.parent, env extended_poetry.pyproject.file.path.parent, env, upgrade=True, editable=True
) )
assert [] == env.executed assert [] == env.executed
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment