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
Filename, size py-serializer-0.9.6.tar.gz (4.8 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page