def create_stage(cls, repo, path, **kwargs): from dvc.dvcfile import check_dvc_filename wdir = os.path.abspath(kwargs.get("wdir", None) or os.curdir) path = os.path.abspath(path) check_dvc_filename(path) cls._check_stage_path(repo, wdir, is_wdir=kwargs.get("wdir")) cls._check_stage_path(repo, os.path.dirname(path)) stage = loads_from(cls, repo, path, wdir, kwargs) stage._fill_stage_outputs(**kwargs) stage._fill_stage_dependencies(**kwargs) stage._check_circular_dependency() stage._check_duplicated_arguments() if stage and stage.dvcfile.exists(): has_persist_outs = any(out.persist for out in stage.outs) ignore_build_cache = (kwargs.get("ignore_build_cache", False) or has_persist_outs) if has_persist_outs: logger.warning("Build cache is ignored when persisting outputs.") if not ignore_build_cache and stage.can_be_skipped: logger.info("Stage is cached, skipping.") return None return stage
def create_stage(cls, repo, path, external=False, **kwargs): from dvc.dvcfile import check_dvc_filename wdir = os.path.abspath(kwargs.get("wdir", None) or os.curdir) path = os.path.abspath(path) check_dvc_filename(path) check_stage_path(repo, wdir, is_wdir=kwargs.get("wdir")) check_stage_path(repo, os.path.dirname(path)) stage = loads_from(cls, repo, path, wdir, kwargs) fill_stage_outputs(stage, **kwargs) if not external: check_no_externals(stage) fill_stage_dependencies(stage, **project(kwargs, ["deps", "erepo", "params"])) check_circular_dependency(stage) check_duplicated_arguments(stage) if stage and stage.dvcfile.exists(): has_persist_outs = any(out.persist for out in stage.outs) ignore_run_cache = (not kwargs.get("run_cache", True) or has_persist_outs) if has_persist_outs: logger.warning("Build cache is ignored when persisting outputs.") if not ignore_run_cache and stage.can_be_skipped: logger.info("Stage is cached, skipping") return None return stage
def create_stage(cls, repo, path, external=False, **kwargs): from dvc.dvcfile import check_dvc_filename wdir = os.path.abspath(kwargs.get("wdir", None) or os.curdir) path = os.path.abspath(path) check_dvc_filename(path) check_stage_path(repo, wdir, is_wdir=kwargs.get("wdir")) check_stage_path(repo, os.path.dirname(path)) stage = loads_from(cls, repo, path, wdir, kwargs) fill_stage_outputs(stage, **kwargs) if not external: check_no_externals(stage) fill_stage_dependencies(stage, **project(kwargs, ["deps", "erepo", "params"])) check_circular_dependency(stage) check_duplicated_arguments(stage) return stage