Package for serializing python object & dataclasses
Project description
Serializer
A serialization module for python objects
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
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.
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 |
Close
Hashes for py_serializer-0.9.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e751f43f882cfcffe50ae0209fe684c2a059c6e9e1771825342cb49796d04f38 |
|
MD5 | 278bff25dab3d0bc98dea11006b4ff26 |
|
BLAKE2-256 | 6a7f0e2f677a90eeec36d538d6eaee5f766b83905a624a78c7f1e119213a6ad1 |