What's Changed
- CPython 3.9.8+ and 3.10.1+ have new logic for type resolution of ForwardRefs which caused a regression in our runtime type analysis. This change adds handling for this new logic.
Full Changelog: v2.7.10...v2.7.11
This release fixes a regression in our serializer factory which failed to account for optional/nullable enum types when dumping to a primitive, leading to an AttributeError when attempting to access the enum value.
sqlite3.Row
objects are C extension types which meet the contract for a mapping, but do not evaluate as a subclass of the Mapping
generic. This change adds them to our list of "mapping-compliant" types.
NamedTuple objects were improperly treated as a simple builtin subtype when coercing user-defined types, which resulted in unexpected behavior. This fixes deserialization logic to use the standard translator protocol for named tuples.
Derived classes of a typic.klass
object were improperly recognized as a simple Iterable.
This caused a recursion error when attempting to serialize these objects, since the __iter__
magic method relies upon the iterator factory, but the iterator factory simply called the __iter__
magic method.
Resolves #185
Fixes:
- Support
collections.deque
as Array constraint (resolves #181) - Fix union constraints generation on stable py3.10 release.
Misc:
- Extend DSN support for sqlite urls.