Skip to main content
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

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 details)

Uploaded Source

File details

Details for the file pyhcl-0.1.1.tar.gz.

File metadata

  • Download URL: pyhcl-0.1.1.tar.gz
  • Upload date:
  • Size: 15.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pyhcl-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7e56ccab638d23ae9f3788ce3c2dcb75a882117a0092c429e59d4b1ae095b0e0
MD5 379f17dc8135fa7f227e166c1bd410d7
BLAKE2b-256 203b19c10e46c632fc251eb60462efe40c0c2fd68a203effe9e4e2b2884b7f31

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 Sentry Error logging StatusPage Status page