annotype

Marshmallow and Python 3 annotations


Keywords
annotation, marshmallow, type
License
MIT
Install
pip install annotype==0.1.2

Documentation

Annotype: Python 3 annotations and marshmallow

Annotype combines Python 3 annotations and Marshmallow for powerful validation of function arguments.

from annotype import annotyped
from marshmallow import (
    Schema,
    fields
)


class PersonSchema(Schema):
    firstname = fields.Str(required=True)
    lastname = fields.Str(required=True)

@annotyped()
def salute(person: SampleSchema):
    print 'Hello {} {}'.format(person['firstname'], person['lastnamename'])

person = dict(firstname='John')

# This will raise a ValidationError because lastname is not defined
salute(person)

@annotyped()
def welcome(firstname: fields.Str(), lastname: fields.Str()):
    print 'Welcome {} {}'.format(firstname, lastname)

# This will also raise a ValidationError because lastname is not a string
welcome('Jane', 1)

In short, annotype allows you to validate data using the powerful marshmallow library and the Python 3 annotations.

Get It Now

$ pip install -U annotype

Documentation

See marshmallow documentation available here http://marshmallow.readthedocs.io/ .

Requirements

  • Python >= 3.4
  • marshmallow >= 3.0.0

License

MIT licensed. See the bundled LICENSE file for more details.