Skip to main content

A Python library that makes configuring your application independent from your configuration backend.

Project description

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 is 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 this methods are a valid way to configure an application, and each have their own strengths. Cli arguments are most suited for tools and daemons. Configuration files are suited for applications that have more complex requirements. Environment variables and key/value stores are handy when using containers. You may even want to use a combination of methods (not yet implemented).

This library aims to make configuring the application easier, and allows you to use multiple configuration backends transparently.

For up-to-date examples, take a look here.

Changes

For an up-to-date changelog, see ChangeLog.

  • Full typing support and experimental mypy plugin added in 1.5.0 .

  • Support for Python 3.9, 3.10, 3.11 and 3.12 was added in version 1.5.0 .

  • Support for Python 2.7, 3.5, 3.6 and 3.7 was dropped in version 1.5.0 .

  • Support for Vault backend was dropped in version 1.5.0 .

  • Support for Python 3.4 was dropped in version 1.4.0 .

  • Support for Jython was dropped in version 1.4.0 .

  • Support for Python 3.8 was added in version 1.3.1 .

  • Support for Python 3.3 was dropped in version 1.3.0 .

License

omniconf is licensed under LGPLv3. See the LICENSE file for details.

Contributing

To contribute, base your changes on the develop branch. Make sure your contribution doesn’t break any existing tests, and add relevant new tests. You can run the test suite using tox:

$ tox

To check for style issues, just run the test suite, ruff is automatically called for linting and formatting checks.

When you’re done, open a pull request on Github.

Project details


Download files

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

Source Distribution

omniconf-1.5.0.tar.gz (43.5 kB view details)

Uploaded Source

Built Distribution

omniconf-1.5.0-py3-none-any.whl (49.4 kB view details)

Uploaded Python 3

File details

Details for the file omniconf-1.5.0.tar.gz.

File metadata

  • Download URL: omniconf-1.5.0.tar.gz
  • Upload date:
  • Size: 43.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for omniconf-1.5.0.tar.gz
Algorithm Hash digest
SHA256 d1f66f46310fbe9fdae09a5f040d023cfbd19f3c6fb6b0802e34c01ca8d38880
MD5 15f27c87268a0b46f97c45f1a4db065d
BLAKE2b-256 e0e9501a6bb71b0d3404798aef9fc647f927e70379b2ddb06d1da221360ad5aa

See more details on using hashes here.

File details

Details for the file omniconf-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: omniconf-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 49.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.8

File hashes

Hashes for omniconf-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b8e0a837fabd80633b0b3e98b13471607d33a300b440fc3d8dc6eab7e1c1f34
MD5 203d5a38f97e2100354942d565213d3a
BLAKE2b-256 f06d66be05af7ea441efdd09462f38bd4bae7d8455fb54bcfb2ad165ae69cdb6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page