This library has been deprecated in favour of Odin
A JSON based notation for resources that can be easily converted into object graphs.
Highlights
Class based declarative style
Support for all JSON primitive types (including JavaScript Date)
Fields for building composite resources
Field and Resource level validation
Easy extension to support custom fields
Python 2.7+ and Python 3.3+ supported
Quick links
Upcoming features
In development
Customisable generation of documentation of resources (for integration into Sphinx)
Complete documentation (around 70-80% complete for current features)
Planning
Integration with other libraries (ie Django Models/Forms)
Requires
six
Optional
jinja2 >= 2.7 - For documentation generation
simplejson - Performance improvements
Example
With definition:
import jsrn
class Author(jsrn.Resource):
name = jsrn.StringField()
class Publisher(jsrn.Resource):
name = jsrn.StringField()
class Book(jsrn.Resource):
title = jsrn.StringField()
authors = jsrn.ArrayOf(Author)
publisher = jsrn.ObjectAs(Publisher)
genre = jsrn.StringField()
num_pages = jsrn.IntegerField()
>>> b = Book(
title="Consider Phlebas",
genre="Space Opera",
publisher=Publisher(name="Macmillan"),
num_pages=471
)
>>> b.authors.append(Author(name="Iain M. Banks"))
>>> jsrn.dumps(b, pretty_print=True)
{
"$": "Book",
"authors": [
{
"$": "Author",
"name": "Iain M. Banks"
}
],
"genre": "Space Opera",
"num_pages": 471,
"publisher": {
"$": "Publisher",
"name": "Macmillan"
},
"title": "Consider Phlebas"
}
Metadata
Release files for jsrn 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jsrn-0.3.2.tar.gz | 13.7 kB | Details |
Release files / jsrn-0.3.2.tar.gz
| Download URL | jsrn-0.3.2.tar.gz |
|---|---|
| Size | 13.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf8361577b278e172355317980070be30421cade5f9c2d219830babc511594aa
|
|
BLAKE2b-256 checksum How to use checksums |
6eabfc820d483dead1c68d2a713729e2b50952f9e216ae636f7143274895cb74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |