Releases: seandstewart/typical
Final Release
This release updates critical dependencies to unblock support for Python 3.12.
Also:
- Drop support for Python 3.7 (EOL)
Note: This is the final release of typical.
Support latest Python and typing-extensions.
What's Changed
- Add benchmark for apischema by @wyfo in #192
- Switch to poetry-core by @fabaff in #193
- Update typing-extensions, plus a fixes for other breaking changes. by @seandstewart in #203
New Contributors
Full Changelog: v2.8.0...v2.8.1
v2.8.0
v2.7.11
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
Fix support for Optional Enums
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.
Improved support for Decimal types
Treat `sqlite3.Row` objects as a Mapping type
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.
Fix deserialization of extended Mapping types
v2.7.7 bump version to v2.7.7 [ci skip]
Fix Translation of a NamedTuple to another User Class
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.
Fix Recursion Error for Derived Classes of `@typic.klass`
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