mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-10 15:28:34 +01:00
remove support for double braces (#5476)
This commit is contained in:
@@ -22,11 +22,10 @@ RBRACK = "]"
|
||||
PERIOD = "."
|
||||
KEYCRE = re.compile(
|
||||
r"""
|
||||
(?<!\\) # escape \${} or ${{}}
|
||||
\$ # starts with $
|
||||
(?:({{)|({)) # either starts with double braces or single
|
||||
(.*?) # match every char inside
|
||||
(?(1)}})(?(2)}) # end with same kinds of braces it opened with
|
||||
(?<!\\) # escape \${}
|
||||
\${ # starts with ${
|
||||
(?P<inner>.*?) # match every char inside
|
||||
} # end with {
|
||||
""",
|
||||
re.VERBOSE,
|
||||
)
|
||||
@@ -137,6 +136,7 @@ def parse_expr(s: str):
|
||||
result = get_parser().parseString(s, parseAll=True)
|
||||
except ParseException as exc:
|
||||
format_and_raise_parse_error(exc)
|
||||
raise AssertionError("unreachable")
|
||||
|
||||
joined = result.asList()
|
||||
assert len(joined) == 1
|
||||
@@ -144,7 +144,7 @@ def parse_expr(s: str):
|
||||
|
||||
|
||||
def get_expression(match: "Match", skip_checks: bool = False):
|
||||
_, _, inner = match.groups()
|
||||
inner = match["inner"]
|
||||
return inner if skip_checks else parse_expr(inner)
|
||||
|
||||
|
||||
|
||||
@@ -6,13 +6,7 @@ from dvc.parsing.context import Context, recurse_not_a_node
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"template, var",
|
||||
[
|
||||
("${value}", "value"),
|
||||
("${{item}}", "item"),
|
||||
("${ item }", "item"),
|
||||
("${{ value }}", "value"),
|
||||
],
|
||||
"template, var", [("${value}", "value"), ("${ item }", "item")],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"data", [True, 12, pi, None, False, 0, "0", "123", "Foobar", "", inf, 3e4]
|
||||
@@ -26,10 +20,7 @@ def test_resolve_primitive_values(data, template, var):
|
||||
"template, expected",
|
||||
[
|
||||
(r"\${value}", "${value}"),
|
||||
(r"\${{value}}", "${{value}}"),
|
||||
(r"\${ value }", "${ value }"),
|
||||
(r"\${{ value }}", "${{ value }}"),
|
||||
(r"\${{ value }} days", "${{ value }} days"),
|
||||
(r"\${ value } days", "${ value } days"),
|
||||
(r"Month of \${value}", "Month of ${value}"),
|
||||
(r"May the \${value} be with you", "May the ${value} be with you"),
|
||||
@@ -39,7 +30,7 @@ def test_resolve_primitive_values(data, template, var):
|
||||
),
|
||||
],
|
||||
)
|
||||
def test_escape(template, expected, mocker):
|
||||
def test_escape(template, expected):
|
||||
context = Context({"value": "value"})
|
||||
assert context.resolve(template) == expected
|
||||
|
||||
|
||||
Reference in New Issue
Block a user