NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #3714 most downloaded on PyPI
Generate Avro Schemas from Python classes. Serialize/Deserialize python instances with avro schemas
Last release 4 days ago
30 Sep 2026
Release timing varies
gaps range from 1 weeks to 4 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
225 releases · first in 2019
TupleField added in order to deserialize typing.Tuple as tuples rather than list. Closes #291
[master da2a328] bump: version 0.41.2 → 0.42.0 2 files changed, 8 insertions(+), 2 deletions(-)
[master e368977] bump: version 0.41.1 → 0.41.2 2 files changed, 8 insertions(+), 2 deletions(-)
[master e368977] bump: version 0.41.1 → 0.41.2 2 files changed, 8 insertions(+), 2 deletions(-)
One column per quarter.
dependencies updated. Model generator documentation updated
[master 31cc6de] bump: version 0.41.0 → 0.41.1 2 files changed, 8 insertions(+), 2 deletions(-)
types.Decimal has been replaced by condecimal (Annotated[decimal.Decimal]). Closes #260
[master cf36c3a] bump: version 0.40.0 → 0.41.0 2 files changed, 26 insertions(+), 20 deletions(-)
correctly generate enum default values
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
[master 1ee43d3] bump: version 0.39.3 → 0.40.0 2 files changed, 27 insertions(+), 2 deletions(-)
include matadata when using pydantic.Field with AvroBaseMode. Closes #263
[master 855bd7f] bump: version 0.39.2 → 0.39.3 2 files changed, 8 insertions(+), 2 deletions(-)
use extras in a correct way. Closes #272
extras in a correct way. Closes #272 (#273)[master 30ad784] bump: version 0.39.1 → 0.39.2 2 files changed, 8 insertions(+), 2 deletions(-)
dependencies updated. Closes #270
[master d12da54] bump: version 0.39.0 → 0.39.1 2 files changed, 8 insertions(+), 2 deletions(-)
support for typing.Annotated added
[master 95eb91e] bump: version 0.38.1 → 0.39.0 2 files changed, 8 insertions(+), 2 deletions(-)
[master b3b3461] bump: version 0.38.0 → 0.38.1 2 files changed, 8 insertions(+), 2 deletions(-)
[master b3b3461] bump: version 0.38.0 → 0.38.1 2 files changed, 8 insertions(+), 2 deletions(-)
[master 3024363] bump: version 0.37.5 → 0.38.0 2 files changed, 4 insertions(+), 2 deletions(-)
[master 3024363] bump: version 0.37.5 → 0.38.0 2 files changed, 4 insertions(+), 2 deletions(-)
Avro schema generation should always return the same result. Close #254
Exception NameSpaceRequiredExceptionq removed. Close #246
NameSpaceRequiredExceptionq removed. Close #246 (#253)- Dependencies and documentation
Use UUID type instead of function uuid4 on model generation
UUID type instead of function uuid4 on model generation (#251)Use pydantic UUID4 when generating pydantic models.
pydantic UUID4 when generating pydantic models. (#247)Dacite custom config added to class Meta. Closes #242
ListField fake generation when it contains Optional. Closes #232
Do not persist the schema when the parent class is not an AvroModel. Closes #241
Model generator with only decimal fields.
pydantic.condecimal instead of the custom Decimal as default value when generate pydantic modelsGenerate a Python module from multiple schemas 235
Convert python models from avsc schemas 227
avsc schemas 227feat: logicalTypes model generation
feat: logical types model generator
fix: field order, pascal case for class names
fix: add class Meta support
Co-authored-by: Marcos Schroh marcos.schroh@kpn.com
Use namespaces when an enum is used multiple times in a class. Cases should not apply to enum names. Closes 221
schema generation with optional enum when using pydantic. Closes #229
fake generation with optional user defined types 228
fake generation with optional user defined types 228
Decimal fields serialization 222
Decimal fields serialization 222pydantic fake and nested json serialization 219
fake and nested json serialization 219include field metadata when using faust records 218
metadata when using faust records 218typing.UnionType support added 212
typing.UnionType support added 212- python 3.11 support added 215
Logical types fixed. Update to fastavro 1.7.0 214
fastavro 1.7.0 214- Nested enums serialization 211
### Perf - use python __slots__
Provide data to the fake functionality 205
utils refactor. dataclass decorator included in all code examples. Inheritance example added.
dataclass decorator included in all code examples. Inheritance example added.UnknownType on serialization with intermediates schemas 201
Name collision on splittes schema usage 198.
Micro precision added to time and datetime 197. TimeMicro and DateTimeMicro field types added.
TimeMicro and DateTimeMicro field types added.- typing issues fixed 186
Do not use name and type from metadata in avro schema 189
fastavro dependency updated. Close #184
Raise InvalidMap exception when a Dict has not string keys
InvalidMap exception when a Dict has not string keysMeta.schema_doc to set the schema documentationPriority ordering for record field naming fixed 176. alias_nested_items must have priority order
alias_nested_items must have priority order
Generate correct schema name 172:
Created nested schema resolution directly from dictionaries using parse_obj 90
parse_obj 90alias_nested_items for ListField and DictField 158
alias_nested_items for ListField and DictField 158- pydantic support added 163
- Generate wheel package 162
bump fastavro from 1.4.9 to 1.4.10
fastavro from 1.4.9 to 1.4.10inflect from 5.3.0 to 5.4.0types.Enum replaced by enum.Enum 153
types.Enum replaced by enum.Enum 153Use root reference to generate valid schemas in multiple inheritance levels 148
validate method added to AvroModel 144
validate method added to AvroModel 144Generate valid avro schemas when inheritance has multiple levels 140
api get_fields now returns all rendered fields 134
get_fields now returns all rendered fields 134Support for default null decimals added 130
null decimals added 130New style type annotations support added (tuple, list and dict) 122
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' |
int and float Avro type support 119
int and float Avro type support 119Use namespaces on repeated user types with complex types 117
namespaces on repeated user types with complex types 117Use namespaces for repeated types in arrays and maps 116
namespaces for repeated types in arrays and maps 116Use namespaces for repeated types 115
namespaces for repeated types 115class.__name__ instead of class.__name__.lower()_recordYour coding agent can read these notes before it upgrades. Set up the MCP server →