anserializer
A module for serializing and deserializing complex data structures to/from json. It allows the user to (de)serialize a complex dictionary/list structure in one go by defining serializers/deserializers for arbitrary sets of classes.
Tested with python3.
Serializer can be utilized either as instantiated or non-instantiated.
Install
pip3 install anserializer
Examples
Instantiated example
from anserializer import Serializer, DatetimeSerializer, ObjectSerializer
class MyObjectClass(object):
pass
# instantiate the serializer
s = s = Serializer([ DatetimeSerializer(), ObjectSerializer(MyObjectClass) ])
# create object
o = MyObjectClass()
print(o)
# serialize object
x = s.get_serialized(o)
print(x)
# deserialize object
o = s.get_deserialized(x)
print(o)
Non-instantiated example
from anserializer import Serializer, DatetimeSerializer, ObjectSerializer
class MyObjectClass(object):
pass
# put our list of serializer classes available for use into a variable
serializers = [ DatetimeSerializer(), ObjectSerializer(MyObjectClass) ]
# create object
o = MyObjectClass()
print(o)
# serialize object
x = Serializer.serialize(o, serializers)
print(x)
# deserialize object
o = Serializer.deserialize(x, serializers)
print(o)
Allow children to be serialized by a serializer defined for their ancestor
from anserializer import Serializer, DatetimeSerializer, ObjectSerializer
class MyObjectClass(object):
pass
# instantiate the serializer
s = s = Serializer([ DatetimeSerializer(), ObjectSerializer(object) ], serialize_children=True)
# create object
o = MyObjectClass()
print(o)
# serialize object
x = s.get_serialized(o)
print(x)
Use your own serializer
from anserializer import Serializer, DatetimeSerializer, ObjectSerializer, BaseSerializer
class MyObjectClass(object):
pass
# create your serializer
class MySerializer(BaseSerializer):
def __init__(self):
super().__init__([MyObjectClass], '^!MyObjectClass\(\)$')
def serialize(self, obj):
# do the magic and return a serialized element
return { '!MyObjectClass()': {
# insert object data here
}
}
def deserialize(self, serialized_obj):
# do the magic and return an object with the data given in serialized format
kwargs = {}
return MyObjectClass(**kwargs)
# instantiate the serializer
s = Serializer([ DatetimeSerializer(), MySerializer(), ObjectSerializer(object) ])
# create object
o = MyObjectClass()
print(o)
# serialize object
x = s.get_serialized(o)
print(x)
Release files for anserializer 1.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| anserializer-1.2.2.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| anserializer-1.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.1 kB
Release files / anserializer-1.2.2.tar.gz
| Download URL | anserializer-1.2.2.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6eed8c351a3f683b18915dac24436c7356ab59b14578c791f7461fb238c9e29e
|
|
BLAKE2b-256 checksum How to use checksums |
32a3c69d6097e8592a5ca5811dc5e10cd54551d08518b18e2ddc058370fb0574
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.9.10
|
Release files / anserializer-1.2.2-py3-none-any.whl
| Download URL | anserializer-1.2.2-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
057b8f07a6d17c5d180c32b43cddfaba140ac1b44524054029a8731182fc6025
|
|
BLAKE2b-256 checksum How to use checksums |
5c2103f2cc1e03e5530639ba6341fbd162899a724cba281c2dd73297a2f20ec8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.0 CPython/3.9.10
|