Source code for ocrd_validators.parameter_validator
"""
Validate parameters against ocrd-tool.json.
"""
from .json_validator import JsonValidator, DefaultValidatingDraft6Validator
#
# -------------------------------------------------
#
[docs]
class ParameterValidator(JsonValidator):
"""
JsonValidator validating parametersagains ocrd-tool.json.
"""
[docs]
def validate(self, *args, **kwargs): # pylint: disable=arguments-differ
"""
Validate a parameter dict against a parameter schema from an ocrd-tool.json
Args:
obj (dict):
schema (dict):
"""
return super(ParameterValidator, self)._validate(*args, **kwargs)
def __init__(self, ocrd_tool):
"""
Construct a ParameterValidator.
Arguments:
ocrd_tool (dict): Parsed ``ocrd-tool.json``.
"""
required = []
if ocrd_tool is None:
ocrd_tool = {}
if 'parameters' not in ocrd_tool:
ocrd_tool['parameters'] = {}
p = ocrd_tool['parameters']
for n in p:
if 'required' in p[n]:
if p[n]['required']:
required.append(n)
del(p[n]['required'])
super(ParameterValidator, self).__init__({
"type": "object",
"required": required,
"additionalProperties": False,
"properties": p
}, DefaultValidatingDraft6Validator)