Examples

Installation/Usage:

JSNAC can be installed using pip: pip install jsnac and can be used as either a command line tool or as a Python library in your own python project. The source code can also be found on GitHub.

CLI usage:

# Print the help message
jsnac -h

# Build a JSON schema from a YAML file (default file is jsnac.schema.json)
jsnac -f data/example-jsnac.yml

# Build a JSON schema from a YAML file and save it to a custom file
jsnac -f data/example-jsnac.yml -o my.schema.json

# Increase the verbosity of the output
jsnac -f data/example-jsnac.yml -v

Library usage:

"""
This example demonstrates how to use the jsnac library to build a JSON schema
from a YAML file in a Python script. An example YAML file is available below:
<https://www.github.com/commitconfirmed/jsnac/blob/main/data/example-jsnac.yml>
"""
from jsnac.core.build import SchemaBuilder

def main():
    # Create a SchemaInferer object
    jsnac = SchemaBuilder()

    # Load the YAML data however you like into the SchemaInferer object
    with open('data/example-jsnac.yml', 'r') as file:
        data = file.read()
    jsnac.add_yaml(data)

    # Loading from JSON directly is also supported if needed
    # jsnac.add_json(json_data)

    # Build the JSON schema
    schema = jsnac.build_schema()
    print(schema)

if __name__ == '__main__':
    main()