跳转到主要内容

通过AquaSecurity defsec扩展的Python HCL/Terraform解析器

项目描述

什么是

使用defsec解析和评估terraform的Python扩展。

虽然terraform使用HCL作为其配置格式,但它需要多种形式的变量插值、函数和表达式评估,这超出了典型HCL解析器的使用。为了与众多真实世界的terraform用法保持兼容,此库使用terraform的规范实现,并结合defsec的插值和评估,为解析terraform模块提供高级接口。

安装

pip install tfparse

我们目前为MacOS (x86_64, arm64)、Linux (x86_64, aarch64)和Windows提供二进制文件。

注意:在Windows上,我们目前不释放解析结果分配的内存。

使用

一个已执行terraform init以解析模块引用的terraform模块根目录。

from tfparse import load_from_path
parsed = load_from_path('path_to_terraform_root')
print(parsed.keys())

开发

  • 需要Go >= 1.18
  • 需要Python >= 3.10

从源安装

安装将构建模块并将本地tfparse副本安装到当前Python环境中。

> pip install -e .
> python
>>> from tfparse import load_from_path
>>> parsed = load_from_path('<path_to_terraform>')
>>> print(parsed.keys())

从源构建

构建将生成一个轮和源工件以供分发或上传到软件包仓库。

python setup.py bdist_wheel
ls -l dist/

运行测试

此项目使用pytest

pytest

测试跨编译CI构建

您可以通过运行以下命令来测试我们的跨编译CI/CD构建:

CIBW_BUILD=cp310* cibuildwheel --platform macos --archs x86_64

这将尝试在python3.10上构建一个英特尔轮

致谢

aquasecurity/defsec - 用于解析和评估terraform hcl的golang模块

Scalr/pygohcl - 通过golang扩展为terraform hcl提供python绑定的python库

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

此版本未提供源分发文件。请参阅生成分发存档的教程

构建分发

tfparse-0.6.11-cp312-cp312-win_amd64.whl (8.8 MB 查看哈希值)

上传 CPython 3.12 Windows x86-64

tfparse-0.6.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.3 MB 查看哈希值)

上传 CPython 3.12 manylinux: glibc 2.17+ ARM64

tfparse-0.6.11-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB 查看哈希值)

上传 CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

tfparse-0.6.11-cp312-cp312-macosx_11_0_arm64.whl (8.1 MB 查看哈希值)

上传 CPython 3.12 macOS 11.0+ ARM64

tfparse-0.6.11-cp312-cp312-macosx_10_9_x86_64.whl (8.6 MB 查看哈希值)

上传 CPython 3.12 macOS 10.9+ x86-64

tfparse-0.6.11-cp311-cp311-win_amd64.whl (8.8 MB 查看哈希值)

上传 CPython 3.11 Windows x86-64

tfparse-0.6.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.3 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

tfparse-0.6.11-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

tfparse-0.6.11-cp311-cp311-macosx_11_0_arm64.whl (8.1 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

tfparse-0.6.11-cp311-cp311-macosx_10_9_x86_64.whl (8.6 MB 查看哈希值)

上传时间: CPython 3.11 macOS 10.9+ x86-64

tfparse-0.6.11-cp310-cp310-win_amd64.whl (8.8 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

tfparse-0.6.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (8.3 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ARM64

tfparse-0.6.11-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.1 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

tfparse-0.6.11-cp310-cp310-macosx_11_0_arm64.whl (8.1 MB 查看哈希值)

上传时间: CPython 3.10 macOS 11.0+ ARM64

tfparse-0.6.11-cp310-cp310-macosx_10_9_x86_64.whl (8.6 MB 查看哈希值)

上传时间: CPython 3.10 macOS 10.9+ x86-64

由以下机构支持