"""OpenAPI core shortcuts module""" from jsonschema.validators import RefResolver from openapi_spec_validator.validators import Dereferencer from openapi_spec_validator import default_handlers from openapi_core.exceptions import OpenAPIParameterError, OpenAPIBodyError from openapi_core.specs import SpecFactory from openapi_core.validators import RequestValidator def create_spec(spec_dict, spec_url=''): spec_resolver = RefResolver( spec_url, spec_dict, handlers=default_handlers) dereferencer = Dereferencer(spec_resolver) spec_factory = SpecFactory(dereferencer) return spec_factory.create(spec_dict, spec_url=spec_url) def validate_parameters(spec, request): validator = RequestValidator(spec) result = validator.validate(request) try: result.validate() except OpenAPIBodyError: return result.parameters else: return result.parameters def validate_body(spec, request): validator = RequestValidator(spec) result = validator.validate(request) try: result.validate() except OpenAPIParameterError: return result.body else: return result.body