All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Accept explicit tags only if compatible with the recognised type(s)
- Support for untyped documents and attributes
- Support for Any-typed documents and attributes
- Support for Python dataclasses
- Dumping of OrderedDict to a file (but not to a string) produced a stray !!omap.
- Various fixes and improvements to development infrastructure
- Official support for Python 3.5, which is no longer supported upstream. It will probably still work, but getting anything to install on 3.5 is getting to be pretty difficult so it's probably time to upgrade.
- Use seasoning functions only on the class they're defined on
- New yatiml.String to mark string-serialisable classes
- User-defined strings may be used as dictionary keys
- Support for index mappings
- Support for latest ruamel.yaml
- Documentation improvements
- Use datetime.date instead of datetime.datetime
- Support for loading and dumping pathlib.Path objects
- Support for Python 3.9
- New make_loader and make_dumper functions improve ease-of-use
- JSON support
- Support for Mapping and Sequence types
- UnknownNode.require_attribute_value_not() function
- Node.remove_attributes_with_default_values() function
- Recipe for seasoning Enums
- Various documentation improvements
- Better error message if constructor raises
- Fixed support for Python 3.5.1 (again, sorry)
- yatiml_* methods should now be called _yatiml_*
- Dropped support for Python 3.4, which is end-of-life
- Savourised classes in lists and dicts now load correctly
- Fixed compatibility with the latest versions of ruamel.yaml
- Fixed support for Python 3.5.1
- Don't generate cross-references for enum values
- Various small fixes
- Added fix_union_bool type for fixing Union[int, bool] on Python < 3.7
- Added support for Python 3.7
- Return scalar values with the correct type
- Extended map_to_seq seasoning
- Support for YAML timestamp / Python datetime
- Support for YAML keys with dashes
- Much improved error messages
- Support for classes that are represented by a string in the YAML file
- New unified yatiml.Node interface (API change)
- Small improvements to documentation
- Miscellaneous small fixes
- Support for enumerations
- Support for user-defined string types
- Various small tooling fixes
- Some refactoring
- Initial release with basic functionality