Files
dvc/tests/func/parsing/__init__.py
T
Saugat Pachhai 620d082b0b refactor resolver and optimize (#5077)
minor refactors, code comments

Rename interim to definitions

provide location of entry during init for definition

small fixups to set_temporarily

Refactor loop to use dict comprehension

Provide same interface for definitions

Make it work for composite lists

Check for sequence rather than a list

refactor tests

Fixes #4955
Fixes #4957
Fixes #4963
2020-12-14 19:22:15 +05:45

55 lines
1.4 KiB
Python

from dvc.parsing import DataResolver, EntryDefinition, ForeachDefinition
from dvc.parsing.context import Context
TEMPLATED_DVC_YAML_DATA = {
"stages": {
"stage1": {
"cmd": "python script.py ${dict.foo} --out ${dict.bar}",
"outs": ["${dict.bar}"],
"deps": ["${dict.foo}"],
"frozen": "${freeze}",
},
"stage2": {"cmd": "echo ${dict.foo} ${dict.bar}"},
}
}
CONTEXT_DATA = {
"dict": {"foo": "foo", "bar": "bar"},
"list": ["param1", "param2"],
"freeze": True,
}
RESOLVED_DVC_YAML_DATA = {
"stages": {
"stage1": {
"cmd": "python script.py foo --out bar",
"outs": ["bar"],
"deps": ["foo"],
"frozen": True,
},
"stage2": {"cmd": "echo foo bar"},
}
}
USED_VARS = {
"stage1": {"dict.foo": "foo", "dict.bar": "bar", "freeze": True},
"stage2": {"dict.foo": "foo", "dict.bar": "bar"},
}
def make_entry_definition(wdir, name, data, context=None) -> EntryDefinition:
return EntryDefinition(
DataResolver(wdir.dvc, wdir, {}), context or Context(), name, data
)
def make_foreach_def(
wdir, name, foreach_data, do_data=None, context=None
) -> ForeachDefinition:
return ForeachDefinition(
DataResolver(wdir.dvc, wdir, {}),
context or Context(),
name,
{"foreach": foreach_data, "do": do_data or {}},
)