Merges configuration from toml file and environment variables
Project description
Configula
Creates a single configuration by merging settings defined in: 1. in environment variables 2. in toml file
Values provided in environment variables have priority over values from toml configuration file.
By default all environment variables are prefixed with 'PAPERMERGE'.
By default __
(two underscores) is used as delimiter in environment variables
names. For example, given following toml file:
[main]
secret_key = 1234
[ocr]
default_language = 'deu'
corespondent environment variables names are PAPERMERGE__MAIN__SECRET_KEY and PAPERMERGE__OCR__DEFAULT_LANGUAGE - notice two underscores separate section name from prefix and variable name. Environment variable name format is (all in uppercase):
<prefix><delimiter><section_name><delimiter><variable_name>
Although in toml files you can place variable names outside sections, in Papermerge all variables must be placed in sections.
By default Configula looks up for following toml file:
- /etc/papermerge/papermerge.toml
- /etc/papermerge.toml
- papermerge.toml
If you have custom location (or custom file name), use PAPERMERGE__CONFIG
(notice double underscores) environment variable to point to it:
PAPERMERGE__CONFIG=/app/config/pm.toml
Installation
$ poetry add configula
Usage
from configula import Configula
config = Configula()
default_language = config.get('ocr', 'default_language')
secret_key = config.get('main', 'secret_key')
Where papermerge.toml
has the following content:
[main]
secret_key = 5432
[ocr]
default_language = 'deu'
Default language can be overwritten by environment
variable PAPERMERGE__OCR__DEFAULT_LANGUAGE
and secret_key can overwritten
by environment variable PAPERMERGE__MAIN__SECRET_KEY
If you want to read variable from a section use
configula.get(section, var_name, default_value)
method.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for configula-0.5.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6316b276ed312f5f6669698c13e60513655b0df6b87c6f75d22a3db76db3c29 |
|
MD5 | a63d497c50bee306cbe98ff2b524f79a |
|
BLAKE2b-256 | ba58ddf69b75e93ca1798e307167122b57657f7a82c0f1199d85dc9e561b7a7b |