Skip to content
This repository has been archived by the owner on Jan 16, 2021. It is now read-only.

notpushkin/beerializer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beerializer

Deprecated: this project haven't received the love it needs for a few years now. I kindly suggest using Pydantic for new projects (and for backend development, check out the awesome FastAPI framework!).

Documentation

PyPI

A fork of awesome R2DTO by nickswebsite.

Beerializer provides easy interface for transformation and validation of arbitrary python objects into DTOs suitable for receiving from and delivering to other services.

Quick Start

Let's start by creating a simple model class:

class Simpson(object):
    def __init__(self):
        self.first_name = ""
        self.last_name = ""

    def __str__(self):
        return self.first_name + " " + self.last_name

To create a serializer, we need to map attributes to fields of our DTO:

class SimpsonSerializer(Serializer):
    class Meta:
        model = Simpson

    first_name = fields.StringField(name="firstName")
    last_name = fields.StringField(name="lastName")

When you get a payload that requires one of these serializers, call Serializer.load(data).

>>> data = {
...     "firstName": "Homer",
...     "lastName": "Simpson",
... }
>>> s = SimpsonSerializer.load(data)
>>> s
<class '__main__.Simpson'>
>>> str(s)
'Homer Simpson'

To go the other way. Pass the object you want to transfer into the dump method:

>>> homer = Simpson()
>>> homer.first_name = "Homer"
>>> homer.last_name = "Simpson"
>>> s = SimpsonSerializer.dump(homer)
>>> s
{'firstName': 'Homer', 'lastName': 'Simpson'}

Ready for the journey? Install it, then check out the docs:

$ pip install -U beerializer

About

DEPRECATED · Provides easy interface for serialization of arbitrary Python objects into dicts

Resources

License

Stars

Watchers

Forks

Languages

  • Python 100.0%