Dataclasses Avro Schema Generator
Generate Avro Schemas from a Python class
Requirements:
python 3.7+
Installation
pip install dataclasses-avroschema
Doocumentaion
https://marcosschroh.github.io/dataclasses-avroschema/
Usage:
from dataclasses_avroschema.schema_generator import SchemaGenerator
class User:
"An User"
name: str
age: int
pets: typing.List[str]
accounts: typing.Dict[str, int]
favorite_colors: typing.Tuple[str] = ("BLUE", "YELLOW", "GREEN")
country: str = "Argentina"
address: str = None
SchemaGenerator(User).avro_schema()
'{
"type": "record",
"name": "User",
"doc": "An User",
"fields": [
{"name": "name", "type": "string"},
{"name": "age", "type": "int"},
{"name": "pets", "type": "array", "items": "string"},
{"name": "accounts", "type": "map", "values": "int"},
{"name": "favorite_colors", "type": "enum", "symbols": ["BLUE", "YELLOW", "GREEN"]},
{"name": "country", "type": ["string", "null"], "default": "Argentina"},
{"name": "address", "type": ["null", "string"], "default": "null"}
]
}'
Features:
- Primitive types: int, long, float, boolean, string and null support
- Complex types: enum, array, map, unions and records support
- Logical Types: date, time, datetime, uuid support
- Schema relations (oneToOne, oneToMany)
- Recursive Schemas
- Generate Avro Schemas from
faust.Record
Release files for dataclasses-avroschema 0.7.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dataclasses-avroschema-0.7.4.tar.gz | 10.8 kB | Details |
Release files / dataclasses-avroschema-0.7.4.tar.gz
| Download URL | dataclasses-avroschema-0.7.4.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
679c8e4ccfe2c5c01f4170c0e397bbc72ac0fb8e4493972a1cf36273e8d7172b
|
|
BLAKE2b-256 checksum How to use checksums |
7f7e59756856c3d6c7ac2ae894b4a13175cbd4eedfd4db04cf60d0aca45f4b29
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.0
|