python的hcl配置解析器

pyhcl的Python项目详细描述


pyhcl

Build Status

在python中实现HCL (HashiCorp Configuration Language)的解析器。这个 实现的目标是与原始的golang版本兼容 分析器。

语法和许多测试/设备都是从 将golang解析器转换为pyhcl。所有版本都经过了多种测试 python 2.7以后的python版本。

安装

pip install pyhcl

用法

本模块的使用方法与 在python中使用json模块,实现了load/loads/dumps。

import hcl

with open('file.hcl', 'r') as fp:
    obj = hcl.load(fp)

目前dumps函数输出的是json,而不是hcl。

将hcl转换为json

pyhcl附带了一个脚本,您可以使用它轻松地将hcl转换为json, 类似于python附带的json.tool:

hcltool INFILE [OUTFILE]

结构验证

与json类似,解析hcl的输出是一个python字典,其中 没有定义的结构。HCL的Golang库实现了对 根据定义的对象解析hcl,但是这个实现 当前不支持此类构造。

相反,我建议您使用设计用于验证json的工具,例如 作为schematics库。

语法

  • 单行注释以#//
  • 开头
  • 多行注释包装在/**/
  • 值是用语法key = value(空白)指定的 没关系)。值可以是任何原语:字符串、数字, 布尔值、对象或列表。
  • 字符串是双引号,可以包含任何utf-8字符。 示例:"Hello, World"
  • 数字假定为基数10。如果你在一个数字前面加上x,它 被视为十六进制。如果前缀为0,则处理 作为八进制。数字可以用科学符号表示:“1e10”。
  • 布尔值:truefalse
  • 数组可以用[]包装。例子: ["foo", "bar", 42]。数组可以包含原语和其他 数组,但不能包含对象。对象必须使用块语法 如下所示。

使用如下所示的结构创建对象和嵌套对象:

variable "ami" {
    description = "the AMI to use"
}

测试

运行测试:

pip install -r testing-requirements.txt
tests/run_tests.sh

作者

达斯汀Spicuzza(dustin@virtualroadside.com

注意:此项目与hashicorp无关

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
当使用JWT令牌时,JavaSpring引导身份验证返回null   java不知道为什么要收集。sort()在以下程序中不工作?   java如何向构造函数和arraylist添加jtextfield值?   python Pycrypto AES GCM加密和Java解密   java以编程方式设置自定义xml布局元素   java需要自动化当前的执行流   javadoc Java JMC“MediaProvider”神秘类   java Tiles2多重继承   java我想用默认属性覆盖字段输入中的值   java在安卓中添加带有图标和名称的mikepenz materialdrawer布局   如何使用Java调整图像大小?   google app engine java appengine使用斜杠自动重定向到目录   java检测多条折弯线是否相交   java如何使用mstor读取mbox电子邮件   多线程Java每月定时器