From fd7f76bfca4d9800da20d7ddd0a591cf3a2a6aae Mon Sep 17 00:00:00 2001 From: Jake Schmidt Date: Wed, 30 Mar 2022 16:52:59 -0600 Subject: [PATCH] add no-build-isolation feature --- pipcompilemulti/features/controller.py | 3 +++ .../features/no_build_isolation.py | 21 +++++++++++++++++++ tests/test_cli_v1.py | 2 +- 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 pipcompilemulti/features/no_build_isolation.py diff --git a/pipcompilemulti/features/controller.py b/pipcompilemulti/features/controller.py index aa1a294..3069a3c 100644 --- a/pipcompilemulti/features/controller.py +++ b/pipcompilemulti/features/controller.py @@ -19,6 +19,7 @@ from .skip_constraint_comments import SkipConstraintComments from .live_output import LiveOutput from .extra_index_url import ExtraIndexUrl +from .no_build_isolation import NoBuildIsolation class FeaturesController: @@ -44,6 +45,7 @@ def __init__(self): self.skip_constraint_comments = SkipConstraintComments() self.live_output = LiveOutput() self.extra_index_url = ExtraIndexUrl() + self.no_build_isolation = NoBuildIsolation() self._features = [ self.annotate_index, self.use_cache, @@ -63,6 +65,7 @@ def __init__(self): self.skip_constraint_comments, self.live_output, self.extra_index_url, + self.no_build_isolation, ] def bind(self, command): diff --git a/pipcompilemulti/features/no_build_isolation.py b/pipcompilemulti/features/no_build_isolation.py new file mode 100644 index 0000000..fe530d4 --- /dev/null +++ b/pipcompilemulti/features/no_build_isolation.py @@ -0,0 +1,21 @@ +from .base import ClickOption +from .forward import ForwardOption + + +class NoBuildIsolation(ForwardOption): + """ + Enable isolation when building a modern source distribution. + Build dependencies specified by PEP 518 must be already installed if build isolation is disabled. + """ + + OPTION_NAME = 'no_build_isolation' + CLICK_OPTION = ClickOption( + long_option='--no-build-isolation', + is_flag=True, + default=False, + help_text=( + 'Enable isolation when building a modern source distribution. ' + 'Build dependencies specified by PEP 518 must be already installed if build isolation is disabled.' + ), + ) + enabled_pin_options = ['--no-build-isolation'] diff --git a/tests/test_cli_v1.py b/tests/test_cli_v1.py index 3c3c5b6..4e1c181 100644 --- a/tests/test_cli_v1.py +++ b/tests/test_cli_v1.py @@ -16,7 +16,7 @@ def requirements_dir(): @pytest.mark.parametrize('command', ['--no-upgrade', '--upgrade', - '--upgrade-package=pip-tools']) + '--upgrade-package=pip-tools', '--no-build-isolation']) def test_v1_command_exits_with_zero(command): """Run pip-compile-multi on self.