Marrying marshmallow and annotations
Project description
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
Note
If you are install marshmallow-annotations outside of a virtual environment, consider installing with pip install --user marshmallow-annotations rather than using sudo or adminstrator privileges to avoid installing it into your system Python.
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
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
Built Distribution
Hashes for marshmallow-annotations-2.4.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff9e67c3e68c3bf84c90b8fdc9c04f2ac7b5c5d36083526a31909de0b3a9689d |
|
MD5 | f8e63370a96de12f09d5d8f9b0e8bce1 |
|
BLAKE2-256 | 00ee684b4dae99a42381debde54fd69b527754eef5579e2c8ec64e75e32aee4d |
Hashes for marshmallow_annotations-2.4.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | caa248df7652f9cfa69d5cc74439abc1835ccb8c78da25a6c11b8ae4098dcd85 |
|
MD5 | a24afccb0cb2b5d9645b165d4dd00711 |
|
BLAKE2-256 | 23652343d9996c6fe0e35509b09b5c0d54523ef4c8f079c524e299e34c15af38 |