datopy.modeling.schema_jsonify#

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

_summary_.

Parameters:

obj (dict) – _description_.

Returns:

_description_.

Return type:

dict

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']}