skip to navigation
skip to content

confix 0.2.1

Language agnostic configuration parser

Package Documentation

Confix

About

Confix is a language-agnostic configuration parser for Python. It lets you define the default configuration of an app as a standard Python class, then overwrite its attributes from a static configuration file (be it YAML, JSON, INI or TOML) and / or via environment variables. In doing so it validates the overridden settings by:

  • making sure they are of the same type
  • (optional) marking them as mandatory (useful for passwords)
  • (optional) validating them via a callable

Example:

python file:

# main.py
from confix import register, parse

@register()
class config:
    username = 'ftp'
    password = None

parse('config.yaml')
print(config.username)
print(config.password)

config file:

# config.yml
password: secret

shell:

$ python main.py
ftp
secret

For more examples see docs.

Main features

  • supports YAML, **JSON, INI and TOML serialization formats.
  • can be easily extended to support other formats.
  • support for Python 3
  • small code base
  • 100% test coverage
  • allows you to define ‘schemas’ in order to validate fields and mark them as required:
# ftp.py
from confix import register, schema

@register()
class config:
    port = schema(default=21, validator=lambda x: isinstance(x, int))
    password = schema(required=True)

Status

Code is solid and fully tested (100% coverage). Its API may change (break) between major versions though.

 
File Type Py Version Uploaded on Size
confix-0.2.1.tar.gz (md5) Source 2015-07-28 41KB