jschema2py 0.1.0

Creator: bradpython12

Last updated:

Add to Cart

Description:

jschema2py 0.1.0

JSchema2py
JSchema2py is able to generate python classes starting from JSONSchema and provides the automatic support for types
and constraints checking.
Installation
The package can be installed through pip:
$ pip install jschema2py

or downloaded from GitHub.
Examples
For example, given the following schema:
{
"title": "UserInfo",
"type": "object",
"properties": {
"name": {
"type": "string",
"pattern": "^[^a-z0-9]"
},
"userName": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
}
}

jschema2py can easily convert it into python class in this way (Assume here that the schema is stored into variable
called schema):
from jschema2py import build_class
UserInfo = build_class(schema)
user = UserInfo()
user.name = "Jacopo"
user.userName = "JDL"
user.age = 24
print(user)

validation will be performed on the object manipulation:
user.name = "jacopo" # raise ConstraintError (pattern: ^[^a-z0-9])
user.age = "24" # raise TypeError

The object can be serialized into a JSON document:
jsdoc = str(user)

Accessing generated classes
If one of the property of the schema refers to another object, you can access the class that represents the referred
object by using method get_class:
{
"title": "Nested",
"type": "object",
"properties": {
"inner": {
"title": "Inner",
"type": "object",
"properties": {
"string": {
"type": "string",
"default": "I'm inner!"
}
}
}
}
}

from jschema2py import build_class
Nested = build_class(schema)
nested = Nested()
nested.inner = nested.get_class("inner")() # Gets the class associated with the property "inner"
print(nested.inner.string)

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.