Changelog ========= v2.2.0 ------ - Drop support for Python 3.9. - Ship inline type information via a `py.typed` marker for type checkers. - Tighten and extend type hints across the public API, templates, and sources. - Add strict mypy configuration and align tests/examples with the new typing. - Include `docs` and `tests` directory in source distributions. v2.1.0 ------ - 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 typehints to `as_*` functions which allows for enhanced type checking and IDE support. - 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. v2.0.1 ------ - Remove a `<4` Python version requirement bound. v2.0.0 ------ - Drop support for versions of Python below 3.6. v1.7.0 ------ - Add support for reading configuration values from environment variables (see `EnvSource`). - Resolve a possible race condition when creating configuration directories. v1.6.0 ------ - A new `Configuration.reload` method makes it convenient to reload and re-parse all YAML files from the file system. v1.5.0 ------ - 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. v1.4.0 ------ - `pathlib.PurePath` objects can now be converted to `Path` templates. - `AttrDict` now properly supports (over)writing attributes via dot notation. v1.3.0 ------ - Break up the `confuse` module into a package. (All names should still be importable from `confuse`.) - 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. v1.2.0 ------ - `float` values (like ``4.2``) can now be used in templates (just like ``42`` works as an `int` template). - The `Filename` and `Path` templates now correctly accept default values. - It's now possible to provide custom PyYAML `Loader` objects for parsing config files. v1.1.0 ------ - A new ``Path`` template produces a pathlib_ Path object. - Drop support for Python 3.4 (following in the footsteps of PyYAML). - String templates support environment variable expansion. .. _pathlib: https://docs.python.org/3/library/pathlib.html v1.0.0 ------ The first stable release, and the first that beets_ depends on externally. .. _beets: https://beets.io