Generate Avro Schemas from a Python class
Project description
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:
- int, long, float, boolean, string and null support
- enum, array, map and records support
- Schema relations (oneToOne, oneToMany)
- Recursive Schemas
- Support for Avro Logical Types (Date, Time, Datetime, UUID)
- Decimal Logical Types
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Close
Hashes for dataclasses-avroschema-0.5.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | e06496d1686afe00bf394b7c0d258c4fee87158828984999a6349a64b1b976bb |
|
MD5 | 647555a450a1a2f47fafdee5fc148593 |
|
BLAKE2b-256 | 7753149a5d5da88840a86ef1428c94d8dc379bfdf2e196a1576ecd4555398a51 |