This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Language agnostic configuration parser

Project Description

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.

Release History

Release History

This version
History Node

0.2.1

History Node

0.2.0

History Node

0.1.0

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
confix-0.2.1.tar.gz (42.4 kB) Copy SHA256 Checksum SHA256 Source Jul 28, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting