Skip to main content

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

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)

Source distribution for marshmallow-annotations 2.4.0
File Size Uploaded
marshmallow-annotations-2.4.0.tar.gz 11.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for marshmallow-annotations 2.4.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

2.4.0 This release

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page