omniconf
A Python library that makes configuring your application independent from your configuration backend.
Documentation
Read the complete documentation on Read the Docs.
Why omniconf?
Configuring applications can be hard, and it doesn’t help that there are many different (and valid) ways to do it:
cli arguments
config files: ConfigObj (.ini like), JSON, YAML, TOML
environment variables
Each of these methods are a valid way to configure an application, and each have their own strengths. This library aims to make configuring the application easier, and allows you to use multiple configuration backends transparently.
To get started, take a look here.
Changes
For an up-to-date changelog, see ChangeLog.
See the docs for supported Python versions.
License
omniconf is licensed under LGPLv3. See the LICENSE file for details.
Contributing
To contribute, base your changes on the develop branch. Use init.sh to install the required Python version using pyenv and uv to manage a virtualenv. Activate the virtualenv using source .venv/bin/activate.
After the initial setup, use init.sh at any time to bring your environment up-to-date with the latest requirements.
$ ./init.sh
Installing Python version 3.x.x using pyenv
- Install dependencies using uv
Using CPython 3.x.x interpreter at: /home/user/.pyenv/versions/3.x.x/bin/python3.x
Creating virtual environment at: .venv
...
- Installing pre-commit hook
pre-commit installed at .git/hooks/pre-commit
$ source .venv/bin/activate
# Start developing
Make sure your contribution doesn’t break any existing tests, and add relevant new tests. You can run the test suite using just:
$ just pytest # run full test suite
$ just mypy # check typing with both mypy and basedpyright
To check for style issues, just run the test suite, ruff is automatically called for linting and formatting checks, and mypy for typing.
When you’re done, open a merge request.
Metadata
Release files for omniconf 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| omniconf-2.0.0.tar.gz | 154.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| omniconf-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 188.9 kB
Release files / omniconf-2.0.0.tar.gz
| Download URL | omniconf-2.0.0.tar.gz |
|---|---|
| Size | 154.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78c881c1920a424c92a71768f829a510d3044eb1711cfa319d1fae6940511c4b
|
|
BLAKE2b-256 checksum How to use checksums |
a88441797a94ea71261c7d16b8f3d973edd1f544d89ff9ab45e031f68b1c44cf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / omniconf-2.0.0-py3-none-any.whl
| Download URL | omniconf-2.0.0-py3-none-any.whl |
|---|---|
| Size | 34.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2412ecd898fa67d25751deed97b8c6baad06145f4a8edef6d00fe6c9b4fa0d11
|
|
BLAKE2b-256 checksum How to use checksums |
c44d62cbd4e733e635003d71caaec8a66f2d8e352509227d6ccda1977843645a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|