Skip to main content

Painless YAML config files

Project description

https://github.com/beetbox/confuse/actions/workflows/main.yml/badge.svg https://img.shields.io/pypi/v/confuse.svg

Confuse is a configuration library for Python that uses YAML. It takes care of defaults, overrides, type checking, command-line integration, environment variable support, human-readable errors, and standard OS-specific locations.

What It Does

Here’s what Confuse brings to the table:

  • An utterly sensible API resembling dictionary-and-list structures but providing transparent validation without lots of boilerplate code. Type config['num_goats'].get(int) to get the configured number of goats and ensure that it’s an integer.

  • Combine configuration data from multiple sources. Using layering, Confuse allows user-specific configuration to seamlessly override system-wide configuration, which in turn overrides built-in defaults. An in-package config_default.yaml can be used to provide bottom-layer defaults using the same syntax that users will see. A runtime overlay allows the program to programmatically override and add configuration values.

  • Look for configuration files in platform-specific paths. Like $XDG_CONFIG_HOME or ~/.config on Unix; “Application Support” on macOS; %APPDATA% on Windows. Your program gets its own directory, which you can use to store additional data. You can transparently create this directory on demand if, for example, you need to initialize the configuration file on first run. And an environment variable can be used to override the directory’s location.

  • Integration with command-line arguments via argparse or optparse from the standard library. Use argparse’s declarative API to allow command-line options to override configured defaults.

  • Include configuration values from environment variables. Values undergo automatic type conversion, and nested dicts and lists are supported.

Installation

Confuse is available on PyPI and can be installed using pip:

pip install confuse

Using Confuse

Confuse’s documentation describes its API in detail.

Credits

Confuse was made to power beets. Like beets, it is available under the MIT license.

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

confuse-2.2.1.tar.gz (52.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

confuse-2.2.1-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file confuse-2.2.1.tar.gz.

File metadata

  • Download URL: confuse-2.2.1.tar.gz
  • Upload date:
  • Size: 52.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for confuse-2.2.1.tar.gz
Algorithm Hash digest
SHA256 8e7600c3261852122eb5f17b24b06ab8e5437b21d6224853c1420c38ac469d3c
MD5 ae65f431fc6b20b4f36e3997dad1e16f
BLAKE2b-256 98453ad821336a7953a2322e7e2d062488cfe179748725e5165117151b88a121

See more details on using hashes here.

Provenance

The following attestation bundles were made for confuse-2.2.1.tar.gz:

Publisher: make_release.yaml on beetbox/confuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file confuse-2.2.1-py3-none-any.whl.

File metadata

  • Download URL: confuse-2.2.1-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for confuse-2.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0705a61938ae48d20c29fdb641f7dbd79aed5325bb7d0bd2df8a4dacb14de2ad
MD5 61b3105b1e89983c472cbe4f500376fb
BLAKE2b-256 7f9c65beb352015e520146b3debc9942cfbd5f6ec5aea7fdcedff2edc23954ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for confuse-2.2.1-py3-none-any.whl:

Publisher: make_release.yaml on beetbox/confuse

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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