Skip to main content

Some extra sweets for marshmallow.

Project description

Some extra sweets for marshmallow.

version pipeline status coverage report

Examples

Use annotations for schema description.

class Response(Schema):
    a: float
    b: Optional[dt.datetime]

When annotations not enough

class Response(Schema):
    c: str = fields.Email()

And IDE autocomplete cause now your data is instances of relevant classes

class User(Schema):
    name: str

class Response(Schema):
    user: User

response: Response = Response.load({"user": {"name": "Vasya Pupkin"}})
response.user.name

Mapping rules

Basic Types

annotation marshmallow field
str fields.String
float fields.Float
bool fields.Boolean
int fields.Integer
uuid.UUID fields.UUID
decimal.Decimal fields.Decimal
dt.datetime fields.DateTime
dt.time fields.Time
dt.date fields.Date
dt.timedelta fields.TimeDelta

All fields will be required for make it optional use typing.Optional[X]

Many

annotation marshmallow field
list fields.Raw(many=True)
typing.List[float] fields.List(fields.Float())

Nested

annotation marshmallow field
NestedSchema fields.Nested(NestedSchema, required=True)
typing.Optional[NestedSchema] fields.Nested(NestedSchema, required=True)
typing.List[NestedSchema] fields.Nested(NestedSchema, required=True, many=True)

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
marshmallow-jam-1.0.tar.gz (5.4 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page