jsonabler 0.2.2

Creator: rpa-with-ash

Last updated:

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.