예제 #1
0
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
예제 #2
0
파일: __init__.py 프로젝트: vignesh1997/dvc
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
예제 #3
0
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