def load_from_pipeline(stage, data, typ="outs"): if typ not in ( stage.PARAM_OUTS, stage.PARAM_METRICS, stage.PARAM_PLOTS, stage.PARAM_LIVE, ): raise ValueError(f"'{typ}' key is not allowed for pipeline files.") metric = typ == stage.PARAM_METRICS plot = typ == stage.PARAM_PLOTS live = typ == stage.PARAM_LIVE if live: # `live` is single object data = [data] d = _merge_data(data) for path, flags in d.items(): plt_d, live_d = {}, {} if plot: from dvc.schema import PLOT_PROPS plt_d, flags = _split_dict(flags, keys=PLOT_PROPS.keys()) if live: from dvc.schema import LIVE_PROPS live_d, flags = _split_dict(flags, keys=LIVE_PROPS.keys()) extra = project( flags, [ Output.PARAM_CACHE, Output.PARAM_PERSIST, Output.PARAM_CHECKPOINT, Output.PARAM_REMOTE, ], ) yield _get( stage, path, info={}, plot=plt_d or plot, metric=metric, live=live_d or live, **extra, )
def load_from_pipeline(stage, s_list, typ="outs"): if typ not in (stage.PARAM_OUTS, stage.PARAM_METRICS, stage.PARAM_PLOTS): raise ValueError(f"'{typ}' key is not allowed for pipeline files.") metric = typ == stage.PARAM_METRICS plot = typ == stage.PARAM_PLOTS d = _merge_data(s_list) for path, flags in d.items(): plt_d = {} if plot: from dvc.schema import PLOT_PROPS plt_d, flags = _split_dict(flags, keys=PLOT_PROPS.keys()) extra = project(flags, ["cache", "persist"]) yield _get(stage, path, {}, plot=plt_d or plot, metric=metric, **extra)