| docs | |
|---|---|
| code | |
| tests | |
| package |
Desert generates serialization schemas for dataclasses and attrs classes. Writing
code that's DRY ("don't repeat yourself") helps avoid bugs and improve readability. Desert
helps you write code that's DRY.
pip install desert
or with Poetry
poetry add desert
A simple example models two Person objects in a Car.
fromdataclassesimportdataclass# Or using attrs# from attr import dataclassfromtypingimportListimportdesert@dataclassclassPerson:
name: strage: int@dataclassclassCar:
passengers: List[Person]
# Load some simple data types.data= {'passengers': [{'name': 'Alice', 'age': 21}, {'name': 'Bob', 'age': 22}]}
# Create a schema for the Car class.schema=desert.schema(Car)
# Load the data.car=schema.load(data)
assertcar==Car(passengers=[Person(name='Alice', age=21), Person(name='Bob', age=22)])https://desert.readthedocs.io/
String annotations and forward references inside of functions are not supported.
- This package began as an extension of marshmallow-dataclass to add support for attrs.