diff --git a/src/nox_poetry/sessions.py b/src/nox_poetry/sessions.py index 05491c43..681ce79e 100644 --- a/src/nox_poetry/sessions.py +++ b/src/nox_poetry/sessions.py @@ -13,6 +13,7 @@ from packaging.requirements import InvalidRequirement from packaging.requirements import Requirement +from nox_poetry.poetry import CommandSkippedError from nox_poetry.poetry import DistributionFormat from nox_poetry.poetry import Poetry @@ -120,12 +121,18 @@ def install(self, *args: str, **kwargs: Any) -> None: kwargs: Keyword-arguments for ``session.install``. These are the same as those for :meth:`nox.sessions.Session.run`. """ + if not self._install_enabled(): + return + from nox_poetry.core import Session_install args_extras = [_split_extras(arg) for arg in args] if "." in [arg for arg, _ in args_extras]: - package = self.build_package() + try: + package = self.build_package() + except CommandSkippedError: + return def rewrite(arg: str, extras: Optional[str]) -> str: if arg != ".": @@ -141,7 +148,11 @@ def rewrite(arg: str, extras: Optional[str]) -> str: self.session.run_always("pip", "uninstall", "--yes", package, silent=True) - requirements = self.export_requirements() + try: + requirements = self.export_requirements() + except CommandSkippedError: + return + Session_install(self.session, f"--constraint={requirements}", *args, **kwargs) def installroot( @@ -165,10 +176,16 @@ def installroot( distribution_format: The distribution format, either wheel or sdist. extras: Extras to install for the package. """ + if not self._install_enabled(): + return + from nox_poetry.core import Session_install - package = self.build_package(distribution_format=distribution_format) - requirements = self.export_requirements() + try: + package = self.build_package(distribution_format=distribution_format) + requirements = self.export_requirements() + except CommandSkippedError: + return self.session.run_always("pip", "uninstall", "--yes", package, silent=True)