marshmallow-annotations allows you to create marshmallow schema from classes with annotations on them
from marshmallow_annotations import AnnotationSchema
from .music import Album, Artist
class AlbumScheme(AnnotationSchema):
class Meta:
target = Album
register_as_scheme = True
class ArtistScheme(AnnotationSchema):
class Meta:
target = Artist
register_as_scheme = True
scheme = ArtistScheme()
scheme.dump(
Artist(
id=1, name="Abominable Putridity",
albums=[
Album(
id=1,
name="The Anomalies of Artificial Origin"
)
]
)
)
# {
# "albums": [
# {
# "id": 1,
# "name": "The Anomalies of Artificial Origin"
# }
# ],
# "id": 1,
# "name": "Abominable Putridity"
# }
Installation
marshmallow-annotations is available on pypi and installable with:
pip install marshmallow-annotations
marshmallow-annotations supports Python 3.6+ and marshmallow 2.x.x
Why?
Keeping up with entity definitions, ORM mappings and schema shapes can be a huge pain the butt. If you change one thing, you need to change three things.
Instead, marshmallow-annotations wants to drive schema shapes from your entity defintions (with a little help from you of course).
More Information
For more information, please visit the documentation.
Found a bug, have a question, or want to request a feature? Here is our issue tracker.
Need the source code? Here is the repository
Release files for marshmallow-annotations 2.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| marshmallow-annotations-2.4.0.tar.gz | 11.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| marshmallow_annotations-2.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.8 kB
Release files / marshmallow-annotations-2.4.0.tar.gz
| Download URL | marshmallow-annotations-2.4.0.tar.gz |
|---|---|
| Size | 11.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ff9e67c3e68c3bf84c90b8fdc9c04f2ac7b5c5d36083526a31909de0b3a9689d
|
|
BLAKE2b-256 checksum How to use checksums |
00ee684b4dae99a42381debde54fd69b527754eef5579e2c8ec64e75e32aee4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
|
Release files / marshmallow_annotations-2.4.0-py3-none-any.whl
| Download URL | marshmallow_annotations-2.4.0-py3-none-any.whl |
|---|---|
| Size | 13.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
caa248df7652f9cfa69d5cc74439abc1835ccb8c78da25a6c11b8ae4098dcd85
|
|
BLAKE2b-256 checksum How to use checksums |
23652343d9996c6fe0e35509b09b5c0d54523ef4c8f079c524e299e34c15af38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
|