Skip to main content

A library that allows to easily load configuration settings.

Project description

Build Status Coverage Documentation Status

Cfg-Loader

Cfg-Loader is a library that allows to easily load configuration settings. It uses marshmallow to deserialize input data into a target format configuration data.

Main features

Requirements

Python>=3.6

A simple example

>>> from cfg_loader import ConfigSchema, BaseConfigLoader
>>> from marshmallow import fields

# Declare your configuration schema
>>> class MyConfigSchema(ConfigSchema):
...     setting1 = fields.Str()
...     setting2 = fields.Int(required=True)
...     setting3 = fields.Float(missing=13.2)

# Declare mapping to substitute environment variable
>>> substitution_mapping = {'FILE_PATH': 'file'}

# Initialize config loader
>>> my_config_loader = BaseConfigLoader(MyConfigSchema, substitution_mapping=substitution_mapping)

# Load configuration
>>> config = my_config_loader.load({'setting1': '/home/folder/${FILE_PATH?:file path required}', 'setting2': '4'})
>>> config == {'setting1': '/home/folder/file', 'setting2': 4, 'setting3': 13.2}
True

# Invalid input data
>>> my_config_loader.load({'setting1': '/home/folder/${FILE_PATH?:file path required}', 'setting3': 13.4})
Traceback (most recent call last):
...
cfg_loader.exceptions.ValidationError: {'setting2': ['Missing data for required field.']}

>>> my_config_loader.load({'setting2': 12, 'setting3': 'string'})
Traceback (most recent call last):
...
cfg_loader.exceptions.ValidationError: {'setting3': ['Not a valid number.']}

# Variable substitution invalid
>>> my_config_loader.load({'setting2': '${UNSET_VARIABLE?Variable "UNSET_VARIABLE" required}'})
Traceback (most recent call last):
...
cfg_loader.exceptions.UnsetRequiredSubstitution: Variable "UNSET_VARIABLE" required

Documentation

Full documentation is available at https://cfg-loader.readthedocs.io/en/stable/.

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

theatro-cfg-loader-0.3.1.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

theatro_cfg_loader-0.3.1-py2.py3-none-any.whl (16.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file theatro-cfg-loader-0.3.1.tar.gz.

File metadata

  • Download URL: theatro-cfg-loader-0.3.1.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

File hashes

Hashes for theatro-cfg-loader-0.3.1.tar.gz
Algorithm Hash digest
SHA256 49bdd77499b601339a35fb2c4dba683f8ece322ab3ca3f09eb6d240411dc3d51
MD5 d1b4c600bd18bef85359186ca101abb8
BLAKE2b-256 d36f5779c3fcf043c99d4c9bbbcf4a46dfe5e69417db3989fcd1dd79913be071

See more details on using hashes here.

File details

Details for the file theatro_cfg_loader-0.3.1-py2.py3-none-any.whl.

File metadata

  • Download URL: theatro_cfg_loader-0.3.1-py2.py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.1

File hashes

Hashes for theatro_cfg_loader-0.3.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ea7970c91c1a770d0566c3d23fecb5723f5ac3420d8ebfc3d9f6e935e7ddea6f
MD5 ac19cacd7d73d1b3112de0f6c273a004
BLAKE2b-256 f046b7a0280ab85fbb06f5e2981d55cf47197ce6d49760b88ff2ebc406d6fbfa

See more details on using hashes here.

Supported by

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