Josef-Friedrich / conf2levels

A configuration reader which reads values stored in two key levels. The first key level is named “section” and the second level “key”.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This package on the Python Package Index Tests

A configuration reader which reads values stored in two key levels. The first key level is named section and the second level key.

argparse arguments (argparse): (You have to specify a mapping)

mapping = {
    'section.key': 'args_attribute'
}

A python dictionary (dictonary):

{
    'section':  {
        'key': 'value'
    }
}

Environment variables (environ):

export prefix__section__key=value

INI file (ini):

[section]
key = value
CONF_DEFAULTS = {
    'email': {
        'subject_prefix': 'command_watcher',
    },
    'nsca': {
        'port': 5667,
    },
}

CONFIG_READER_SPEC: Spec = {
    'email': {
        'from_addr': {
            'description': 'The email address of the sender.',
        },
        'to_addr': {
            'description': 'The email address of the recipient.',
            'not_empty': True,
        },
        'to_addr_critical': {
            'description': 'The email address of the recipient to send '
                          'critical messages to.',
            'default': None,
        },
        'smtp_login': {
            'description': 'The SMTP login name.',
            'not_empty': True,
        },
        'smtp_password': {
            'description': 'The SMTP password.',
            'not_empty': True,
        },
        'smtp_server': {
            'description': 'The URL of the SMTP server, for example: '
                          '`smtp.example.com:587`.',
            'not_empty': True,
        },
    },
    'icinga': {
        'url': {
            'description': 'The HTTP URL. /v1/actions/process-check-result '
                          'is appended.',
            'not_empty': True,
        },
        'user': {
            'description': 'The user for the HTTP authentification.',
            'not_empty': True,
        },
        'password': {
            'description': 'The password for the HTTP authentification.',
            'not_empty': True,
        },
    },
    'beep': {
        'activated': {
            'description': 'Activate the beep channel to report auditive '
                          'messages.',
            'default': False,
        }
    }
}

config_reader = ConfigReader(
    spec=CONFIG_READER_SPEC,
    ini=config_file,
    dictionary=CONF_DEFAULTS,
)

About

A configuration reader which reads values stored in two key levels. The first key level is named “section” and the second level “key”.

License:MIT License


Languages

Language:Python 98.0%Language:Makefile 2.0%