- New providers for working with time:
datetime_by_timestamp
,date_by_timestamp
anddatetime_by_format
. - Add
exec_type_checking
function to deal with cyclic references by executingif TYPE_CHECKING:
constructs. - Add support for bytes inside literal, for example
Literal[b"abc"]
. - The library shows a hint if one class is a model and the other is not.
- Traceback of CannotProvide is hidden (it is raised when loader, dumper, or converter can not be created). It simplifies error messages to users. You can show traceback by disabling hide_traceback parameter of Retort.
- Drop support of Python 3.8.
- Refactor internal provider routing system. It becomes more simple and readable. Also, internal caching is added. This led to a 40% speedup in loader generation for medium models and up to 4x speedup for large models with many recursive types.
See the full list of changes at changelog.