skip to navigation
skip to content

Not Logged In

confix 0.1.0

Language agnostic configuration parser

Confix

About

A language-agnostic configuration parser for Python. It lets you define the default configuration of an app as a standard Python class, then overwrite only the keys you need from a static config file (be it YAML, JSON, INI or TOML). This is useful in order to avoid storing sensitive data (e.g. passwords) in the source code.

Example:

config file:

# config.yaml
ftp:
    password: secret

python file:

# ftp.py
from confix import register, parse

@register('ftp')
class config:
    host = 'localhost'
    port = 2121
    user = 'ftp'
    password = None         # this will be overridden later

if __name__ == '__main__':
    parse('config.yaml')    # make replacements to "config" class
    print(config.user)      # will print "ftp"
    print(config.password)  # will print "secret"

Additional features

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

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

Status

Still beta, but the base API/functionality will likely remain unmodified.

 
File Type Py Version Uploaded on Size
confix-0.1.0.tar.gz (md5) Source 2014-05-16 7KB
  • Downloads (All Versions):
  • 4 downloads in the last day
  • 24 downloads in the last week
  • 35 downloads in the last month