Skip to main content

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:

  1. Stop writing marshmallow schemas completely: it generates them from dataclass.
  2. Using different naming cases(camel and capital camel cases are supported).
  3. 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)

v0.0.4(2022-02-21)

v0.0.3 (2022-02-14)

v0.0.2 (2022-02-13)

v0.0.1 (2022-02-13)

  • A first version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

marshmallow-recipe-0.0.10.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

marshmallow_recipe-0.0.10-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file marshmallow-recipe-0.0.10.tar.gz.

File metadata

  • Download URL: marshmallow-recipe-0.0.10.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.2

File hashes

Hashes for marshmallow-recipe-0.0.10.tar.gz
Algorithm Hash digest
SHA256 505550c3a2f919020bcab402da2a116e3e06c2f9967c3302c3dcc3212635b092
MD5 27caac82ed0acb12e7e06a2e6b92e2de
BLAKE2b-256 6267008b2ca2a216b168c2dd4fdb62545f7556ad2968849158fffd3cded9514c

See more details on using hashes here.

File details

Details for the file marshmallow_recipe-0.0.10-py3-none-any.whl.

File metadata

File hashes

Hashes for marshmallow_recipe-0.0.10-py3-none-any.whl
Algorithm Hash digest
SHA256 5f212f17a33157dcac8ab8eb4e3c1e7840bc3b03a7612a47f1fe548e1ab21182
MD5 65aab46b40655901f56cd1c71037c12a
BLAKE2b-256 d3a74a43eb2c225d510e87cdec16e3de342b4f2c940674f4c43dc42213199041

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page