Quote escaping issues leads to lost backslash `\` and syntax errors
darist opened this issue · 0 comments
darist commented
Hi there, I ran into this situation:
Given yaml like:
arguments:
- --textproto_content
- 'query: "\''foo\'' = \"foo\"" x: "bar"'
Boundary layer produces Python code like (whitespace added for clarity):
arguments = [
'--textproto_content',
"""query: "\'foo\' = \"foo\"" x: "bar"""",
There are two problems with the generated """query:...
code above:
- The string ending with 4 " characters:
""""
causes a syntax error
>>> print("""query: "\'foo\' = \"foo\"" x: "bar"""")
File "<stdin>", line 1
print("""query: "\'foo\' = \"foo\"" x: "bar"""")
^
SyntaxError: unterminated string literal (detected at line 1)
- Even if I fix that syntax error, we lose the
\
characters that were part of the original string (and we need so that the resulting string that is passed to the operator is valid textproto)
>>> print("""query: "\'foo\' = \"foo\"" x: "bar" """)
query: "'foo' = "foo"" x: "bar"
Expected:
query: "\'foo\' = \"foo\"" x: "bar"