NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3871 most downloaded on PyPI
Painless YAML config files
Last release 12 days ago
22 Sep 2026
Release timing varies
gaps range from 2 months to 2.6 years
Most releases are documented
notes for 14 of 18 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
18 releases · first in 2015
Increment version to 2.3.0
Increment version to 2.3.0
Add an as_optional_path accessor for optional path configuration values.
Require typing_extensions on older Python versions (and use typing on newer versions). #189
typing_extensions on older Python versions (and use typing onPath template shorthand handling to concrete pathlib.Path valuesconfuse.Path which now points to confuse.templates.Path instead ofpathlib.Path.Full Changelog: v2.2.0...v2.2.1
One column per quarter.
Ship inline type information via a py.typed marker for type checkers.
py.typed marker for type checkers.docs and tests directory in source distributions.Full Changelog: v2.1.0...v2.2.0
Ship inline type information via a py.typed marker for type checkers.
Tighten and extend type hints across the public API, templates, and sources.
Drop support for Python 3.9.
Add strict mypy configuration and align tests/examples with the new typing.
Include docs and tests directory in source distributions.
Address deprecation of pkgutil.get_loader by @wisp3rwind in #171
Full Changelog: v2.0.1...v2.1.0
Added typehints to as_* functions which allows for enhanced type checking and IDE support.
Drop support for versions of Python below 3.9.
Removed 'u' prefix from string literals for Python 3.0+ compatibility.
Removed a number of python 2 leftovers.
Removed deprecated pkgutil.get_loader usage in favor of importlib.util.find_spec for better compatibility with modern Python versions.
Added a minimal release workflow for GitHub Actions to automate the release process.
Added support for Python 3.13 and Python 3.14.
Modernized package and tests setup.
Remove a <4 Python version requirement bound.
Remove a <4 Python version requirement bound.
Drop support for versions of Python below 3.6.
Drop support for versions of Python below 3.6.
Add support for reading configuration values from environment variables (see EnvSource).
Add support for reading configuration values from environment variables (see EnvSource).
Resolve a possible race condition when creating configuration directories.
Version bump and changelog
Version bump and changelog
A new Configuration.reload method makes it convenient to reload and re-parse all YAML files from the file system.
Add some Python versions
Add some Python versions
A new MappingValues template behaves like Sequence but for mappings with arbitrary keys.
A new Optional template allows other templates to be null.
Filename templates now have an option to resolve relative to a specific directory. Also, configuration sources now have a corresponding global option to resolve relative to the base configuration directory instead of the location of the specific configuration file.
There is a better error message for Sequence templates when the data from the configuration is not a sequence.
pathlib.PurePath objects can now be converted to Path templates.
pathlib.PurePath objects can now be converted to Path templates.
AttrDict now properly supports (over)writing attributes via dot notation.
When using None as a template, the result is a value whose default is None. Previously, this was equivalent to leaving the key off entirely, i.e., a t
When using None as a template, the result is a value whose default is None. Previously, this was equivalent to leaving the key off entirely, i.e., a template with no default. To get the same effect now, use confuse.REQUIRED in the template.
Break up the confuse module into a package. (All names should still be importable from confuse.)
float values (like 4.2) can now be used in templates (just like 42 works as an int template).
float values (like 4.2) can now be used in templates (just like 42 works as an int template).
It's now possible to provide custom PyYAML Loader objects for parsing config files.
The Filename and Path templates now correctly accept default values.
A new Path template produces a pathlib_ Path object.
A new Path template produces a pathlib Path object.
String templates support environment variable expansion.
Drop support for Python 3.4 (following in the footsteps of PyYAML).
The first stable release, and the first that beets_ depends on externally.
The first stable release, and the first that beets depends on externally.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →