Skip to main content

PyPi version PyPi versions CI status Documentation Status

Simple python data objects management and validation based on standard jsonschema concepts. Project requires python3.6+ and allows users define how data objects should look and relate with other data objects. Supports python3.6+ typing annotations and customs attributes for more complex relationships.

Objectives

  1. Define and demarcate data objects with just python annotations

  2. Define constraints in simple jsonschema compliant manner

  3. Validate data objects using standard jsonschema validators

  4. Express complete jsonschema as simple data objects (its just objects)

Similar Projects

Install

install from pip

$ pip install justobjects

install from source

$ pip install git+https://github.com/kulgan/justobjects@<version>#egg=justobjects

Usage Example

import json
import justobjects as jo


@jo.data(typed=True)
class Model:
    a: int
    b: float
    c: str


# display schema
print(json.dumps(jo.show_schema(Model), indent=2))


try:
    # fails validation
    jo.validate(Model(a=3.1415, b=2.72, c="123"))
except jo.ValidationException as err:
    print(err.errors)

Contributing

The fastest way to get feedback on contributions/bugs is create a issues

Running Tests

The project makes use of tox to run tests and other common tasks

$ tox -e py36

Metadata

Release files for justobjects 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for justobjects 0.3.0
File Size Uploaded
justobjects-0.3.0.tar.gz 32.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for justobjects 0.3.0
File Interpreter ABI Platform
justobjects-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 53.2 kB

Release files / justobjects-0.3.0.tar.gz

Download URL justobjects-0.3.0.tar.gz
Size 32.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e76a811471c9cffe76eda6568046a4fad64a633ec7875f24f3e45541f8217a97
BLAKE2b-256 checksum
How to use checksums
c867d77d91ad9de0b6010a90d8f606b06346ee4ae48c6bd233bacf2c346cfee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9

Release files / justobjects-0.3.0-py3-none-any.whl

Download URL justobjects-0.3.0-py3-none-any.whl
Size 20.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
23a616eb53f53aa3d3709a443933c55db0a6bad0471ffd104ea1b601c335a677
BLAKE2b-256 checksum
How to use checksums
e5baa47fea44743855647ca33a3cacd5e993b6485fc2e68896df230216d2c4a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.0 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.9
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