Skip to main content

This library has been deprecated in favour of Odin

A JSON based notation for resources that can be easily converted into object graphs.

Travis CI Status

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

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)

Source distribution for jsrn 0.3.2
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

Release history Release notifications | RSS feed

This release

0.3.2 This release

1 release file

0.3.1

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page