marshmallow

by marshmallow-code

marshmallow-code /marshmallow

A lightweight library for converting complex objects to and from simple Python datatypes.

5.0K Stars 530 Forks Last release: Not found MIT License 2.9K Commits 152 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


marshmallow: simplified object serialization


.. image:: https://badgen.net/pypi/v/marshmallow :target: https://pypi.org/project/marshmallow/ :alt: Latest version

.. image:: https://dev.azure.com/sloria/sloria/apis/build/status/marshmallow-code.marshmallow?branchName=dev :target: https://dev.azure.com/sloria/sloria/build/latest?definitionId=5&branchName=dev :alt: Build status

.. image:: https://readthedocs.org/projects/marshmallow/badge/ :target: https://marshmallow.readthedocs.io/ :alt: Documentation

.. image:: https://badgen.net/badge/code%20style/black/000 :target: https://github.com/ambv/black :alt: code style: black

marshmallow is an ORM/ODM/framework-agnostic library for converting complex datatypes, such as objects, to and from native Python datatypes.

.. code-block:: python

from datetime import date
from pprint import pprint

from marshmallow import Schema, fields

class ArtistSchema(Schema): name = fields.Str()

class AlbumSchema(Schema): title = fields.Str() release_date = fields.Date() artist = fields.Nested(ArtistSchema())

bowie = dict(name="David Bowie") album = dict(artist=bowie, title="Hunky Dory", release_date=date(1971, 12, 17))

schema = AlbumSchema() result = schema.dump(album) pprint(result, indent=2)

{ 'artist': {'name': 'David Bowie'},

'release_date': '1971-12-17',

'title': 'Hunky Dory'}

In short, marshmallow schemas can be used to:

  • Validate input data.
  • Deserialize input data to app-level objects.
  • Serialize app-level objects to primitive Python types. The serialized objects can then be rendered to standard formats such as JSON for use in an HTTP API.

Get It Now

::

$ pip install -U marshmallow

Documentation

Full documentation is available at https://marshmallow.readthedocs.io/ .

Requirements

  • Python >= 3.5

Ecosystem

A list of marshmallow-related libraries can be found at the GitHub wiki here:

https://github.com/marshmallow-code/marshmallow/wiki/Ecosystem

Credits

Contributors

This project exists thanks to all the people who contribute.

You're highly encouraged to participate in marshmallow's development. Check out the

Contributing Guidelines 
_ to see how you can help.

Thank you to all who have already contributed to marshmallow!

.. image:: https://opencollective.com/marshmallow/contributors.svg?width=890&button=false :target: https://marshmallow.readthedocs.io/en/latest/authors.html :alt: Contributors

Backers

If you find marshmallow useful, please consider supporting the team with a donation. Your donation helps move marshmallow forward.

Thank you to all our backers! [

Become a backer
_]

.. _

Become a backer
: https://opencollective.com/marshmallow#backer

.. image:: https://opencollective.com/marshmallow/backers.svg?width=890 :target: https://opencollective.com/marshmallow#backers :alt: Backers

Sponsors

Support this project by becoming a sponsor (or ask your company to support this project by becoming a sponsor). Your logo will show up here with a link to your website. [

Become a sponsor
_]

.. _

Become a sponsor
: https://opencollective.com/marshmallow#sponsor

.. image:: https://opencollective.com/marshmallow/sponsor/0/avatar.svg :target: https://opencollective.com/marshmallow/sponsor/0/website :alt: Sponsors

.. image:: https://opencollective.com/static/images/become_sponsor.svg :target: https://opencollective.com/marshmallow#sponsor :alt: Become a sponsor

Professional Support

Professionally-supported marshmallow is now available through the

Tidelift Subscription 
_.

Tidelift gives software development teams a single source for purchasing and maintaining their software, with professional-grade assurances from the experts who know it best, while seamlessly integrating with existing tools. [

Get professional support
_]

..

Get professional support
: https://tidelift.com/subscription/pkg/pypi-marshmallow?utmsource=marshmallow&utmmedium=referral&utmcampaign=github

.. image:: https://user-images.githubusercontent.com/2379650/45126032-50b69880-b13f-11e8-9c2c-abd16c433495.png :target: https://tidelift.com/subscription/pkg/pypi-marshmallow?utmsource=pypi-marshmallow&utmmedium=readme :alt: Get supported marshmallow with Tidelift

Security Contact Information

To report a security vulnerability, please use the

Tidelift security contact 
_. Tidelift will coordinate the fix and disclosure.

Project Links

  • Docs: https://marshmallow.readthedocs.io/
  • Changelog: https://marshmallow.readthedocs.io/en/latest/changelog.html
  • Contributing Guidelines: https://marshmallow.readthedocs.io/en/latest/contributing.html
  • PyPI: https://pypi.python.org/pypi/marshmallow
  • Issues: https://github.com/marshmallow-code/marshmallow/issues
  • Donate: https://opencollective.com/marshmallow

License

MIT licensed. See the bundled

LICENSE 
_ file for more details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.