Some extra sweets for marshmallow.
Project description
Some extra sweets for marshmallow.
Examples
Use annotations for schema description.
from jam import Schema
class Bar(Schema):
baz: str
class Foo(Schema):
bar: Bar
foo: Foo = Foo().load({"bar": {"baz": "quux"}})
assert foo.bar.baz == "quux"
When annotations not enough
class Foo(Schema):
bar: str = fields.Email()
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
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
Hashes for marshmallow_jam-1.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf05569cebbb4321ca46a4c8ee9057163248a5ae0fa4bd3bb0641d39dc0d9812 |
|
MD5 | df8e7977d9c9b4ebaa6f70ff28a78046 |
|
BLAKE2b-256 | 6c5e3e13a138c69b46297d58feddb9fae3da61ac6ca3ed67f4030c2a15d59698 |