jsonabler 0.2.2

Last updated:

0 purchases

jsonabler 0.2.2 Image
jsonabler 0.2.2 Images
Add to Cart

Description:

jsonabler 0.2.2

jsonabler
Python package for making your classes easy encodable to JSON string and vice-versa.
Getting started
Requirements

Python >= 3.8

Installation
pip install jsonabler

Usage
Making a Jsonable
Make your class extends the Jsonable interface and implements get_jsonable_data and from_jsonable_data methods with the encoding/decoding logic.
from jsonabler import Jsonable, jsonabled

@jsonabled
class Foo(Jsonable):
def __init__(self, bar: str):
self.__bar = bar

def get_jsonable_data(self) -> dict:
return {
'bar': self.__bar,
}

@classmethod
def from_jsonable_data(cls, data: dict) -> Jsonable:
return cls(data['bar'])

Registering a Jsonable
For decoding your Jsonable classes, you need to register it.
Decorating your classes with the @jsonabled decorator
from jsonabler import Jsonable, jsonabled

@jsonabled
class Foo(Jsonable):
...

Calling register_jsonables method passing class types
from jsonabler import Jsonable, register_jsonables

class Foo(Jsonable):
...

if __name__ == '__main__':
register_jsonables({Foo})

Encoding a Jsonable
Call dumps method passing a Jsonable object.
from jsonabler import dumps

def upload_foo(foo: Foo) -> None:
json_string = dumps(foo)

# transmit your JSON string
...

Encoded Foo
[
'Foo',
{
'bar': "abc",
}
]

Decoding a Jsonable
Call loads method passing the JSON string.
from jsonabler import loads, JsonableDecodeError, JsonableNotRegisteredError
from json import JSONDecodeError

def download_foo() -> Foo:
# receive JSON string encoded Foo object
...

try:
return loads(json_string)

# not a valid encoded JSON string
except JSONDecodeError:
...

# the Jsonable type of the encoded object was not registered
except JsonableNotRegisteredError:
...

# something went wrong while decoding the object
except JsonableDecodeError:
...

License
Distributed under the MIT License. See LICENSE file for more information.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.