Persefone
Persefone is an encoder for the Siren hypermedia format that uses ujson to generate Siren-compliant JSON efficiently.
Usually such encoders work with JSON, so you convert your data to JSON and pass it to the encoder.
The idea behind persefone is to provide a perfomant Siren encoder by removing the JSON conversion step: you pass your data as provided by your ORM and persefone deals with that, returning JSON.
Supported orms and data structures
Persefone currently supports only peewee, but I plan to add support for other ORMs and similar tools.res
Usage
Install with pip:
pip install persefone
Then:
from persefone.peewee import Siren Siren(data, '/path', model=MyModel).encode() # returns Siren-valid JSON
If you have a list:
Siren([item, ...], '/path', model=MyModel)
Pagination:
Siren([item, ...], '/path', model=MyModel, total_items=100, current_page=2)
Contributing
Contributions and feedbacks are welcome. You can just open an issue.