Open weaversam8 opened 1 month ago
This is actually true for many different Python datatypes - booleans appear in this output as True
and False
instead of the Terraform true
and false
.
Thank you for maintaining this project, it has been a great help for my work!
I think I'm hitting this bug or something similar. I have a Terraform file with stuff like this in it:
SOMETHING_LIST = [for v in values({ for k, v in module.something.or_other : v["x"] => v["y"]... }) : v[0]]
When I parse the file with the hcl2 library it gave me this value:
${[for v in values({ for k, v in module.something.or_other : v["x"] => v["y"]... }) : v[0]]}
I added some code to remove the ${ }
stuff and all was well until today, when I noticed the parse result now looks like this:
['${[for v in values({ for k, v in module.something.or_other : v["x"] => v["y"]... }) : v[0]]}']
In other words, I'm getting not only the unwanted ${ }
but also an additional [' ']
around the parse result.
After digging around and finding a different environment without the problem, I realized that the broken environment had lark 1.1.9 while the working one had lark 1.2.2. So I'm back to the first case with just the ${ }
stuff.
I hope this data point is useful.
HCL only supports double quotes, but some interpolations may contain single quotes.
Example hcl:
Expected output:
Actual output (note the difference in quotes):
I plan to fix this in a future PR, just creating this issue for tracking purposes.