YAAB aims to provide a flexible base for Adapter Design Pattern implementations based on dataclasses.
Project description
Yet Another Adapter Base
YAAB aims to provide a flexible base for Adapter Design Pattern implementations based on dataclasses.
Free software: MIT license
Documentation: https://yaab.readthedocs.io.
Example Usage
Let’s assume that you are interfacing an API that returns a JSON object with the following structure:
{
"weird_name": "My name",
"oid": "3"
}
And you would like to transform it into a schema that fits the rest of your API, let’s assume:
{
"name": "My name",
"id": 3
}
Then you would define and use your model in the following way:
>>> from dataclasses import asdict, dataclass, field >>> >>> from yaab.adapter import BaseAdapter >>> >>> @dataclass ... class MyModel(BaseAdapter): ... id: int = field(metadata={"transformations": ("oid", int)}) ... name: str = field(metadata={"transformations": ("weird_name", )}) ... >>> m = MyModel.from_dict({"weird_name": "My name", "oid": "3"}) >>> print(m) MyModel(id=3, name='My name') >>> asdict(m) {'id': 3, 'name': 'My name'}
Features
TODO
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.1.0 (2020-01-21)
First release on PyPI.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.