Skip to content

Commit fc49bad

Browse files
reorganize new and old code
1 parent ca19232 commit fc49bad

30 files changed

Lines changed: 442 additions & 1734 deletions

hcl2/__init__.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
parse,
1212
parses,
1313
transform,
14-
reverse_transform,
1514
writes,
1615
)
1716

hcl2/api.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
from typing import TextIO
33

44
from lark.tree import Tree
5-
from hcl2.parser import parser, reconstruction_parser
6-
from hcl2.dict_transformer import DictTransformer
7-
from hcl2.reconstructor import HCLReconstructor, HCLReverseTransformer
5+
from hcl2.parser import parser
6+
from hcl2.reconstructor import HCLReconstructor
7+
from hcl2.transformer import RuleTransformer
88

99

1010
def load(file: TextIO, with_meta=False) -> dict:
@@ -27,7 +27,7 @@ def loads(text: str, with_meta=False) -> dict:
2727
# This means that all blocks must end in a new line even if the file ends
2828
# Append a new line as a temporary fix
2929
tree = parser().parse(text + "\n")
30-
return DictTransformer(with_meta=with_meta).transform(tree)
30+
return RuleTransformer().transform(tree)
3131

3232

3333
def parse(file: TextIO) -> Tree:
@@ -41,7 +41,7 @@ def parses(text: str) -> Tree:
4141
"""Load HCL2 syntax tree from a string.
4242
:param text: Text with hcl2 to be loaded as a dict.
4343
"""
44-
return reconstruction_parser().parse(text)
44+
return parser().parse(text)
4545

4646

4747
def transform(ast: Tree, with_meta=False) -> dict:
@@ -50,18 +50,11 @@ def transform(ast: Tree, with_meta=False) -> dict:
5050
:param with_meta: If set to true then adds `__start_line__` and `__end_line__`
5151
parameters to the output dict. Default to false.
5252
"""
53-
return DictTransformer(with_meta=with_meta).transform(ast)
54-
55-
56-
def reverse_transform(hcl2_dict: dict) -> Tree:
57-
"""Convert a dictionary to an HCL2 AST.
58-
:param hcl2_dict: a dictionary produced by `load` or `transform`
59-
"""
60-
return HCLReverseTransformer().transform(hcl2_dict)
53+
return RuleTransformer().transform(ast)
6154

6255

6356
def writes(ast: Tree) -> str:
6457
"""Convert an HCL2 syntax tree to a string.
6558
:param ast: HCL2 syntax tree, output from `parse` or `parses`
6659
"""
67-
return HCLReconstructor(reconstruction_parser()).reconstruct(ast)
60+
return HCLReconstructor().reconstruct(ast)
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,35 @@
88

99
from hcl2 import parses
1010
from hcl2.const import IS_BLOCK
11-
from hcl2.rule_transformer.rules.abstract import LarkElement, LarkRule
12-
from hcl2.rule_transformer.rules.base import (
11+
from hcl2.rules.abstract import LarkElement, LarkRule
12+
from hcl2.rules.base import (
1313
BlockRule,
1414
AttributeRule,
1515
BodyRule,
1616
StartRule,
1717
)
18-
from hcl2.rule_transformer.rules.containers import (
18+
from hcl2.rules.containers import (
1919
TupleRule,
2020
ObjectRule,
2121
ObjectElemRule,
2222
ObjectElemKeyExpressionRule,
2323
ObjectElemKeyDotAccessor,
2424
ObjectElemKeyRule,
2525
)
26-
from hcl2.rule_transformer.rules.expressions import ExprTermRule
27-
from hcl2.rule_transformer.rules.literal_rules import (
26+
from hcl2.rules.expressions import ExprTermRule
27+
from hcl2.rules.literal_rules import (
2828
IdentifierRule,
2929
IntLitRule,
3030
FloatLitRule,
3131
)
32-
from hcl2.rule_transformer.rules.strings import (
32+
from hcl2.rules.strings import (
3333
StringRule,
3434
InterpolationRule,
3535
StringPartRule,
3636
HeredocTemplateRule,
3737
HeredocTrimTemplateRule,
3838
)
39-
from hcl2.rule_transformer.rules.tokens import (
39+
from hcl2.rules.tokens import (
4040
NAME,
4141
EQ,
4242
DBLQUOTE,
@@ -55,9 +55,9 @@
5555
HEREDOC_TEMPLATE,
5656
COLON,
5757
)
58-
from hcl2.rule_transformer.rules.whitespace import NewLineOrCommentRule
59-
from hcl2.rule_transformer.transformer import RuleTransformer
60-
from hcl2.rule_transformer.utils import HEREDOC_TRIM_PATTERN, HEREDOC_PATTERN
58+
from hcl2.rules.whitespace import NewLineOrCommentRule
59+
from hcl2.transformer import RuleTransformer
60+
from hcl2.utils import HEREDOC_TRIM_PATTERN, HEREDOC_PATTERN
6161

6262

6363
@dataclass

0 commit comments

Comments
 (0)