Skip to content

rondou/jsontofu

Repository files navigation

jsontofu.png

Usage

@dataclass
class Data:
    str_data: str
    int_data: int

@dataclass
class DictData:
    str_data: str
    dict_data: Optional[Dict]

@dataclass
class RecursiveData:
    str_data: str
    dict_data: Data

json_data1 = {
    'str_data': 'test',
    'int_data': 123
}

json_data2 = {,
    'str_data': 'test',
    'dict_data': {'key1': 123, 'key2': 456}
}

json_data3 = {,
    'str_data': 'test',
    'dict_data': {'str_data': 'test', 'int_data': 456}
}

print(jsontofu.decode(json_data1, Data)) # Data(str_data="test", int_data=123)

print(jsontofu.decode(json_data2, DictData)) # DictData(str_data="test", dict_data={'key1': 123, 'key2': 456})

print(jsontofu.decode(json_data3, RecursiveData)) # RecursiveData(str_data="test", Data(str_data="test", int_data=456)

Installation

pip install git+git://github.com/rondou/jsontofu.git

or

pipenv install 'git+ssh://git@github.com/rondou/jsontofu.git#egg=jsontofu'

Development

pipenv install
pipenv install -d
pipenv run "pytest -s"

Coverage

pipenv run 'pytest tests --cov=jsontofu'

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages