All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Issue parsing ellipsis in a separate line within
forexpression (#221) - Issue parsing inline expression as an object key; see Limitations in README.md (#222)
hcl2.builder.Builder- nested blocks support (#214)
- Issue parsing parenthesesed identifier (reference) as an object key (#212)
- Issue discarding empty lists when transforming python dictionary into Lark Tree (#216)
- Issue parsing dot-accessed attribute as an object key (#209)
Limitationssection to README.md (#200)
- Issue handling heredoc with delimiter within text itself (#194)
- Various issues with parsing object elements (#197)
- Dictionary -> hcl2 reconstruction of
nullvalues (#198) - Inaccurate parsing of
nullvalues in some cases (#206) - Missing parenthesis in arithemetic expressions (#194)
- Noticeable overhead when loading hcl2.reconstructor module (#202)
- Escaped string interpolation (e.g.
"$${aws:username}") parsing (#200)
- Support for parsing interpolations nested more than 2 times (known-issue) (#200)
DictTransformer.to_tf_inline- handle float type. (#188)
- fix e-notation and negative numbers literals. (#182)
- fix parsing of
null. (#184) - DictTransformer - do not wrap type literals into
${and}. (#186)
- Support full reconstruction of HCL from Python structures. Thanks, @weaversam8, @Nfsaavedra (#177)
- fix
tree-to-hcl2-reconstruction.mdURL in README.md (#175)
- Support full reconstruction of HCL from parse tree. Thanks, @weaversam8 (#169)
- additional test coverage (#165)
- fix: Add support for attributes named "in". Thanks, @elisiariocouto (#164)
- fix: add "for" attribute identifier. Thanks, @zhcli (#167)
- allow
ifandfor_eachkeywords to be used as identifiers (#168)
- fix codacy badge (#157)
- Fix MANIFEST.in and/or Python dependency filename(s) (#161)
- adds support for provider functions. Thanks, @lkwg82 (#162)
- Support for Python 3.12 (#153)
- Support for the conditional inside the nested locals without parentheses (#138)
- Support for the braces in the next line. Thanks @rout39574 (#129)
- Support for the ternary multi-line expression. Thanks @seksham (#128)
- Add tests for multiline comments inside a tuple (#118)
- Add
__begin_line__and__end_line__meta parameters (#120) - Add feature to parse comments in function args and list elems (#119)
- Support empty heredoc and fix catastrophic backtracking issue (#117)
- Use Lark with its cache feature, instead of creating a standalone parser by @erezsh (#53)
- Refactor tests (#114)
- Remove pycodestyle, add black, add numerous pre-commit checks (#115)
- Added support of the
lark ≥1.0,<2. Thanks @KOLANICH (#100)
- Dropped support of the
lark <1.0. - Added code improvements
- Added support of python 3.11
- Moved from setup.py to pyproject.toml. Thanks @KOLANICH (#98)
- Updated the tox version in github actions to >=4.0.9,<5.
- Dropped completely python 3.6.
- Added PEP improvements
- Added support of python 3.10
- Dropped support of python 3.6
- Setup tox-gh-actions
- Migrated from nose to nose2
- Fixed parsing of for expressions when there is a new line before the colon
- Handle nested interpolations. Thanks @arielkru and @matt-land (#61)
- Fixed nested splat statements. Thanks @josh-barker (#80)
- Fixed an issue of whitespace around for expressions. Thanks @ryanking and @matchaxnb (#87)
- Included the generated parser in the distribution.
- BREAKING CHANGES: Attributes in blocks are no longer transformed into Python lists. Thanks @raymondbutcher (#73)
- Skipped more exceptions for un-parsable files. Thanks @tanasegabriel (#60)
- Allowed empty objects. Thanks @santoshankr (#59)
- Allowed multiline conditional statements. Thanks @stpierre (#51)
- Added support for Python 3.9
- Upgraded to Lark parser 0.10
- Fixed errors caused by identifiers named "true", "false", or "null"
- Treat one line blocks the same as multi line blocks. This is a breaking change so bumping to 1.0.0 to make sure no one accidentally upgrades to this version without being aware of the breaking change. Thank you @arielkru (#35)
- Added support for colon separators in object definitions as specified in the spec
- Added support for legacy array index notation using dot. Thank you @arielkru (#36)