Highlights
- Serialization can now use type annotations instead of serialized object type. It implies that conversions can now be specified with `Annotated` and registered for `NewType`, but also that types can be validated at serialization and performance are globally improved.
- **Breaking change** `settings` module has been refactored with a new organisation.
- **deprecation** `conversions` parameter has been renamed `conversion`.
- **deprecation** deserialization parameters (and global settings) `coercion`/`default_fallback` has been renamed `coerce`/`fall_back_on_default`
- Object conversions for deserialization and serialization has been added as an useful shortcut to create conversion from/to an object type.
- **deprecation** `dataclass_input_wrapper` has been deprecated, to be replaced by `object_deserialization`.
- For repeated operations, (de)serialization method can be computed only once
- Performance has been improved for deserialization and serialization; (de)serialization method can be computed only once for repeated operation, in order to make it even faster.
Changes
- Fix serialization error when conversions are not hashable (84) by wyfo
- Fix validator not taking owner parameter in account (85) by wyfo
- Improve serialization performance (86) by wyfo
- Enable registration of lazy conversions (90) by wyfo
- Replace const keyword by enum for openapi schema (92) by wyfo
- Support schema callable extra (93) by wyfo
- Add schema parameter to deserialize (96) by wyfo
- Make Union with Any member have empty JSON schema (98) by wyfo
- Fix deprecated as a boolean in JSON schema (100) by wyfo
- Fix staticmethod deserializer registration (110) by wyfo
- Rename schema_ref to type_name (112) by wyfo
- Add type_name factory for generic classes (113) by wyfo
- Rename with_validation_errors to gather_errors (116) by wyfo
- Handle not required Undefined field in serialization JSON schema (125) by wyfo
- Fix handling of wrapped functions in is_async (131) by wyfo and callumforrester
- Fix error raised in deserialization of resolver aliased parameters (130) by callumforrester
- Fix get_type_hints issue on resolver parameter with None default (132) by wyfo
- Enforce tuple type for multiple conversions (134) by wyfo
- Support decorated (de)serializer methods in Python 3.6 (138) by wyfo
- Refactor settings module (139) by wyfo
- Support type annotations in serialization (142) by wyfo
- Add function to set global cache size (143) by wyfo
- Rename deserialization parameters (144) by wyfo
- Add object_deserialization/object_serialization (145) by wyfo
- Rename conversions parameter to conversion (149) by wyfo
- Rename merged metadata to flattened (150) by wyfo
- Add subclass tagged union example (151) by wyfo