Skip to content

Commit 707a604

Browse files
MrImpossibruNikolai Shmatenkovludoo
authored
[feature] added support to pass a complex dict (#69)
* [feature] added support to pass a complex dict to the tf_vars parameter * [feature] added some tests * [cleanup] * fix linting Co-authored-by: Nikolai Shmatenkov <kolka@live.com> Co-authored-by: Ludo <ludomagno@google.com>
1 parent 6804937 commit 707a604

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

test/test_args.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,15 @@
4747
({'tf_var_file': 'foo.tfvar'}, ['-var-file=foo.tfvar']),
4848
({'tf_var_file': ['foo.tfvar', 'bar.tfvar']}, [
4949
'-var-file=foo.tfvar', '-var-file=bar.tfvar']),
50+
({'tf_vars': {'text': 'text'}}, ['-var', 'text=text']),
51+
({'tf_vars': {'number': 0}}, ['-var', 'number=0']),
52+
({'tf_vars': {'bool': False}}, ['-var', 'bool=False']),
53+
({'tf_vars': {'dict': {'text': 'text'}}},
54+
['-var', 'dict={"text": "text"}']),
55+
({'tf_vars': {'list': ['item1', 'item2']}},
56+
['-var', 'list=["item1", "item2"]']),
57+
({'tf_vars': {'dict': {'list': ['item1', 'item2']}}},
58+
['-var', 'dict={"list": ["item1", "item2"]}']),
5059
)
5160

5261

tftest.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,10 @@ def parse_args(init_vars=None, tf_vars=None, targets=None, **kw):
146146
if tf_vars:
147147
cmd_args += list(
148148
itertools.chain.from_iterable(
149-
("-var", "{}={}".format(k, v)) for k, v in tf_vars.items()))
149+
("-var",
150+
"{}={}".format(k, json.dumps(v) if isinstance(v, (dict, list)) else v))
151+
for k, v in tf_vars.items()
152+
))
150153
if targets:
151154
cmd_args += [("-target={}".format(t)) for t in targets]
152155
if kw.get('tf_var_file'):

0 commit comments

Comments
 (0)