Skip to content

MacHu-GWU/attrsmallow-project

Repository files navigation

https://travis-ci.org/MacHu-GWU/attrsmallow-project.svg?branch=master https://img.shields.io/badge/Star_Me_on_GitHub!--None.svg?style=social

Welcome to attrsmallow Documentation

attrs is a powerful library helps you to write concise and correct classes. And marshmallow is a powerful framework to write serializer/deserializer and data validator for complex object.

attrsmallow is a glue layer to taking advantage from them.

Quick Links

Usage

A blog example:

import attr
import marshmallow
from attrsmallow import BaseModel, BaseSchema

@attr.s
class User(BaseModel):
    id = attr.ib()
    name = attr.ib()


class UserSchema(BaseSchema):
    id = fields.Integer(required=True)
    name = fields.String(required=True)

    Model = User


User.Schema = UserSchema


@attr.s
class Post(BaseModel):
    id = attr.ib()
    title = attr.ib()
    user = attr.ib()


class PostSchema(BaseSchema):
    id = fields.Integer()
    title = fields.String()
    user = fields.Nested(UserSchema)

    Model = Post


Post.Schema = PostSchema

post_data = dict(id=1, title="Hello World!", user=dict(id=1, name="Alice"))
post = Post.load(post_data)

Install

attrsmallow is released on PyPI, so all you need is:

$ pip install attrsmallow

To upgrade to latest version:

$ pip install --upgrade attrsmallow

About

Integration of attrs and marshmallow.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published