Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Configus - a declarative spec for configuration

Project description

Configus - a declarative contract for configuration


### Instalation

```
pip install configus
```

### Features

- [x] Unified spec for process config
- [x] Strict validation of config, no more trailing whitespaces or runtime panics from malphormed uri's

- [x] Support parametrization from env variables and cli arguments at the same time.
- [x] The same param could passed as `export DEBUG=on` or `--debug=on`
- [x] Auto load of `.env` file
- [x] Easy to mock for unit tests

### Usage

Let start with a simple spec that our requires `debug`, `version` and `secret_cookie` configuration params

```python
# app.py
from configus import config, trafaret as t

if __name__ == '__main__':
# Describes shape of the data params which will be taken either from env, cli args or envfile.
schema = t.Dict(DEBUG=t.StrBool, VERSION=t.Float, SECRET_COOKIE=t.String)
env_vars = config(schema=schema)
assert env_vars == {'DEBUG': True, VERSION: 0.1, SECRET_COOKIE=<......>}
```

Once schema defined we can pass variables throw env

```shell
DEBUG=1 VERSION=1.0 SECRET_COOKIE=yo python app.py
```

Cmd flags
```shell
python app.py --debug=1 version=1.0
```

Or even both

```shell
export VERSION=1.0
export SECRET_COOKIE=yo
python app.py --debug=2
```

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
configus-0.1.4.tar.gz (3.1 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page