Skip to main content

YAML parser that environment variable is expanded

Project description

TravisCI Status CircleCI Status drone.io Status Requirements Status

Install

$ pip install syaml

How to use it

A syaml is YAML parser that environment variable is expanded. It can use the path, name, here and environment variable in YAML file. It described in syntax of mako template. See http://www.makotemplates.org/ .

A path is absolute path to YAML file, and name is file name of YAML file, and here is absolute directory path the YAML file stored.

For example.

/path/to/test.yaml:

- ${here}
- ${name}
- ${path}

The above file is equivalent to the following a file.

- /path/to/
- test.yaml
- /path/to/test.yaml

And, it can use environment variable in YAML file too.

/path/to/test.yaml:

- email: ${EMAIL}

If test@example.com the environment variable EMAIL is set, the above file is equivalent to the following a file.

- email: test@example.com

Load file and Load string

Example file /path/to/syaml/example.yml:

general:
  - ${here}
  - ${name}
  - ${path}

Load file object:

>>> import syaml
>>> with open('example.yml', 'rb') as fp:
...     syaml.load(fp)
...
{'general': ['/path/to/syaml', 'example.yml', '/path/to/syaml/example.yml']}

Load byte string object:

>>> syaml.loads(b'general:\n  - ${here}\n  - ${name}\n  - ${path}\n')
{'general': ['', '', '']}

Load string object:

>>> syaml.loads('general:\n  - ${here}\n  - ${name}\n  - ${path}\n')
{'general': ['', '', '']}
>>>

name and path and here will replace to empty string If you passed a string to syaml.loads function. They are for a file object. A string like object don’t have file path.

Use command line tool

syaml render

It render the SAYML file.

example.yml:

general:
  - ${here}
  - ${name}
  - ${path}

Execute syaml render command:

$ syaml render example.yml
general:
- /path/to/syaml
- example.yml
- /path/to/syaml/example.yml

Execute syaml render command json style:

$ syaml render example.yml --json
{"general": ["/path/to/syaml", "example.yml", "/path/to/syaml/example.yml"]}

Execute syaml render command pre process only:

$ syaml render example.yml --pre
general:
  - /path/to/syaml
  - example.yml
  - /path/to/syaml/example.yml

Project details


Release history Release notifications

This version
History Node

1.2

History Node

1.2.dev0

History Node

1.1

History Node

1.0.post1

History Node

1.0

History Node

1.0rc2

History Node

0.1.dev0

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
syaml-1.2-py3-none-any.whl (9.0 kB) Copy SHA256 hash SHA256 Wheel py3 Jan 22, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page