Skip to main content

convert python dictionary to tfvars(hcl lang) formatted string

Project description

Pytfvars

PyPI PyPI - Python Version GitHub GitHub Workflow Status (branch)

PyPI - Downloads

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

pytfvars

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytfvars-1.0.2.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

pytfvars-1.0.2-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

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

Hashes for pytfvars-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b854d16ad49222e9052fbc8bce9a0490d37b86f1c1685c8dd920944d04ccbb2e
MD5 9b6757918c375fc39b9f7bb38f3fe598
BLAKE2b-256 137746ad7ff5a9a9b2024e3b37641094bba7de6af039591ab074185697ad2300

See more details on using hashes here.

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

Hashes for pytfvars-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fd77934edb145aeed6487570560baf3bf837db16f9ead8845f04e82d1b8b7879
MD5 fd2c5f0410728a92a452e23b33dd49b3
BLAKE2b-256 4054721cdc30087e1fd8f081579a4acf54ebd28aab940aba3b210179c56fb01a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page