Skip to main content

Language agnostic configuration parser

Project description

Downloads this month Linux tests (Travis) Windows tests (Appveyor) Test coverage (coverall.io) Latest version License

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:

config file:

# config.yml
password: secret

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)

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.

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

confix-0.2.2.tar.gz (44.8 kB view details)

Uploaded Source

File details

Details for the file confix-0.2.2.tar.gz.

File metadata

  • Download URL: confix-0.2.2.tar.gz
  • Upload date:
  • Size: 44.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for confix-0.2.2.tar.gz
Algorithm Hash digest
SHA256 e993af189ed64898c152c1444c129d1f4056d6e5cec3dbc9675574fc1da2c92e
MD5 34986dbacc8b57af42447696646ac12a
BLAKE2b-256 d540d972a8d9dc02ff4ac2cad4bbbd7936a2344a22aae0d820515c72e34c3e6c

See more details on using hashes here.

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