From 5c31189a919f6f7208db9ca29eef940113fe5155 Mon Sep 17 00:00:00 2001 From: Dave Berenbaum Date: Wed, 17 Jan 2024 22:11:03 -0500 Subject: [PATCH] repro --pull: always pull deps (#10187) * repro --pull: always pull deps * drop unused allow_missing args --- dvc/stage/__init__.py | 2 +- dvc/stage/run.py | 3 +-- tests/func/repro/test_repro_pull.py | 12 ++++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/dvc/stage/__init__.py b/dvc/stage/__init__.py index 3e75af283..5f96cfef2 100644 --- a/dvc/stage/__init__.py +++ b/dvc/stage/__init__.py @@ -613,7 +613,7 @@ class Stage(params.StageParams): ) or self.is_partial_import: self._sync_import(dry, force, kwargs.get("jobs", None), no_download) elif not self.frozen and self.cmd: - self._run_stage(dry, force, allow_missing=allow_missing, **kwargs) + self._run_stage(dry, force, **kwargs) elif kwargs.get("pull"): logger.info("Pulling data for %s", self) self.repo.pull(self.addressing, jobs=kwargs.get("jobs", None)) diff --git a/dvc/stage/run.py b/dvc/stage/run.py index debd308aa..d374c003f 100644 --- a/dvc/stage/run.py +++ b/dvc/stage/run.py @@ -124,11 +124,10 @@ def run_stage( dry=False, force=False, run_env=None, - allow_missing: bool = False, **kwargs, ): if not force: - if allow_missing and kwargs.get("pull") and not dry: + if kwargs.get("pull") and not dry: _pull_missing_deps(stage) from .cache import RunCacheNotFoundError diff --git a/tests/func/repro/test_repro_pull.py b/tests/func/repro/test_repro_pull.py index 294c1a357..d30044537 100644 --- a/tests/func/repro/test_repro_pull.py +++ b/tests/func/repro/test_repro_pull.py @@ -56,3 +56,15 @@ def test_repro_skip_pull_if_no_run_cache_is_passed(tmp_dir, dvc, mocker, local_r assert dvc.reproduce(pull=True, run_cache=False) assert not spy_pull.called + + +def test_repro_skip_pull_if_single_item_is_passed(tmp_dir, dvc, mocker, local_remote): + (foo,) = tmp_dir.dvc_gen("foo", "foo") + + dvc.push() + + dvc.stage.add(name="copy-foo", cmd="cp foo bar", deps=["foo"], outs=["bar"]) + remove("foo") + remove(foo.outs[0].cache_path) + + assert dvc.reproduce(pull=True, single_item=True)