Metadata-Version: 1.1
Name: jsonfromschema
Version: 0.1.4
Summary: An implementation of JSON data generator from JSON Schema for Python
Home-page: https://github.com/NIC-MichalLabedzki/jsonfromschema
Author: Michał Łabędzki
Author-email: michal.tomasz.labedzki@gmail.com
License: UNKNOWN
Description: ==============
        jsonfromschema
        ==============
        
        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
        -----------
        
        .. code-block:: bash
        
            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)
        
        .. code-block:: bash
        
            python ./jsonfromschema
        
        See:
        
        .. code-block:: bash
        
            python ./jsonfromschema --help
        
        See CLI section for more details.
        
        
        INSTALLATION
        ------------
        
        .. code-block:: bash
        
            pip install jsonfromschema
        
        or
        
        .. code-block:: bash
        
            pip install -e git@github.com:NIC-MichalLabedzki/jsonfromschema.git
        
        or
        
        .. code-block:: bash
        
            pip install -e https://github.com/NIC-MichalLabedzki/jsonfromschema.git
        
        or
        
        .. code-block:: bash
        
            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
        
        .. code-block:: bash
        
            $ 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:
        
        .. code-block:: bash
        
            $ jsonfromschema input_schema.json output_json_data.json
        
        Verbose:
        
        .. code-block:: bash
        
            $ 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.
        
        .. code-block:: bash
        
            $ jsonfromschema input_schema.json output_json_data.json -w
        
        Generate subschema:
        Use JSON pointer (schema side) to generate only part of schema:
        
        .. code-block:: bash
        
            $ 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:
        
        .. code-block:: bash
        
            $ 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.``
        
        .. code-block:: python
        
            import jsonfromschema.lib
        
        .. code-block:: python
        
            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:
        
        .. code-block:: python
        
                {
                '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:
            1. try use --maximum value for more json types
            2. remove anoying python version from cli output
        
        TODO
        ----
        
        1. JsonSchema Draft-7 support (in progress)
        2. Check Draft-4 support
        3. Section about Contributions
        
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Customer Service
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved
Classifier: License :: Freely Distributable
Classifier: License :: Public Domain
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: Jython
Classifier: Programming Language :: Python :: Implementation :: PyPy
