diff --git a/dvc/repo/experiments/__init__.py b/dvc/repo/experiments/__init__.py index 73498c309..0559d8870 100644 --- a/dvc/repo/experiments/__init__.py +++ b/dvc/repo/experiments/__init__.py @@ -20,6 +20,7 @@ from dvc.path_info import PathInfo from dvc.progress import Tqdm from dvc.repo.experiments.executor import ExperimentExecutor, LocalExecutor from dvc.scm.git import Git +from dvc.stage import PipelineStage from dvc.stage.serialize import to_lockfile from dvc.tree.repo import RepoTree from dvc.utils import dict_sha256, env2bool, relpath @@ -42,7 +43,8 @@ def scm_locked(f): def hash_exp(stages): exp_data = {} for stage in stages: - exp_data.update(to_lockfile(stage)) + if isinstance(stage, PipelineStage): + exp_data.update(to_lockfile(stage)) return dict_sha256(exp_data) diff --git a/dvc/repo/reproduce.py b/dvc/repo/reproduce.py index 529261987..a11d2ae13 100644 --- a/dvc/repo/reproduce.py +++ b/dvc/repo/reproduce.py @@ -239,11 +239,11 @@ def _reproduce_stages( unchanged = [] # `ret` is used to add a cosmetic newline. ret = [] + checkpoint_func = kwargs.pop("checkpoint_func", None) for stage in pipeline: if ret: logger.info("") - checkpoint_func = kwargs.pop("checkpoint_func", None) if checkpoint_func: kwargs["checkpoint_func"] = partial( _repro_callback, checkpoint_func, unchanged