datopy.modeling.schema_jsonify#

schema_jsonify(
obj: dict[object, object],
) dict[object, object][source]#

_summary_

Parameters:

schema (dict) – _description_

Returns:

dict

Return type:

_description_

Examples

>>> import pprint
>>> from datopy.modeling import schema_jsonify
>>> original_schema = {'name': 'str', 'quantity': 'int', 'features': {1: {'volume': 'str', 'duration': 'float'}, 2: {'volume': 'str', 'duration': 'float'}}, 'creator': {'person': {'name': 'str'}, 'company': {'name': 'str', 'location': 'str'}}}
>>> schema = schema_jsonify(original_schema)
>>> schema = {**{"title": "title", "description": "description"}, **schema}
>>> pprint.pp(schema, compact=True, depth=3)
{'title': 'title',
 'description': 'description',
 'type': 'object',
 'properties': {'name': {'type': 'string'},
                'quantity': {'type': 'number'},
                'features': {'type': 'array',
                             'minItems': 1,
                             'maxItems': 2,
                             'uniqueItems': True,
                             'items': {...}},
                'creator': {'type': 'object',
                            'properties': {...},
                            'required': [...]}},
 'required': ['name', 'quantity', 'features', 'creator']}