Marshmallow and Python 3 annotations
Project description
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: PersonSchema):
print 'Hello {} {}'.format(person['firstname'], person['lastname'])
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
annotype-0.1.2.tar.gz
(3.7 kB
view details)
File details
Details for the file annotype-0.1.2.tar.gz
.
File metadata
- Download URL: annotype-0.1.2.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc048f7e16e1d7d49c8a70f341082fb74d5e72c67d86e8784e1a11f36b1dbf50 |
|
MD5 | b003f2d22f691aab79fa77f64f5b60d8 |
|
BLAKE2b-256 | 05c6957e4a997db947f0e1b122159a446781cd2b2bdc21fdbd3a03567e832742 |