Skip to main content

Another Python configuration tool

Project description

Cool Config

Simple way to use configuration files with Python configuration model.

Usage

pip install cool_config

Simple usage example:

from unittest.mock import patch

from cool_config import *


class Config(AbstractConfig):
    """
    Configuration model inherits from AbstractConfig, and all configuration sections from Section
    """
    class main(Section):
        a = Integer

    b = Integer


config = Config()  # create global configuration object and import it


# more examples available in test/main.py
if __name__ == '__main__':
    config_data = {
        'main': {
            'a': 5
        },
        'b': 42
    }

    # config.load('config.yml')  # initialize configuration with config.yml in 
    #   you application entry point (before `config` usage)
    config.update_from_dict(config_data)


    print(config)  # {'b': 42, 'main': {'a': 5}}
    print(config.main.a)  # 5
    print(config.b)  # 42

    config_data_b = {
        'main': {
            'a': 55
        },
    }
    config.update_from_dict(config_data_b)
    print(config)  # {'b': 42, 'main': {'a': 55}}

    """
    ENVIRONMENT:
        TEST__main__a = '6'
        TEST__b = '22'
        THE_ANSWER_KEY = '42'
    """
    config.update_from_env('TEST', delimiter='__')
    print(config)  # {'b': '22', 'main': {'a': '6'}}

Project details


Download files

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

Source Distribution

cool_config-0.2.0.tar.gz (4.1 kB view hashes)

Uploaded Source

Built Distribution

cool_config-0.2.0-py3-none-any.whl (5.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page