Skip to main content

No project description provided

Project description

Schemed YAML Config

Schemed YAML Config is a library to read and validate YAML based configuration files against JSON Schema specifications.

Branches

The project is transitioning from v0.x to v1.x and master branch is used to develop the latter.
There's significant changes between v0.x and v1.x. And, while new user are encouraged to look into v1.x, that might be troublesome for those who have developed code around v0.x

Install

Schemed-yaml-config can be installed via PIP

# pip install schemed-yaml-config

Under the hood

Schemed YAML Config works by converting YAML files into a dictionarie by mean of the well known PyYAML framework and then by applying JSON Schema specifications before of returning it to rest of the script.
The beauty of this approach is it combines the human friendly serialization of YAML with the power of JSON Schema.

A few tricks has been added to make the library even more human friendly. For instance when the a configuration file is missing and a default is created, order and comments of the keys from the schema are borrowed to the YAML file.

Syntax

Python 3.7.4 (default, Aug 21 2019, 16:01:23)
[GCC 9.2.1 20190813] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> from schemed_yaml_config import get_config
>>> config = get_config('config.yml', 'schema.yml')
>>> print(config)
{'listen': {'host': 'localhost', 'port': 8080}, 'tmpdir': '/tmp/'}
>>>

TOML

Despite its name Schemed YAML Config also supports TOML. TOML schemas are not supported yet!

Project details


Download files

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

Source Distribution

schemed-yaml-config-1.0.5.linux-x86_64.tar.gz (14.4 kB view hashes)

Uploaded Source

Built Distributions

schemed_yaml_config-1.0.5-py3.9.egg (19.9 kB view hashes)

Uploaded Source

schemed_yaml_config-1.0.5-py3-none-any.whl (12.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page