Python-EasyConfig

A simple library for loading configurations easily in Python, inspired by `flask.config`.


Keywords
Configuration
License
MIT
Install
pip install Python-EasyConfig==0.1.2

Documentation

EasyConfig

A simple library for loading configurations easily in Python, inspired by flask.config.

Installation

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

Getting Started

1. load default configurations from a dictionary (or an object)

    # 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

2. load/update configurations from a dictionary

    from easyconfig import Config
    config = Config()
    config.load({'PORT': 5000})

3. load/update configurations from an object

    from easyconfig import Config
    from yourapplication import default_config
    config = Config()
    config.load(default_config)

4. load configurations from environment variables

    import os
    os.environ.setdefault('SECRET_KEY', '123***456')

    from easyconfig import Config
    config = Config(datasrc=os.environ)
    assert config.SECRET_KEY == '123***456'

5. load/update configurations from a string pointing to an object

    from easyconfig import Config, str_object
    config = Config()
    config.load(str_object('yourapplication.default_config'))
    assert config.SECRET_KEY == '123***456'

6. load/update configurations from an environment variable pointing to an object

    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'

7. load/update configurations from a JSON file

    from easyconfig import Config, json_mapping
    config = Config()
    config.load(json_mapping('/data/configs/default_config.json'))
    assert config.SECRET_KEY == '123***456'

8. load/update configurations from an environment variable pointing to a JSON file

    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'

9. load/update configurations from a YAML file

    from easyconfig import Config, yaml_mapping
    config = Config()
    config.load(yaml_mapping('/data/configs/default_config.yml'))
    assert config.SECRET_KEY == '123***456'

10. load/update configurations from an environment variable pointing to a YAML file

    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'