A simple library for loading configurations easily in Python, inspired by flask.config.
Install EasyConfig with pip:
$ pip install python-easyconfig
Install development version from GitHub:
$ git clone https://github.com/RussellLuo/easyconfig.git
$ cd easyconfig
$ python setup.py install
# from a dictionary
from easyconfig import Config
config = Config({'DEBUG': True})
assert config.DEBUG == True
# from an object
from easyconfig import Config
from yourapplication import default_config
config = Config(default_config)
assert config.DEBUG == True from easyconfig import Config
config = Config()
config.load({'PORT': 5000}) from easyconfig import Config
from yourapplication import default_config
config = Config()
config.load(default_config) import os
os.environ.setdefault('SECRET_KEY', '123***456')
from easyconfig import Config
config = Config(datasrc=os.environ)
assert config.SECRET_KEY == '123***456' from easyconfig import Config, str_object
config = Config()
config.load(str_object('yourapplication.default_config'))
assert config.SECRET_KEY == '123***456' import os
os.environ.setdefault('EASY_CONFIG', 'yourapplication.default_config')
from easyconfig import Config, str_object
config = Config()
config.load(str_object('EASY_CONFIG', is_envvar=True))
assert config.SECRET_KEY == '123***456' from easyconfig import Config, json_mapping
config = Config()
config.load(json_mapping('/data/configs/default_config.json'))
assert config.SECRET_KEY == '123***456' import os
os.environ.setdefault('EASY_CONFIG', '/data/configs/default_config.json')
from easyconfig import Config, json_mapping
config = Config()
config.load(json_mapping('EASY_CONFIG', is_envvar=True))
assert config.SECRET_KEY == '123***456' from easyconfig import Config, yaml_mapping
config = Config()
config.load(yaml_mapping('/data/configs/default_config.yml'))
assert config.SECRET_KEY == '123***456' import os
os.environ.setdefault('EASY_CONFIG', '/data/configs/default_config.yml')
from easyconfig import Config, yaml_mapping
config = Config()
config.load(yaml_mapping('EASY_CONFIG', is_envvar=True))
assert config.SECRET_KEY == '123***456'