YAML parser
Project description
YAML access on chained attribute names.
Install
$ pip install yachain
Suppose we have:
--- # config network: name: developers gitserver: ip: 192.168.178.101 netmask: 255.255.255.0 gateway: 192.168.178.1 packages: - yum - gcc
With yachain we can access this as:
>>> import yachain >>> c = yachain.Config().load("netw.cfg") >>> print(c["network::gitserver::gateway"]) 192.168.178.1 >>> print(c["network::gitserver::packages"]) ['yum', 'gcc']
References to files / paths independent from environment
References to files and paths can be used relative and absolute. In case an attribute ends on path or file then the path can be prefixed automatically when operation from a virtual environment is detected. The works by default upper and lower case and can be overriden.
Using the prefix makes it possible to use the same config in different environments.
import yachain import yaml import sys import os # yaml config: yc = """ --- app: logfile: var/log/app.log textrules: var/app.app.txt database_path: var/app/db database_file: /var/app/db/db.txt database_name: db.txt """ PREFIX = "/" if not hasattr(sys, 'real_prefix') else sys.prefix # CONFIG_FILE = os.path.join(PREFIX, "etc/app/app.cfg") config = yachain.Config(prefix=PREFIX, configdata=yaml.load(yc)) for A in ["logfile", "textrules", "database_path", "database_file", "database_name"]: k = "app::{}".format(A) print config[k]
When run from a virtual environment, this will give us:
/home/user/venv/var/log/app.log var/app.app.txt /home/user/venv/var/app/db /var/app/db/db.txt db.txt
So, as expected, the logfile and database_path got the PREFIX.
When run from a non-virtual environment, this will give us:
/var/log/app.log var/app.app.txt /var/app/db /var/app/db/db.txt db.txt
So, as expected, prefixed with “/”.
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size yachain-0.1.4-py2.py3-none-any.whl (6.4 kB) | File type Wheel | Python version py2.py3 | Upload date | Hashes View |
Filename, size yachain-0.1.4.tar.gz (5.2 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for yachain-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a3688fb08697fd7f8ff69892d37e8df225e4d85d0ba8f66db37ef1fa090be24 |
|
MD5 | f4efbb464c1493217a13053427e875a4 |
|
BLAKE2-256 | 9d89572e2b36353afb052caf2887667c084950bc3fea2be65e37d080a39ab493 |