@sh.add_function(dsp, outputs=['validated_meta'], **_kw)
def validate_meta(meta=None, hard_validation=False):
"""
Validate meta data.
:param meta:
Meta data.
:type meta: dict
:param hard_validation:
Add extra data validations.
:type hard_validation: bool
:return:
Validated meta data.
:rtype: dict
"""
i, e = _validate_base_with_schema(meta or {}, depth=2)
if hard_validation:
from schema import SchemaError
from .hard import _hard_validation
for k, v in sorted(sh.stack_nested_keys(i, depth=1)):
for c, msg in _hard_validation(v, 'meta'):
sh.get_nested_dicts(e, *k)[c] = SchemaError([], [msg])
if _log_errors_msg(e):
return sh.NONE
return i