- Fixes premature short-circuiting of deserializers for annotations with default values (resolves 112) - Adds support for postponed annotations and recursive/circular types (resolves 113). See the [docs](https://python-typical.org/usage/types/#postponed-annotations) for information on how to take advantage of this improvement.
2.0.22
Add explicit handling for `uuid.UUID` & subclasses (resolves 110)
2.0.21
Bugfixes: - Properly handle ForwardRefs when fetching a type-name. - Properly handle equality checks for pandas types (resolves 106). - Short-circuit collection-types with no defined nested types/fields (resolves 107).
2.0.20
Improvements: - Proactively detect infinite recursion as a result of invalid usages of the `slots` operator (resolves 104 ) - Allow user-defined classes to be translated to collection metas.
2.0.19
This expands support for the detection of optional fields to allow for Ellipsis `...` as a default value in cases where `None` is meaningful.
2.0.18
Fixes: - SerdeFlags inheritance (resolves 96 ) - Passing callables to wrapped objects (partially resolves 95 ) - Fix deserialization of subclassed enums with default values (resolves 98 ) - Fix nested deserialization & translation for arbitrary classes.
Improvements: - Faster serialization with less state-tracking by overloading `__missing__` on serdict objects. - Migrate away from using `type()` calls to extract an instance's type (`inst.__class__` is measurably faster) during validation and deserialization. - Use `__slots__` for internal data-structures for faster runtime with less memory usage. - Provide `slots` option for `typic.klass` & `slotted` decorator for dataclasses. - More flexibility when translating arbitrary classes by adding detection of required fields. - Even more benchmarks!