Skip to content

0.57.2

Compare
Choose a tag to compare
@github-actions github-actions released this 11 Mar 15:48
· 202 commits to master since this release

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

0.57.2 (2024-03-11)

Fix

  • model generator refactored (#569)

0.57.1 (2024-02-22)

Fix

  • pass to fastavro all schemas in a single call (#553)

0.57.0 (2024-02-16)

Feat

  • Possibility for original schema string in objects Meta class. (#545)

0.56.2 (2024-02-12)

Fix

  • Install typing-extensions when using Python > 3.8 (#541)

0.56.1 (2024-01-30)

Fix

  • Optional[Literal] type fixed. Closes #518 (#528)

0.56.0 (2024-01-19)

Feat

  • support for pydantic date and datetime added (#517)

0.55.1 (2024-01-16)

Fix

  • bump inflector version for python3.12 support (#519)

0.55.0 (2024-01-16)

Feat

  • exclude_default option added in metadata. Closes #400 (#513)

0.54.2 (2023-12-12)

Fix

  • kwarg typing in AvroModel (#488)

0.54.1 (2023-12-07)

Fix

  • syntax warning in FakeStub docstring (#486)

0.54.0 (2023-12-01)

Feat

  • property extra_allowed_default_types added to Field. Closes #457 (#481)

0.53.1 (2023-11-15)

Fix

  • simplify faker stub code (#471)

0.53.0 (2023-11-03)

Feat

  • add pydantic v2 support. Closes #415 (#455)

0.52.1 (2023-10-09)

Fix

  • add fake() support to Literal field type (#451)

0.52.0 (2023-09-28)

Feat

  • add support for typing.Literal (#435).

0.51.0 (2023-09-20)

BREAKING CHANGE

  • pydantic-v2: First steps to support pydantic v2. Namespace dataclasses_avroschame.pydantic added. All AvroModel fields now are private (#427)

Migration guide for pydantic users: https://marcosschroh.github.io/dataclasses-avroschema/migration_guide/#migration-from-previous-versions-to-0510

0.50.2 (2023-09-19)

Fix

  • Add typing-extensions to python 3.8 (#432)

0.50.1 (2023-09-19)

Fix

  • Resolve issues with raw None annotation (#433). Closes #424

0.50.0 (2023-09-13)

Feat

  • add support for pydantic custom classes as fields (#420)

0.49.0 (2023-09-12)

Feat

  • option to exclude fields on the output schema added. (#423)

0.48.1 (2023-09-12)

Fix

  • respect enum symbols order when generating models from schemas. Related to #413 (#422)

0.48.0 (2023-09-11)

BREAKING CHANGE

  • drop python 3.7 support (#414)

0.47.3 (2023-09-06)

Fix

  • Model/code generator when enum has namespaces. Closes #406 (#410)

0.47.2 (2023-08-30)

Fix

  • field ordering when field has metadata but not a default value. Closes #401 (#403)

0.47.1 (2023-08-30)

Fix

  • do not uppercase enums keys when the key already exist. Closes #399 (#402)

0.47.0 (2023-08-28)

Feat

  • Make Faker an optional dependency. (#391)

0.46.3 (2023-08-25)

Fix

  • dependencies updated (#393)

0.46.2 (2023-08-15)

Fix

  • record fields avro schema creation (#382) (#383)

0.46.1 (2023-08-14)

Fix

  • schema generation with optional Enum fields (#386)

0.46.0 (2023-08-14)

Feat

  • support pydantic constrained int fields (#379)

0.45.1 (2023-07-27)

Fix

  • default factory in order to get proper default values. Closes #365

0.45.0 (2023-07-18)

Feat

  • field_order property added to class Meta. Closes #345 (#369)

0.44.0 (2023-07-06)

Feat

  • pydantic fields added. Closes #328

0.43.10 (2023-06-29)

Fix

  • model generator when fields have metadata. Closes #348 (#355)

0.43.9 (2023-06-19)

Fix

  • pydantic nested schema serialization (#346)

0.43.8 (2023-06-15)

Fix

  • stringcase replaced by casefy. Closes #341 (#347)

0.43.7 (2023-06-13)

Fix

  • Fix typo in kwargs typehint for AvroBaseModel.fake (#340)

0.43.6 (2023-05-30)

Fix

0.43.5 (2023-05-30)

Fix

  • update dependencies and bump version (#334)

0.43.4 (2023-05-26)

Fix

  • proper schema generation when primitive types are defined types. Closes #330 (#332)

0.43.3 (2023-05-25)

Fix

  • dict conversion of AvroBaseModel. Closes #324 (#331)

0.43.2 (2023-05-25)

Fix

  • deserialization with more than tow layers. Closes #326 (#329)

0.43.1 (2023-05-19)

Fix

  • excluded pydantic.Fields should be used on avro serialization. Closes #314 (#322)

0.43.0 (2023-04-26)

Feat

  • AvroRecord added in order to make simpler faust usage. Closes #281 (#303)

0.42.2 (2023-04-24)

Fix

  • pydantic and faust-streaming optional dependencies. Remove pytz as dependency. Closes #292 (#297)

0.42.1 (2023-04-24)

Fix

  • typing: incorrect type annotations in avrodantic.py (#302)

0.42.0 (2023-04-21)

Feat

  • TupleField added in order to deserialize typing.Tuple as tuples rather than list. Closes #291 (#296)

0.41.2 (2023-04-20)

Fix

  • dev dependencies updated (#294)

0.41.1 (2023-04-06)

Fix

  • dependencies updated. Model generator documentation updated (#285)

0.41.0 (2023-04-06)

BREAKING CHANGE

  • types.Decimal has been replaced by condecimal (Annotated[decimal.Decimal]). Closes #260 (#282)

0.40.0 (2023-03-29)

Fix

  • correctly generate enum default values (#275)
  • correctly generate type annotations

fix: do not generate default dataclass docstrings

fix: datetime model generation

the previous implementation did not roundtrip

feat: render docstrings in generated classes

fix: correct union and optional conversion

test: add avsc -> python -> avsc roundtrip test

fix: properly handle aliases in the model generator

tests: add coverage for single-type unions model generation

Co-authored-by: Maximilian Hils git@maximilianhils.com

0.39.3 (2023-03-29)

Fix

  • include matadata when using pydantic.Field with AvroBaseMode. Closes #263 (#274)

0.39.2 (2023-03-28)

Fix

  • use extras in a correct way. Closes #272 (#273)

0.39.1 (2023-03-27)

Fix

  • dependencies updated. Closes #270 (#271)

0.39.0 (2023-03-24)

Feat

  • support for typing.Annotated added (#264)

0.38.1 (2023-03-22)

Fix

  • dc-avro dependency (#262)

0.38.0 (2023-03-22)

  • First release added with commitizen

[0.37.5] - 2023-03-17

  • Avro schema generation should always return the same result. Close #254 (#255)

Fixed

[0.37.4] - 2023-03-06

  • Exception NameSpaceRequiredException removed. Close #246 (#253)

Fixed

[0.37.3] - 2023-03-06

  • Dependencies and documentation (#252)

Fixed

[0.37.2] - 2023-03-02

  • Use UUID type instead of function uuid4 on model generation (#251)

Fixed

[0.37.1] - 2023-02-24

  • Use pydantic UUID4 when generating pydantic models. (#247)

Added

[0.37.0] - 2023-02-22

  • Dacite custom config added to class Meta. Closes #242 (#245)

Fixed

[0.36.3] - 2023-02-16

  • ListField fake generation when it contains Optional. Closes #232 (#244)

Fixed

[0.36.2] - 2023-02-14

  • Do not persist the schema when the parent class is not an AvroModel. Closes #241

Fixed

[0.36.1] - 2023-01-19

  • Model generator with only decimal fields.
  • Use pydantic.condecimal instead of the custom Decimal as default value when generate pydantic models

Added

[0.36.0] - 2023-01-18

  • Generate a Python module from multiple schemas 235

Added

[0.35.0] - 2023-01-10

  • Convert python models from avsc schemas 227

Fixed

[0.34.6] - 2023-01-06

  • Use namespaces when an enum is used multiple times in a class. Cases should not apply to enum names. Closes 221

Fixed

[0.34.5] - 2023-01-06

  • Schema generation with optional enum when using pydantic. Closes 229

Fixed

[0.34.4] - 2023-01-04

  • Fake generation with optional user defined types 228

Fixed

[0.34.3] - 2022-12-15

  • Decimal fields serialization 222

Fixed

[0.34.2] - 2022-11-18

  • pydantic fake and nested json serialization 219

Fixed

[0.34.1] - 2022-11-11

  • include field metadata when using faust records 218

Added

[0.34.0] - 2022-11-01

  • typing.UnionType support added 212

Added

[0.33.0] - 2022-11-01

  • python 3.11 support added 215

Fixed

[0.32.3] - 2022-10-31

  • Logial types fixed. Update to fastavro 1.7.0 214

Fixed

[0.32.2] - 2022-10-25

  • Nested enums serialization 211

Fixed

[0.32.1] - 2022-10-13

  • Use python slots

Added

[0.32.0] - 2022-10-13

  • Provide data to the fake functionality 205

Fixed

[0.31.3] - 2022-10-07

  • utils refactor. @DataClass decorator included in all code examples. Inheritance example added.

Fixed

[0.31.2] - 2022-10-03

  • UnknownType on serialization with intermediates schemas 201

Fixed

[0.31.1] - 2022-09-30

  • Name collision on splittes schema usage 198.

Added

[0.31.0] - 2022-09-23

  • Micro precision added to time and datetime 197. TimeMicro and DateTimeMicro field types added.

Fixed

[0.30.3] - 2022-08-05

  • typing issues fixed 186

Fixed

[0.30.2] - 2022-08-04

  • Do not use name and type from metadata in avro schema 189

Fixed

[0.30.1] - 2022-08-02

  • Dependency fastavro updated to close 184

Added

[0.30.0] - 2022-05-18

  • Raise InvalidMap exception when a Dict has not string keys
  • Now it is possible to use Meta.schema_doc to set the schema documentation

Fixed

[0.29.2] - 2022-05-06

  • Priority ordering for record field naming fixed 176. alias_nested_items must have priority order
    1. Check if exists an alias_nested_items in parent class or Meta class of own model
    2. Check if the schema_name is present in the Meta class of own model
    3. Use the default class Name (self.type.name)

Fixed

[0.29.1] - 2022-04-15

  • Generate correct schema name 172:
    1. Check if the schema_name is present in the Meta class of own model
    2. Check if exists an alias_nested_items in parent class or Meta class of own model
    3. Use the default class Name (self.type.name)

[0.29.0] - 2022-04-08

Added

  • Created nested schema resolution directly from dictionaries using parse_obj 90

[0.28.1] - 2022-04-05

Fixed

  • alias_nested_items for ListField and DictField 158

[0.28.0] - 2022-03-23

Added

[0.27.2] - 2022-03-23

Fixed

  • Generate wheel package 162

[0.27.1] - 2022-03-22

Fixed

  • bump fastavro from 1.4.9 to 1.4.10
  • bump inflect from 5.3.0 to 5.4.0

[0.27.0] - 2022-02-18

Added

  • types.Enum replaced by enum.Enum 153

[0.26.1] - 2021-12-07

Fixed

  • Use root reference to generate valid schemas in multiple inheritance levels 148

[0.26.0] - 2021-12-06

Added

  • validate method added to AvroModel 144

[0.25.3] - 2021-11-26

Fixed

  • Generate valid avro schemas when inheritance has multiple levels 140

[0.25.2] - 2021-10-09

Fixed

  • api get_fields now returns all rendered fields 134

[0.25.1] - 2021-10-09

Fixed

  • Support for default null decimals added 130

[0.25.0] - 2021-09-27

Added

  • New style type annotations support added (tuple, list and dict) 122
  • Case schemas added 95

Available cases:

Case Example
camelcase 'foo_bar_baz' # => "fooBarBaz"
capitalcase 'foo_bar_baz' # => "Foo_bar_baz"
constcase 'FooBarBaz' # => "_FOO_BAR_BAZ"
lowercase 'FooBarBaz' # => "foobarbaz"
pascalcase 'FooBarBaz' # => "FooBarBaz"
pathcase 'foo_bar_baz' # => "foo/bar/baz"
snakecase 'FooBarBaz' # => "foo_bar_baz"
spinalcase 'FooBarBaz' # => "-foo-bar-baz"
trimcase 'FooBarBaz' # => "FooBarBaz"
uppercase 'FooBarBaz' # => "FOOBARBAZ
alphanumcase 'Foo_123 Bar!' # =>'Foo123Bar'

[0.24.0] - 2021-09-24

Added

  • int and float Avro type support 119

[0.23.2] - 2021-09-04

Fixed

  • Use namespaces on repeated user types with complex types 117

[0.23.1] - 2021-09-03

Fixed

  • Use namespaces for repeated types in arrays and maps 116

[0.23.0] - 2021-08-26

Added

  • Use namespaces for repeated types 115
  • Record names now are generated using class.__name__ instead of class.__name__.lower()_record

[0.22.1] - 2021-07-05

Fixed

[0.22.0] - 2021-07-01

Added

  • Alias for nested items (nested records, arrays and maps) 110
  • Improve type annotations 109

[0.21.0] - 2021-06-17

Added

  • Mitration to GithubCI
  • GenericAlias test in Python 3.9
  • Add Python 3.8 and 3.9 in the CI build
  • Add schema_name attribute to SchemaMetadata
  • Add optional writer_schema in deserialization

Added

[0.20.4] - 2021-05-05

Fixed

  • Unpin install_requires with version ranges 99

[0.20.3] - 2021-04-29

Fixed

  • Improve error message in unknown type: #88
  • dependencies updated

[0.20.2] - 2021-01-27

Fixed

  • avro-json serialization with defaults 89

[0.20.1] - 2020-12-04

Fixed

  • Correct out-of-spec Avro schemas with typing.Union #87

[0.20.0] - 2020-11-24

Added

  • Support for decimal logical type added #86

[0.19.0] - 2020-11-12

Added

[0.18.0] - 2020-10-10

Added

  • Allow multiple references to the same class in record relationships
  • Correct name generation for nested records 81

[0.17.0] - 2020-09-04

Added

  • Fake instances generation added

[0.16.0] - 2020-08-27

Added

  • Deserialization process generate class instances instead a pythn dict
  • In order to get a python dict in the deserialiation process the flag create_instance=False should be used
  • Example with usage with kafka drivers added

[0.15.2] - 2020-08-25

Fixed

  • pytz added as requirement

[0.15.1] - 2020-08-22

Fixed

  • UUID type fixed

[0.15.0] - 2020-08-16

Added

  • replaced null string with avro null (json)
  • code improvement

[0.14.6] - 2020-07-11

Changed

  • SelfReferenceField when is used inn array and maps
  • SelfReferenceField default value fixed

[0.14.5] - 2020-07-09

Changed

  • null should not be included when a default value is defined for premitive types

[0.14.4] - 2020-07-03

Changed

  • typing.Optional union fixed
  • typing.Union with complex types (sequeces and Dict) fixed

[0.14.3] - 2020-06-29

Changed

  • documentation of dataclasses.field descriptor added
  • support for aware datetime added
  • serialization fixed for complex types

[0.14.2] - 2020-06-16

Changed

[0.14.1] - 2020-06-09

Changed

  • bytes type fixed
  • null with Schema Logical Types and Relationships supported

[0.14.0] - 2020-06-01

Added

  • inheritance approach adopted over composition

Removed

  • SchemaGenerator class

[0.13.1] - 2020-05-29

Changed

  • enum type now is represented by types.Enum

[0.13.0] - 2020-05-28

Added

  • json payload generated from class instance

[0.12.0] - 2020-05-25

Added

  • import of SchemaGenetor improved
  • Documentation updated

[0.11.0] - 2020-05-20

Added

  • Serialization/deserialization added

[0.10.0] - 2020-02-16

Added

  • fixed type support

[0.9.0] - 2020-01-24

Added

  • Ability to store metadata into fields
  • More type checks
  • isort package added

[0.8.0] - 2020-01-06

Added

  • Support typing.Optional added

[0.7.4] - 2019-11-21

Changed

  • Union types can be included in sequences types

[0.7.3] - 2019-11-16

Changed

  • Logical types now are allowed in Sequences and Maps

[0.7.2] - 2019-11-07

Changed

  • Union type now allows logical and primitive types

[0.7.1] - 2019-10-21

Changed

  • Support for Sequences and Mappings added
Avro Type Python Type
arrays typing.Sequence, typing.MutableSequence
maps typing.Mapping, typing.MutableMapping

[0.7.0] - 2019-10-23

Added

  • Faust support: Now is possible to generate Avro Schemas from a Faust Records

[0.6.1] - 2019-10-21

Changed

  • Now default values are validated according to the field type

[0.6.0] - 2019-10-17

Added

  • Avro Union support added

[0.5.0] - 2019-10-13

Added

  • Support for some logical types
Avro Type Logical Type Python Type
int date datetime.date
int time-millis datetime.time
long timestamp-millis datetime.datetime
string uuid uuid.uuid4

[0.4.1] - 2019-10-11

Changed

  • Code refactor: Field have been devided into several field classes to make the code more redeable

[0.4.0] - 2019-09-02

Added

  • Recursive Schema Relationships:
    • Recursive OneToOne relationship added
    • Recursive OneToMany relationship added

[0.3.0] - 2019-09-05

Changed

  • Code refator and improvements

[0.3.0] - 2019-09-03

Added

  • Singular name for array's child name
  • Singular name for map's child name
  • Singular name for nested relationship OneToMany

[0.2.0] - 2019-09-02

Added

  • Schema Relationships:
    • OneToOne relationship added
    • OneToMany relationship added (array and map)

[0.1.1] - 2019-09-02

Added

  • Enum, Array and Map fields fixed
  • Schema Parse tests added using fastavro

[0.1.0] - 2019-08-29

Added

  • First release

[master a006020] bump: version 0.57.1 → 0.57.2
2 files changed, 331 insertions(+), 387 deletions(-)