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.0.tar.gz (52.5 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.0-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for confuse-2.2.0.tar.gz
Algorithm Hash digest
SHA256 35c1b53e81be125f441bee535130559c935917b26aeaa61289010cd1f55c2b9e
MD5 593e626edc85412af0afcb33c577450a
BLAKE2b-256 a2a6444c7376439851ce1d07932f88b707910d4605466d1c313621943c738112

See more details on using hashes here.

Provenance

The following attestation bundles were made for confuse-2.2.0.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.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for confuse-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 470c6aa1a5008c8d740267f2ad574e3a715b6dd873c1e5f8778b7f7abb954722
MD5 080c94c6bc3488e0b997a14257fc90e5
BLAKE2b-256 655da1333543a1b40fcbb08830330f6ea7bc7a3bda387a7a0c2bead534f5c01f

See more details on using hashes here.

Provenance

The following attestation bundles were made for confuse-2.2.0-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