Releases: oxan/djangorestframework-dataclasses
Releases · oxan/djangorestframework-dataclasses
v1.4.0
v1.3.1
v1.3.0
Breaking changes:
- The type annotations now require mypy 1.0 or higher to validate correctly.
Features & fixes:
- Create values for fields of non-
listordictcomposite types (such asfrozensetorOrderedDict) as that type, instead oflistordict. - Allow overriding the field for specific composite types through the
serializer_field_mappingdictionary. - Don't set optional fields to
rest_framework.fields.emptysentinel value when used in non-partial mode. This fixes occasional leaks of the sentinel into dataclasses returned to the user, for example when aDataclassSerializerwas nested inside a regular serializer. Not setting, and later stripping, the sentinels also increases performance. - Support dataclasses with fields that have
init=False. - Support
save()on serializers withmany=True. - Support for fields with union types.
- Support nested serializers with
source='*'. - Fix
child_kwargsdefined in dataclass field metadata (as opposed toextra_kwargsfield onMetasubclass).
v1.2.0
- Allow all types, including special forms such as unions, to have their field type overridden through the
serializer_field_mappingdictionary. - Also treat unions containing
Noneas optional if they consist of three or more members. Previously this was only the case for unions with two members (i.e. only unions of a type withNonewere optional). - Many added and fixed type hints.
v1.1.1
v1.1.0
v1.0.0
djangorestframework-dataclasses v0.10
Features & fixes:
- Fix
EnumFieldcompatibility with drf-yasg.
djangorestframework-dataclasses v0.9
Breaking changes:
- The serializer field for dataclass fields that have a default value or default value factory, are now marked as optional (
required=False). - Marking dataclass fields with
typing.Optionalno longer causes the serializer fields to be optional (they will still be marked as nullable). In previous versions these fields would be optional, which broke if a field had no default value. Due to the preceding change, the common case of fields marked withtyping.OptionalandNoneas a default value, have no change in behaviour. - Drop support for generic
typing.Finaltype hints (without the type specified), astyping.Finalwas never supposed to be used in this way, and Python 3.10 will drop support for it.
Features & fixes:
- Support overriding serializer for a nested dataclass using
serializer_field_mapping. - Support overriding serializer for all nested dataclasses using
serializer_dataclass_fieldproperty. - Support partial updates of nested dataclasses.
- Support bound type variables.
- Support field generation for enumerations.
- Support specifying serializer field configuration in dataclass field metadata.
- Fix value for non-specified optional fields in validated_data on serializers with
many=True.
djangorestframework-dataclasses v0.8
Breaking changes:
- The validated_data representation no longer contains the rest_framework.fields.empty sentinel value for unsupplied fields. This reverts the breaking change from v0.7.
Features & fixes:
- Don't install tests into distributed packages.