0.57.2
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
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
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
0.53.1 (2023-11-15)
Fix
- simplify faker stub code (#471)
0.53.0 (2023-11-03)
Feat
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
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
0.48.0 (2023-09-11)
BREAKING CHANGE
- drop python 3.7 support (#414)
0.47.3 (2023-09-06)
Fix
0.47.2 (2023-08-30)
Fix
0.47.1 (2023-08-30)
Fix
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
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
0.44.0 (2023-07-06)
Feat
- pydantic fields added. Closes #328
0.43.10 (2023-06-29)
Fix
0.43.9 (2023-06-19)
Fix
- pydantic nested schema serialization (#346)
0.43.8 (2023-06-15)
Fix
0.43.7 (2023-06-13)
Fix
- Fix typo in kwargs typehint for AvroBaseModel.fake (#340)
0.43.6 (2023-05-30)
Fix
- ci process (#336)
0.43.5 (2023-05-30)
Fix
- update dependencies and bump version (#334)
0.43.4 (2023-05-26)
Fix
0.43.3 (2023-05-25)
Fix
0.43.2 (2023-05-25)
Fix
0.43.1 (2023-05-19)
Fix
0.43.0 (2023-04-26)
Feat
0.42.2 (2023-04-24)
Fix
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
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
0.39.2 (2023-03-28)
Fix
0.39.1 (2023-03-27)
Fix
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
Fixed
[0.37.4] - 2023-03-06
Fixed
[0.37.3] - 2023-03-06
- Dependencies and documentation (#252)
Fixed
[0.37.2] - 2023-03-02
- Use
UUID
type instead of functionuuid4
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
Fixed
[0.36.3] - 2023-02-16
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 customDecimal
as default value when generatepydantic
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 usingfaust
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
andDateTimeMicro
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 aDict
has notstring
keys - Now it is possible to use
Meta.schema_doc
to set theschema documentation
Fixed
[0.29.2] - 2022-05-06
- Priority ordering for record field naming fixed 176.
alias_nested_items
must have priority order- Check if exists an alias_nested_items in parent class or Meta class of own model
- Check if the schema_name is present in the Meta class of own model
- Use the default class Name (self.type.name)
Fixed
[0.29.1] - 2022-04-15
- Generate correct schema name 172:
- Check if the schema_name is present in the Meta class of own model
- Check if exists an alias_nested_items in parent class or Meta class of own model
- 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
forListField
andDictField
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 byenum.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 toAvroModel
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
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
andfloat
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 ofclass.__name__.lower()_record
[0.22.1] - 2021-07-05
Fixed
- Cleanup 112
[0.22.0] - 2021-07-01
Added
[0.21.0] - 2021-06-17
Added
- Mitration to GithubCI
GenericAlias
test in Python3.9
- Add Python
3.8
and3.9
in theCI build
- Add
schema_name
attribute toSchemaMetadata
- 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
- Default Avro type for Python ints has been changed from
int
tolong
andfloat
todouble
83. Reason:- Integers have unlimited precision
- Floating point numbers are usually implemented using
double
in C - almost all platforms map Python floats to IEEE-754
double
precision
[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 withavro null
(json) - code improvement
[0.14.6] - 2020-07-11
Changed
SelfReferenceField
when is used innarray
andmaps
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 fixedtyping.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
to_json
method fixed. issue 47
[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 bytypes.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(-)