jsonfromschema 0.1.4

Creator: bradpython12

Last updated:

Add to Cart

Description:

jsonfromschema 0.1.4

IN SHORT
jsonfromschema is used to generate JSON data (file .json) from JSON Schema (.json, see https://json-schema.org)
Project is written in Python for Python purposes, but it is also stand-alone tool.
SPDX-License-Identifier: 0BSD
Project name: jsonfromschema
License: 0BSD / Free Public License 1.0.0
More information about license: https://opensource.org/licenses/0BSD


NON-INSTALL
git clone git@github.com:NIC-MichalLabedzki/jsonfromschema.git
You can run it from sources without any dependancies* (python and some modules delivered with it)
python ./jsonfromschema
See:
python ./jsonfromschema --help
See CLI section for more details.


INSTALLATION
pip install jsonfromschema
or
pip install -e git@github.com:NIC-MichalLabedzki/jsonfromschema.git
or
pip install -e https://github.com/NIC-MichalLabedzki/jsonfromschema.git
or
git clone git@github.com:NIC-MichalLabedzki/jsonfromschema.git
cd jsonfromschema
python setup.py # or pip install -e .


INTERFACE
There are two kind of interfaces: CLI and Python module.

CLI
CLI is Command Line Interface. So you have tool called: jsonfromschema
$ jsonfromschema --help
usage: jsonfromschema [-h] [-v] [-w [VALIDATE]] [--no-default] [--no-examples] [--maximum]
[--subschema SUBSCHEMA] [--from-python-package FROM_PYTHON_PACKAGE]
schema output

Generate JSON data file (*.json) from JSON Schema

positional arguments:
schema path to JSON Schema file or python packages resource
[--from-python-package]
output path to JSON data output file

optional arguments:
-h, --help show this help message and exit
-v, --verbose verbose mode
-w [VALIDATE], --validate [VALIDATE]
use jsonschema to validate output and check if schema
is valid [3,4,6,7 (default)]
--no-default do not use 'default' fields in jsonschema
--no-examples do not use 'default' fields in jsonschema
--maximum generate as complex json as possible (by
implementation); for example ignore "required" and
favor "object" over less complicated fields
--subschema SUBSCHEMA
extract subschema only by this json fragment pointer
--from-python-package FROM_PYTHON_PACKAGE
'schema' is path to python package resource, this
option needs package name as argument
Some examples:
$ jsonfromschema input_schema.json output_json_data.json
Verbose:
$ jsonfromschema input_schema.json output_json_data.json -v
Validate output:
It use “jsonschema” module (pip install jsonschema) to validate output json to be valid with given schema.
$ jsonfromschema input_schema.json output_json_data.json -w
Generate subschema:
Use JSON pointer (schema side) to generate only part of schema:
$ jsonfromschema tests/test_schema_main.json.json output.json -w --subschema=/properties/string_default
$ cat output.json
"foo"
Use JSON Schema resources from some python packages:
$ jsonfromschema ../tests/test_schema_main.json output.json -vw --subschema=/properties/string_default --from-python-package jsonfromschema
$ cat output.json
"foo"


Python Module
API is not stable right now.
import jsonfromschema.lib
generate_dict_from_text(root_name, schema_text, optional_args=None)
generate_dict_from_file(schema_file, optional_args=None)
generate_dict_from_package(package, path, optional_args=None)

optional_args:
Default values are:


{
'verbose': False,
'no-default': False,
'no-examples': False,
'maximum': False,
'pkg_resource_root': None,
'subschema': None,
}

Where:
pkg_resource_root is package name, for example “jsonschema”





Changelog

v0.1.4:

try use –maximum value for more json types
remove anoying python version from cli output





TODO

JsonSchema Draft-7 support (in progress)
Check Draft-4 support
Section about Contributions

License

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

Customer Reviews

There are no reviews.