Skip to main content

Python binding for Terraform.

Project description

Python libterraform

Python binding for Terraform. Bundles Terraform as a shared library so you can run Terraform commands and parse configurations from Python without a separate terraform binary.

Test PyPI Python Downloads

Language: English | 中文

Documentation: https://prodesire.github.io/py-libterraform/

Installation

pip install libterraform

Threading: TerraformCommand can be called from multiple Python threads, but Terraform CLI execution is serialized inside the shared library because Terraform uses process-wide state. Use separate processes if you need truly parallel Terraform operations.

Usage

from libterraform import TerraformCommand, TerraformConfig

# Run Terraform commands
cli = TerraformCommand("path/to/module")
cli.init(check=True)
cli.plan(check=True)

# Parse Terraform configuration
module, diagnostics = TerraformConfig.load_config_dir("path/to/module")

Asyncio applications can use AsyncTerraformCommand to await Terraform operations without blocking the event loop:

from libterraform import AsyncTerraformCommand

cli = AsyncTerraformCommand("path/to/module")
await cli.validate(check=True)

Contributing

Install uv, then:

make install        # Install dependencies and Git hooks
make build          # Build the shared library
make test           # Run tests
make lint           # Run linters
make doc-serve      # Preview documentation site

See the Development Guide for details.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

