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
Metadata
Release files for jsonfromschema 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jsonfromschema-0.1.4.tar.gz | 12.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jsonfromschema-0.1.4-py2.py3-none-any.whl | Python 2, Python 3 | none | any | Details |
Total release size: 22.7 kB
Release files / jsonfromschema-0.1.4.tar.gz
| Download URL | jsonfromschema-0.1.4.tar.gz |
|---|---|
| Size | 12.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
88fda249008c161821a59e3a9908215281f3a63c39fec0ed5e9bcc3dd80308bc
|
|
BLAKE2b-256 checksum How to use checksums |
4f3c0c7e0d8bc922e24dad1bce8d9ac51704b270828753843f106b603abb487c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5
|
Release files / jsonfromschema-0.1.4-py2.py3-none-any.whl
| Download URL | jsonfromschema-0.1.4-py2.py3-none-any.whl |
|---|---|
| Size | 10.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
cb5cec7eba45120e7c783244ab59152529d316818c0b4b73cd18ed488f24b1b5
|
|
BLAKE2b-256 checksum How to use checksums |
fa073dd8398814f56add6797b960dc571e759ebf0600ac89223737cb85747245
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.7.5
|