The configuration is provided by Config object which is a singleton. It means that you can access Config from any place of your code, without need of explicit initialisation.

import asab

# Initialize application object and hence the configuration
app = asab.Application()

# Access configuration values anywhere
my_conf_value = asab.Config['section_name']['key1']

Based on ConfigParser

The Config is inherited from Python Standard Library configparser.ConfigParser class. which implements a basic configuration language which provides a structure similar to what’s found in Microsoft Windows INI files.

class asab.config.ConfigParser[source]

Example of the configuration file:

User = hg

Port = 50022
ForwardX11 = no

And this is how you access configuration values:

>>> asab.Config['']['ForwardX11']

Automatic load of configuration

If a configuration file name is specified, the configuration is automatically loaded from a configuration file during initialiation time of Application. The configuration file name can be specified by one of -c command-line argument (1), ASAB_CONFIG environment variable (2) or config [general] config_file default value (3).

./ -c ./etc/sample.conf

Including other configuration files

You can specify one or more additional configuration files that are loaded and merged from an main configuration file. It is done by [general] include configuration value. Multiple paths are separated by os.pathsep (: on Unix). The path can be specified as a glob (e.g. use of * and ? wildcard characters), it will be expanded by glob module from Python Standard Library. Included configuration files may not exists, this situation is silently ignored.


Configuration default values


This is how you can extend configuration default values:

        'section_name': {
            'key1': 'value',
            'key2': 'another value'
        'other_section': {
            'key3': 'value',

Environment variables in configration

Environment variables found in values are automaticall expanded.

>>> asab.Config['section_name']['persistent_dir']