Skip to main content

omniconf

Gitlab Pipeline Status Gitlab Code Coverage License PyPI version Supported Python versions Supported Python implementations

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)

Source distribution for omniconf 2.0.0
File Size Uploaded
omniconf-2.0.0.tar.gz 154.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for omniconf 2.0.0
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

2.0.0 This release

2 release files

1.6.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.1

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page