Skip to content

rmca/confix

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Download this month

Latest version

License

Travis

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.

About

A language-agnostic configuration parser for Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 94.6%
  • Makefile 5.4%