Bake marshmallow schemas based on dataclasses
Project description
marshmallow-recipe
The main goal of this opinionated library is to simplify migration from marshmallow2 to marshmallow3. Also, it helps with:
- Stop writing marshmallow schemas completely: it generates them from dataclass.
- Using different naming cases(camel and capital camel cases are supported).
- Utilizing best practises on fields configuration.
import dataclasses
import marshmallow_recipe as mr
import uuid
@dataclasses.dataclass(frozen=True)
class Transaction:
id: uuid.UUID
created_at: datetime.datetime
processed_at: datetime.datetime | None
amount: decimal.Decimal
transaction = Transaction(
id=uuid.uuid4(),
created_at=datetime.datetime.utcnow(),
processed_at=None,
amount=decimal.Decimal(42),
)
# dumps the transaction to a dict
raw = mr.dump(transaction)
# loads a transaction from the dict
mr.load(Transaction, raw)
# provides a generated marshmallow schema for dataclass
mr.schema(Transaction)
v0.0.10(2022-06-15)
v0.0.9(2022-04-26)
v0.0.8(2022-03-26)
v0.0.7(2022-03-20)
v0.0.6(2022-03-20)
v0.0.5(2022-03-01)
- Validate before dump for marshmallow3
- Move many to schema
- Fix default naming case
- Fix unhashable type: 'set' error
v0.0.4(2022-02-21)
- Support decimal field
- Support metadata
- Support int field
- Support float field
- Support uuid field
- Support list and dict
- Support marshmallow3
- Support datetime and date
- Unify datetime.tzinfo behaviour
v0.0.3 (2022-02-14)
v0.0.2 (2022-02-13)
v0.0.1 (2022-02-13)
- A first version
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
Built Distribution
Close
Hashes for marshmallow-recipe-0.0.10.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 505550c3a2f919020bcab402da2a116e3e06c2f9967c3302c3dcc3212635b092 |
|
MD5 | 27caac82ed0acb12e7e06a2e6b92e2de |
|
BLAKE2b-256 | 6267008b2ca2a216b168c2dd4fdb62545f7556ad2968849158fffd3cded9514c |
Close
Hashes for marshmallow_recipe-0.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f212f17a33157dcac8ab8eb4e3c1e7840bc3b03a7612a47f1fe548e1ab21182 |
|
MD5 | 65aab46b40655901f56cd1c71037c12a |
|
BLAKE2b-256 | d3a74a43eb2c225d510e87cdec16e3de342b4f2c940674f4c43dc42213199041 |