HCL configuration parser for python
Project description
pyhcl
=====
[![Build Status](https://travis-ci.org/virtuald/pyhcl.svg)](https://travis-ci.org/virtuald/pyhcl)
Implements a parser for [HCL (HashiCorp Configuration Language)](https://github.com/hashicorp/hcl)
in Python. This implementation aims to be compatible with the original
golang version of the parser.
The grammar and many of the tests/fixtures were copied/ported from the golang
parser into pyhcl.
Installation
============
pip install pyhcl
Usage
=====
This module is intended to be used in mostly the same way that one would use
the json module in python, and load/loads/dumps are implemented.
import hcl
with open('file.hcl', r) as fp:
obj = hcl.load(fp)
Currently the dumps function outputs JSON, and not HCL.
Syntax
======
* Single line comments start with `#` or `//`
* Multi-line comments are wrapped in `/*` and `*/`
* Values are assigned with the syntax `key = value` (whitespace doesn't
matter). The value can be any primitive: a string, number, boolean,
object, or list.
* Strings are double-quoted and can contain any UTF-8 characters.
Example: `"Hello, World"`
* Numbers are assumed to be base 10. If you prefix a number with 0x,
it is treated as a hexadecimal. If it is prefixed with 0, it is
treated as an octal. Numbers can be in scientific notation: "1e10".
* Boolean values: `true`, `false`, `on`, `off`, `yes`, `no`.
* Arrays can be made by wrapping it in `[]`. Example:
`["foo", "bar", 42]`. Arrays can contain primitives
and other arrays, but cannot contain objects. Objects must
use the block syntax shown below.
Objects and nested objects are created using the structure shown below:
```
variable "ami" {
description = "the AMI to use"
}
```
Testing
=======
To run the tests:
cd tests
py.test
Authors
=======
Dustin Spicuzza (dustin@virtualroadside.com)
Note: This project is not associated with Hashicorp
=====
[![Build Status](https://travis-ci.org/virtuald/pyhcl.svg)](https://travis-ci.org/virtuald/pyhcl)
Implements a parser for [HCL (HashiCorp Configuration Language)](https://github.com/hashicorp/hcl)
in Python. This implementation aims to be compatible with the original
golang version of the parser.
The grammar and many of the tests/fixtures were copied/ported from the golang
parser into pyhcl.
Installation
============
pip install pyhcl
Usage
=====
This module is intended to be used in mostly the same way that one would use
the json module in python, and load/loads/dumps are implemented.
import hcl
with open('file.hcl', r) as fp:
obj = hcl.load(fp)
Currently the dumps function outputs JSON, and not HCL.
Syntax
======
* Single line comments start with `#` or `//`
* Multi-line comments are wrapped in `/*` and `*/`
* Values are assigned with the syntax `key = value` (whitespace doesn't
matter). The value can be any primitive: a string, number, boolean,
object, or list.
* Strings are double-quoted and can contain any UTF-8 characters.
Example: `"Hello, World"`
* Numbers are assumed to be base 10. If you prefix a number with 0x,
it is treated as a hexadecimal. If it is prefixed with 0, it is
treated as an octal. Numbers can be in scientific notation: "1e10".
* Boolean values: `true`, `false`, `on`, `off`, `yes`, `no`.
* Arrays can be made by wrapping it in `[]`. Example:
`["foo", "bar", 42]`. Arrays can contain primitives
and other arrays, but cannot contain objects. Objects must
use the block syntax shown below.
Objects and nested objects are created using the structure shown below:
```
variable "ami" {
description = "the AMI to use"
}
```
Testing
=======
To run the tests:
cd tests
py.test
Authors
=======
Dustin Spicuzza (dustin@virtualroadside.com)
Note: This project is not associated with Hashicorp
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
pyhcl-0.1.1.tar.gz
(15.4 kB
view hashes)