Welcome to cfglib’s documentation!

Example

class PointConfig(cfglib.SpecValidatedConfig):
    x = cfglib.IntSetting()
    y = cfglib.IntSetting()


class ExampleToolConfig(cfglib.SpecValidatedConfig):
    message = cfglib.StringSetting(default='Hello!')
    config_file = cfglib.StringSetting(default=None)
    points = cfglib.ListSetting(
        subsetting=cfglib.DictSetting(subtype=PointConfig),
    )

cfg = ExampleToolConfig([
    {'points': [{'x': 1, 'y': 2}]},
    EnvConfig(prefix='EXAMPLE_', lowercase=True),
])

print(cfg.message)
# when run with EXAMPLE_MESSAGE=hello will print hello

print(cfg.points)
# will print [<PointConfig {'x': 1, 'y': 2}>]

Description

cfglib

https://img.shields.io/pypi/v/cfglib.svg CI Status Documentation Status https://codecov.io/gh/swarmer/cfglib-py/branch/master/graph/badge.svg

An extensible configuration library

Features

  • Describe config schema and perform validation
  • Numerous utils to compose configs from multiple sources, etc.
  • Read settings from environment

Indices and tables