convert python dictionary to tfvars(hcl lang) formatted string
Project description
Pytfvars
Convert python dictionary object to hcl syntax string.
This is useful for manipulate with tfvars values with python.
Use python-hcl2
to load tfvars file and do something in your code then use this package to convert dictionary object to generate hcl syntax string.
You can do write result string to tfvars file to trigger terraform plan.
Document
Install
python3 -m pip install pytfvars -U
OR
pip3 install pytfvars
Usage
import hcl2
from pytfvars import tfvars
# use hcl2 to load tfvars file(or string)
def load(file_path: str):
with open(file_path, 'r') as fp:
dict_tf_values = hcl2.load(fp)
return dict_tf_values
# convert dictionary to tfvars string
def convert(dict_tf_values: dict):
return tfvars.convert(dict_tf_values)
# do some business logic
def do_something(dict_tf_values: dict):
del dict_tf_values["key_to_delete"]
dict_tf_values["add_something"] = "do_something"
return dict_tf_values
if __name__ == '__main__':
file_path = 'YOUR_FILE_PATH/sample.tfvars'
# read file
contents = load(file_path)
# business logic
contents_mod = do_something(contents)
# convert
contents_mod_str = convert(contents_mod)
# write to tfvars file
w_file_path = 'YOUR_FILE_PATH_TO/result.tfvars'
with open(w_file_path, 'w') as fp:
fp.write(contents_mod_str)
Core Concept
I wanted to make a web page which get input form and generate terraform resource with the values.
I found some packages which load values from hcl file but none of this which do write hcl(tfvars) with python.
Release
v1.0.0
initial release
v1.0.1
fix README
v1.0.2
add indent to result string
Contribute
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file pytfvars-1.0.2.tar.gz
.
File metadata
- Download URL: pytfvars-1.0.2.tar.gz
- Upload date:
- Size: 4.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b854d16ad49222e9052fbc8bce9a0490d37b86f1c1685c8dd920944d04ccbb2e |
|
MD5 | 9b6757918c375fc39b9f7bb38f3fe598 |
|
BLAKE2b-256 | 137746ad7ff5a9a9b2024e3b37641094bba7de6af039591ab074185697ad2300 |
File details
Details for the file pytfvars-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: pytfvars-1.0.2-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fd77934edb145aeed6487570560baf3bf837db16f9ead8845f04e82d1b8b7879 |
|
MD5 | fd2c5f0410728a92a452e23b33dd49b3 |
|
BLAKE2b-256 | 4054721cdc30087e1fd8f081579a4acf54ebd28aab940aba3b210179c56fb01a |