Skip to main content

Simple tool to merge JSON schemas

Project description

https://badge.fury.io/py/skinfer.png https://travis-ci.org/scrapinghub/skinfer.png?branch=master https://pypip.in/d/skinfer/badge.png

Simple tool to infer and/or merge JSON schemas

Features

  • Generating schema in JSON Schema draft 4 format

  • Inferring schema from multiple samples

  • Merging schemas - nice for generating schema in Map-Reduce fashion or updating an old schema with new data

Example of using skinfer to generate a schema from a list of samples:

$ cat samples.jsonl
{"name": "Claudio", "age": 29}
{"name": "Roberto", "surname": "Gomez", "age": 72}
$ skinfer --jsonlines samples.jsonl
{
    "$schema": "http://json-schema.org/draft-04/schema",
    "required": [
        "age",
        "name"
    ],
    "type": "object",
    "properties": {
        "age": {
            "type": "number"
        },
        "surname": {
            "type": "string"
        },
        "name": {
            "type": "string"
        }
    }
}

Install with:

$ pip install skinfer

Or, if you don’t have pip, you can still install it with:

$ easy_install skinfer

History

0.2.0 (2015-08-10)

  • Renamed entry-point script schema_inferer -> skinfer

  • Added json_validator

  • Dropped Python 2.6 support

  • Added more tests

0.1.2 (2015-08-04)

  • Bugfix: removed buggy -o argument

  • Automated PyPI release via Travis

0.1.1 (2015-05-01)

  • Support more complex string-type schemas

  • Attempt to infer JSON lines format instead of just failing

  • API cleanup: no need for long imports anymore

  • Updated documentation, added docstrings

  • Fixed merging schema for arrays with tuple vs list validation

  • Fixed compatibility issues with Python 2.6

  • Improved test coverage, added end-to-end tests

0.1.0 (2015-03-03)

  • First release on PyPI.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page