Changelog
This project adheres to Semantic Versioning and Keep a Changelog format.
[1.0.0] -- 2026-02-10
Section titled “[1.0.0] -- 2026-02-10”Changed
Section titled “Changed”- Renamed
FutureYAMLConfigManagertoYAMLConfigManager(the "future" is now!) FutureYAMLConfigManageris still available as a deprecated alias with a warning (will be removed in v1.1.0)- Migrated packaging from setup.py to pyproject.toml with hatchling build backend
- Switched linting/formatting from black/isort to ruff
- Updated CI workflows to latest GitHub Actions versions (checkout v4, setup-python v5)
- Added macOS to test matrix
- Use
importlib.metadatafor version discovery instead of hardcoded_version.py - Requires Python >=3.10
- Simplified dependencies
- Removed deprecated code (
IKconstant,_warn_deprecatedfunction) - Removed deprecated properties (
alias_dict,_raw_alias_dict)
Removed
Section titled “Removed”- jsonschema validation
- attmap support
- Legacy packaging files (setup.py, MANIFEST.in, requirements/)
[0.9.4] -- 2025-11-03
Section titled “[0.9.4] -- 2025-11-03”- Python 3.13 support
- Missing import for
urlopenfromurllib.request - Missing import for
Mappingfromcollections.abc
Removed
Section titled “Removed”- Deprecated Python < 3.7 compatibility code
[0.9.3] -- 2024-02-01
Section titled “[0.9.3] -- 2024-02-01”- New
FutureYAMLConfigManagerobject, prep for v1. - Improved file locking system with
read_lockandwrite_lockcontext managers - New
from_xobject construction API.
[0.9.2] -- 2023-10-05
Section titled “[0.9.2] -- 2023-10-05”- new functionality for handling names of config files
- bugs with selecting a config file
- bug with exiting Python on system interrupt
[0.9.1] -- 2023-06-15
Section titled “[0.9.1] -- 2023-06-15”.priority_get()function onYAMLConfigManagerobject
[0.9.0] -- 2022-05-04
Section titled “[0.9.0] -- 2022-05-04”This is a transition release that is compatible with the 0.X series, and also provides new capability from 1.0, which will not be backwards-compatible
- new
YAMLConfigManagerobject, to replace YacAttMap, which will be the new interface in 1.0.
[0.8.4] -- 2021-12-02
Section titled “[0.8.4] -- 2021-12-02”- a bug that prevented writing a readonly file to an external path
[0.8.3] -- 2021-09-20
Section titled “[0.8.3] -- 2021-09-20”- removed use2to3 for compatibility with setuptools upgrade.
[0.8.2] -- 2021-06-28
Section titled “[0.8.2] -- 2021-06-28”- if file is empty, initialize its contents to an empty dict, which prevents failure
- check for previously applied path to
yaml.SafeLoaderbefore patching
[0.8.1] -- 2021-03-18
Section titled “[0.8.1] -- 2021-03-18”- Clarified message for
__internalkey.
[0.8.0] -- 2021-03-10
Section titled “[0.8.0] -- 2021-03-10”- jsonschema validation support. The
YacAttMapcontents can be validated when object is constructed and on every call to thewritemethod __internalkey inYacAttMapobject, which stores aattamp.AttMapof meta attributes.__internalcan be accessed in clients as:yacman.IK
Deprecated
Section titled “Deprecated”- use of the following properties, which should be accessed via
__internalkey from now on:YacAttMap.file_pathYacAttMap.writable
[0.7.1] -- 2021-02-22
Section titled “[0.7.1] -- 2021-02-22”- environment variables expansion in provided paths in
select_configfunction
- issues with locking nonexistent files; #41
[0.7.0] -- 2020-08-28
Section titled “[0.7.0] -- 2020-08-28”AliasedYacAttMapclass that supports top-level key aliases
[0.6.9] -- 2020-07-01
Section titled “[0.6.9] -- 2020-07-01”Changed
Section titled “Changed”- improved file locking
Removed
Section titled “Removed”- possibility to provide a file path as
entriesin theYacAttMapconstructor
[0.6.8] -- 2020-06-25
Section titled “[0.6.8] -- 2020-06-25”Changed
Section titled “Changed”- extended lock wait time and the frequency of checks
- drop Python 2 support
- a problem with file locking after other process unlocked it before the timeout
[0.6.7] -- 2020-02-07
Section titled “[0.6.7] -- 2020-02-07”Changed
Section titled “Changed”- load_yaml function can accommodate URLs.
[0.6.6] -- 2019-12-13
Section titled “[0.6.6] -- 2019-12-13”- possibility to use
YacAttMapin a context manager even if it was not read from a file, but a file path attribute has been set
[0.6.5] -- 2019-12-02
Section titled “[0.6.5] -- 2019-12-02”- context manager functionality to
YacAttMapclass
Changed
Section titled “Changed”- method name:
unlocktomake_readonly make_writablebehavior: it re-reads the source file now
[0.6.4] -- 2019-11-04
Section titled “[0.6.4] -- 2019-11-04”- distribute license file with the package
[0.6.3] -- 2019-10-22
Section titled “[0.6.3] -- 2019-10-22”- silent lock creation failures in case the lock directory does not exist; #24
YacAttMapproperties:file_pathandwritable
[0.6.2] -- 2019-10-10
Section titled “[0.6.2] -- 2019-10-10”Changed
Section titled “Changed”- in
select_configalways use default config file path when no valid path is determined
[0.6.1] -- 2019-10-08
Section titled “[0.6.1] -- 2019-10-08”strict_envargument to theselect_configfunction
Changed
Section titled “Changed”- in
select_configuse thedefault_config_filepatheven if noconfig_env_varswere specified
[0.6.0] -- 2019-10-02
Section titled “[0.6.0] -- 2019-10-02”- add support for multi-user context operation
writableargument to create the object in a read-only or writable modewait_maxargument to specify the wait time for the lock before raising aRuntimeErrorunlockmethodmake_writablemethod
Changed
Section titled “Changed”- entries argument accepting a file path becomes deprecated and throws a
DeprecationWarningand will be removed altogether in the future release
[0.5.2] -- 2019-08-20
Section titled “[0.5.2] -- 2019-08-20”Changed
Section titled “Changed”- Force all indexes to be strings (not floats or ints).
[0.5.1] -- 2019-08-02
Section titled “[0.5.1] -- 2019-08-02”- Allow providing a yaml string to constructor.
[0.5.0] -- 2019-06-18
Section titled “[0.5.0] -- 2019-06-18”- Improve constructor to allow either a dict or a filepath
- Make printing prettier
[0.4.2] -- 2019-06-18
Section titled “[0.4.2] -- 2019-06-18”Changed
Section titled “Changed”- Parameterize existence check for
select_config.
[0.4.1] -- 2019-06-14
Section titled “[0.4.1] -- 2019-06-14”Changed
Section titled “Changed”- Parameterize behavior when
select_configfilepath argument does not exist.
[0.4.0] -- 2019-06-07
Section titled “[0.4.0] -- 2019-06-07”- Fix bug when building a
YacAttMapwith a filepath in Python 2.7: Issue 6
CHanged
Section titled “CHanged”- Defer exception handling from
load_yamlto client code.
[0.3.0] -- 2019-06-04
Section titled “[0.3.0] -- 2019-06-04”- Allow a YacAttMap to remember its own path so it can use
writewithout an argument.
[0.2.0] -- 2019-05-21
Section titled “[0.2.0] -- 2019-05-21”Changed
Section titled “Changed”- Changed
select_loadto justselectso you load on your own.
- Fixed packaging bug
[0.1.0] -- 2019-05-15
Section titled “[0.1.0] -- 2019-05-15”- First functional public release of
yacman.