libterraform-0.14.0-cp314-cp314-manylinux_2_35_x86_64.whl (63.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.35+ x86-64

libterraform-0.14.0-cp314-cp314-macosx_14_0_arm64.whl (33.1 MB view details)

Uploaded CPython 3.14macOS 14.0+ ARM64

libterraform-0.14.0-cp313-cp313-macosx_14_0_arm64.whl (33.1 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

libterraform-0.14.0-cp312-cp312-macosx_14_0_x86_64.whl (35.8 MB view details)

Uploaded CPython 3.12macOS 14.0+ x86-64

libterraform-0.14.0-cp311-cp311-win_amd64.whl (62.3 MB view details)

Uploaded CPython 3.11Windows x86-64

libterraform-0.14.0-cp311-cp311-manylinux_2_35_x86_64.whl (63.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

libterraform-0.14.0-cp310-cp310-win_amd64.whl (62.3 MB view details)

Uploaded CPython 3.10Windows x86-64

libterraform-0.14.0-cp310-cp310-manylinux_2_35_x86_64.whl (63.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.35+ x86-64

libterraform-0.14.0-cp39-cp39-win_amd64.whl (62.3 MB view details)

Uploaded CPython 3.9Windows x86-64

libterraform-0.14.0-cp39-cp39-manylinux_2_35_x86_64.whl (63.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.35+ x86-64

libterraform-0.14.0-cp39-cp39-macosx_14_0_x86_64.whl (35.8 MB view details)

Uploaded CPython 3.9macOS 14.0+ x86-64

libterraform-0.14.0-cp39-cp39-macosx_14_0_arm64.whl (33.1 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

File details

Details for the file libterraform-0.14.0-cp314-cp314-manylinux_2_35_x86_64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp314-cp314-manylinux_2_35_x86_64.whl
  • Upload date:
  • Size: 63.4 MB
  • Tags: CPython 3.14, manylinux: glibc 2.35+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp314-cp314-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 c7a76109f2dc8dbec8f8d7687bdbe58deb1a004c86c5e5b3e1dd9e5b157cd66d
MD5 db1f0d52eb433367b7f72bf1f02c4a1a
BLAKE2b-256 ae249568bde34ff7b01950be135f4d2a5638f1a729d6f533d6239ac00e6029cc

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp314-cp314-macosx_14_0_arm64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp314-cp314-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 33.1 MB
  • Tags: CPython 3.14, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp314-cp314-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 5ee3ad5f9bdd164945a7c5500dd584d4b6ab52155d685bfbe0beeca89e6ae459
MD5 5d36aece3f9b8dc81bc7cdc456bb7c0d
BLAKE2b-256 4cbfe7519d22429cc08f3cf8e9bdc4049eaef5dd81ff55dcf595aaa05f00706e

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp313-cp313-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 33.1 MB
  • Tags: CPython 3.13, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 0db0fc3ff3c928473081fc2a0895a9100bd00f637663f27c4795d12d6dd33d10
MD5 39212e89d2440b1b38c194b316ab8489
BLAKE2b-256 4fa4da43f7b94f044538c5d688d2fcdc22dad3ca0ce1cb918f6659ee26f6b0ba

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp312-cp312-macosx_14_0_x86_64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp312-cp312-macosx_14_0_x86_64.whl
  • Upload date:
  • Size: 35.8 MB
  • Tags: CPython 3.12, macOS 14.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp312-cp312-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 ff47673a01e798e726ab0880d0fc79e3d2164edb372e573091f1ec770657c370
MD5 2861169d1fb4cec2196659c9497f850b
BLAKE2b-256 ab5bd77dbf57b1e62517c7701c4b7b13d0adaff10a60b1d2dc878e47845feb05

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 62.3 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 53471db77f8eff51249b75e2a8380cc202316b4041d27f4124888bf01b5baaa1
MD5 12c784f68f6d5f8c3c3172dfde01b990
BLAKE2b-256 c1dc9309804152217789ac0dc978ec8c12d06d251208157f60dc3e95746b65a4

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp311-cp311-manylinux_2_35_x86_64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp311-cp311-manylinux_2_35_x86_64.whl
  • Upload date:
  • Size: 63.4 MB
  • Tags: CPython 3.11, manylinux: glibc 2.35+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 6b0768be616000e6924284bc0e55e4a0d1aa607e26a89774de6152c157192b1e
MD5 d59c6479a0512fbde11f464c110c181e
BLAKE2b-256 85c1fd6c140b996b34331e220267966880ad9f6c2dea286451ed67fe09508589

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 62.3 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 934ee9cbcb24e3b71c1000fd13fb8bc41acf04bb25fb6b955c3693fbff6f3e20
MD5 296aed4a1cd3e5740f00e5bcd34dd473
BLAKE2b-256 1e34e1c2e177ad31059c72b8130aa5f2c1a1269115d3e0308a905e0e1e1fdc2e

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp310-cp310-manylinux_2_35_x86_64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp310-cp310-manylinux_2_35_x86_64.whl
  • Upload date:
  • Size: 63.4 MB
  • Tags: CPython 3.10, manylinux: glibc 2.35+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp310-cp310-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 71f8a525b4b6d71f045aadaed28cddedb2a6d6a600d90b21b228b07bc195fc87
MD5 dfcfc35d2b60b36cadae2e46d64266c4
BLAKE2b-256 a71fabb36d63805c0a88ae8bed2a9e99672b814df3d64c4b9758a2e30f31c53a

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 62.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 eb19e209cc6d6248935cfcef18ebdfe2c2b2a20fa9a6957d5dceb26635d20d22
MD5 8b71ee0a20288f7f14ba162b3b28b885
BLAKE2b-256 15763b7ea6d58db3ccfef75ef1f5eeb13b1a8c4ad79f434aad5687b3639e0d42

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp39-cp39-manylinux_2_35_x86_64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp39-cp39-manylinux_2_35_x86_64.whl
  • Upload date:
  • Size: 63.4 MB
  • Tags: CPython 3.9, manylinux: glibc 2.35+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp39-cp39-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 5c634f8dd689af2fefbfaef0d401588f10a1b9b15aa731b33059cb49ead3cb48
MD5 d2a265af22a7309e9a2dd6b82614745d
BLAKE2b-256 6636934d10aa6542719d00641b93d98b28e1adaabf2bd0a7cce094c5ac5c8ba8

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp39-cp39-macosx_14_0_x86_64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp39-cp39-macosx_14_0_x86_64.whl
  • Upload date:
  • Size: 35.8 MB
  • Tags: CPython 3.9, macOS 14.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp39-cp39-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 b8b72587ddb79b383a528a183423ba7d8a41aa957c94b5bbc1a9e5665e74f8d4
MD5 22fae1e9e1797eaef08141a580d5b8c3
BLAKE2b-256 bfc4d9b15718d73f3334f06c4d12da1ff4eaf539d540d7d96f6d83392fd725f0

See more details on using hashes here.

File details

Details for the file libterraform-0.14.0-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

  • Download URL: libterraform-0.14.0-cp39-cp39-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 33.1 MB
  • Tags: CPython 3.9, macOS 14.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for libterraform-0.14.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9cb24b36c0cb70e330789fe11772d8e506baf6f10b2a4241cf28b7951673fcbe
MD5 f8d273b59910f99bbdc91416ef506825
BLAKE2b-256 9b66da9d5323320aceb145ccec39b0b0f348484d2150102780fcf16827f893e6

See more details on using hashes here.

Supported by

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