Skip to main content

Package for serializing python object & dataclasses

Project description

Serializer

A serialization module for python objects

Test Upload Python Package PyPI version

Quickstart

pip install py-serializer

from typing import List
from serializer import serializable

@serializable
class Role:
    role_type: str
    attributes: List[str]

@serializable
class Person:
    name: str
    age: int
    height: float
    weight: float
    address: str
    role: List[Role]


p = Person(
    name="Paul", age=25, height=1.70, weight=83.5, address="earth",
    role=[Role(role_type='human', attributes=['speak', 'eat', 'sleep'])]
)

print(p.to_dict())
{
    'name': 'Paul', 
    'age': 25, 
    'height': 1.7,
    'weight': 83.5, 
    'address': 'earth', 
    'role': [
          {
            'role_type': 'human',
            'attributes': ['speak', 'eat', 'sleep']
          }
    ]
}

Serializable wrapper extends dataclass so you can treat it like a normal dataclass.

Mixin

It is possible to have a class extend abstract class SerializableMixin

from serializer import SerializableMixin, serializer

class Test(SerializableMixin):

    def __init__(self, name: str):
        self.name = name

    def __serialize__(self):
        return dict(name=serializer(self.name))

>> Test(name='Paul').to_dict()

{ 'name': 'Paul' }

For object to be seriazable they only need to implement a __serialize__ method.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for py-serializer, version 0.9.6
Filename, size File type Python version Upload date Hashes
Filename, size py_serializer-0.9.6-py3-none-any.whl (6.6 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size py-serializer-0.9.6.tar.gz (4.8 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page