skinfer package¶
Submodules¶
skinfer.draft4_generator module¶
-
class
skinfer.draft4_generator.
IncompleteDraft4SchemaGenerator
(base_object)[source]¶ Bases:
json_schema_generator.generator.SchemaGenerator
Patching json_schema_generator.SchemaGenerator to generate Draft4 valid schemas
See original at: https://github.com/perenecabuto/json_schema_generator/blob/master/json_schema_generator/generator.py
This is a hack, just a copy of the method from the base class with a few changes to generate a valid Draft4 schema.
We should implement a full Draft4SchemaGenerator – probably upstream.
-
skinfer.draft4_generator.
JsonSchemaGenerator
¶ alias of
IncompleteDraft4SchemaGenerator
skinfer.json_schema_merger module¶
-
skinfer.json_schema_merger.
max_or_none
(val1, val2)[source]¶ Returns max(val1, val2) returning None only if both values are None
skinfer.schema_inferer module¶
-
skinfer.schema_inferer.
generate_and_merge_schemas
(samples)[source]¶ Iterates through the given samples, generating schemas and merging them, returning the resulting merged schema.
Module contents¶
Skinfer - tools for inferring and merging JSON schemas¶
Basic usage of inferring schemas:
>>> import skinfer, pprint
>>> sample1 = {'name': 'Claudio'}
>>> sample2 = {'name': 'Roberto', 'surname': 'Salazar'}
>>> merged_schema = skinfer.infer_schema([sample1, sample2])
>>> pprint.pprint(merged_schema)
{'$schema': u'http://json-schema.org/draft-04/schema',
u'properties': {'name': {u'type': u'string'}, 'surname': {'type': 'string'}},
u'required': ['name'],
u'type': u'object'}
and merging schemas manually:
>>> schema1 = skinfer.generate_schema(sample1)
>>> schema2 = skinfer.generate_schema(sample2)
>>> final_schema = skinfer.merge_schema(schema1, schema2)
>>> assert merged_schema == final_schema