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.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | acfb69fa1d86e40acec09c8822d518790f7d15ddfc0926939f1e40d2759234d8 |
|
MD5 | 4ad2d469d60c93f0fb2519337a57a431 |
|
BLAKE2b-256 | ffccda8d04e7a138bb4d7a64c2f32c2bc2fd145864311d34b2a1d9694f146e02 |