Releases: Fatal1ty/mashumaro
Releases Β· Fatal1ty/mashumaro
v3.15
Changes
- Improved
Union
and basic types deserialization (#256), highlighted changes:- Expected
int | float
orfloat | int
value can now be passed through without coercion and losing precision - Expected
str
value will be guaranteed to be a string version of the input value (#42) - Expected
bool
value will be guaranteed to be a boolean using standard truth testing procedure for the input value - Expected
NoneType
will be guaranteed to beNone
regardless of the input value
- Expected
- Introduced JSON Schema plugin system (#265), see updated documentation
- Added built-in
DocstringDescriptionPlugin
to use a docstring as a description (#222)
- Added built-in
- Added support for recursive
Union
types (#206) - Configured MANIFEST.in to include tests folder in the sdist (#262)
- Dropped support for Python 3.8 (#258)
v3.14
v3.13.1
v3.13
Changes
- Added support for Python 3.13 (#208, #209)
- Added support for PEP 695 (#211)
- Added initial support for PEP 696 with typing-extensions 4.11.0 reference implementation (#216)
- Added support for
MappingProxyType
(#218) - Added
forbid_extra_keys
config option to reject extra keys on deserialization (#197, #198) - Added an alternative way to assign a field alias with
Alias(...)
annotation (#214), see updated documentation - Improved union encoding performance (#194)
- Fixed a case when
omit_default
didn't work forEnum
with basic types mixed in (#204) - Fixed
RecursionError
when annotatedSerializationStrategy
was used as a field serialization strategy (#219)
v3.12
Changes
- Added support for associating multiple tags with a single variant by returning a list of tags from
variant_tagger_fn
(#184) - Added support for locally defined types (#180, #182, #189)
- Added support for
ForwardRef
in JSON Schema generation (#187) - Fixed serialization of
IntFlag
whenomit_default
is enabled (#188) - Improved type annotations for
serialization_strategy
config option
v3.11
Changes
- Added "codecs" feature to separate data models from serialization and work with top-level lists, dataclasses without mixins etc. (#108, #69), see updated documentation
- Added new
allow_deserialization_not_by_alias
config option to allow deserialization by both alias and field name, see documentation (#175) - Fixed
UnserializableDataError
for generic serializable types and generic serialization strategies with postponed evaluation of annotations (#177) - Fixed regression when
ValueError
was not thrown if invalid value type was passed tofrom_*
method - Added
serialize_by_alias
dialect option - Added
namedtuple_as_dict
dialect option
v3.10
Changes
- Added new
sort_keys
config option to sort keys on serialization, see documentation (#157) - Added new
omit_default
config and dialect options to exclude values equal to defaults on serialization, see documentation (#161) - Added
variant_tagger_fn
discriminator parameter to allow discrimination based on a key that is not part of the model, see documentation (#135) - Added new
no_copy_collections
dialect option to avoid collection data types copying, see documentation (#163) - Added support for
LiteralString
(#166) - Added initial support for
ForwardRef
types (#144) - Added ability to use basic types as serialization methods so that they will be reflected in the JSON schema (#148)
- Added ability to use slots in
SerializableType
andGenericSerializableType
subclasses (#156) - Added ability to use frozen dataclasses as dictionary keys (#160)
- Added support for Python 3.12 (#153)
- Dropped support for Python 3.7 (#147)
- Moved from
flake8
toruff
(#150)
v3.9.1
v3.9
Changes
- Added support for inner dataclasses without mashumaro mixins (#109)
- Added support for
default_factory
by JSON Schema generator (#114) - Added ability to override
additionalProperties
in JSON Schema (#123) - Added ability to add "description" keyword in JSON Schema by using "description" key in dataclass field metadata (#125)
- Fixed default reference prefix in JSON Schema 2022-12 dialect (#126)
- Fixed handling of
Annotated
type with unhashable metadata (#133)