Skip to main content

Simple data object (de)serialization and validation

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

justobjects-0.2.0.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

justobjects-0.2.0-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file justobjects-0.2.0.tar.gz.

File metadata

  • Download URL: justobjects-0.2.0.tar.gz
  • Upload date:
  • Size: 28.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for justobjects-0.2.0.tar.gz
Algorithm Hash digest
SHA256 b088092a206a2c2be064088ef864ffca197d42038c1d140634b7cad65c114703
MD5 8a474d68e80ae2a9041b2e62cb93ecd3
BLAKE2b-256 d91fda71bd3a8f2a32cb99a44ae76e1704c0be168209aefa1d043ae956701aae

See more details on using hashes here.

File details

Details for the file justobjects-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: justobjects-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for justobjects-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c46888c8c39ea2f2ad67ea46872a5133c619517629bdf11285d90ec490ff6fcc
MD5 6e273906466d4435e4a342972293cfe8
BLAKE2b-256 fa4aeb8518eefe65bbd76fbe102d6b607c9aa6b19b7606bf5ef1dec5b787cc3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page