style fixes

This commit is contained in:
Artur Maciag 2020-02-03 13:41:26 +00:00
parent 6d8b2e5111
commit 4044483194
10 changed files with 23 additions and 27 deletions

View file

@ -4,7 +4,8 @@ from openapi_core.schema.schemas.types import NoValue
class PrimitiveCaster(object):
def __init__(self, caster_callable):
def __init__(self, schema, caster_callable):
self.schema = schema
self.caster_callable = caster_callable
def __call__(self, value):
@ -12,8 +13,8 @@ class PrimitiveCaster(object):
return value
try:
return self.caster_callable(value)
except (ValueError, TypeError) as exc:
raise CastError(exc, self.caster_callable)
except (ValueError, TypeError):
raise CastError(value, self.schema.type.value)
class DummyCaster(object):

View file

@ -8,22 +8,24 @@ from openapi_core.casting.schemas.util import forcebool
class SchemaCastersFactory(object):
DUMMY_CASTER = DummyCaster()
DUMMY_CASTERS = [
SchemaType.STRING, SchemaType.OBJECT, SchemaType.ANY,
]
PRIMITIVE_CASTERS = {
SchemaType.STRING: DUMMY_CASTER,
SchemaType.INTEGER: PrimitiveCaster(int),
SchemaType.NUMBER: PrimitiveCaster(float),
SchemaType.BOOLEAN: PrimitiveCaster(forcebool),
SchemaType.OBJECT: DUMMY_CASTER,
SchemaType.ANY: DUMMY_CASTER,
SchemaType.INTEGER: int,
SchemaType.NUMBER: float,
SchemaType.BOOLEAN: forcebool,
}
COMPLEX_CASTERS = {
SchemaType.ARRAY: ArrayCaster,
}
def create(self, schema):
if schema.type in self.PRIMITIVE_CASTERS:
return self.PRIMITIVE_CASTERS[schema.type]
if schema.type in self.DUMMY_CASTERS:
return DummyCaster()
elif schema.type in self.PRIMITIVE_CASTERS:
caster_callable = self.PRIMITIVE_CASTERS[schema.type]
return PrimitiveCaster(schema, caster_callable)
elif schema.type in self.COMPLEX_CASTERS:
caster_class = self.COMPLEX_CASTERS[schema.type]
return caster_class(schema=schema, casters_factory=self)
return caster_class(schema, self)

View file

@ -10,5 +10,5 @@ class PrimitiveDeserializer(object):
def __call__(self, value):
try:
return self.deserializer_callable(value)
except (ValueError, TypeError, AttributeError) as exc:
except (ValueError, TypeError, AttributeError):
raise DeserializeError(value, self.mimetype)

View file

@ -3,7 +3,6 @@ from openapi_core.deserializing.parameters.exceptions import (
EmptyParameterValue,
)
from openapi_core.schema.parameters.enums import ParameterLocation
from openapi_core.schema.schemas.types import NoValue
class PrimitiveDeserializer(object):
@ -22,5 +21,5 @@ class PrimitiveDeserializer(object):
return value
try:
return self.deserializer_callable(value)
except (ValueError, TypeError, AttributeError) as exc:
except (ValueError, TypeError, AttributeError):
raise DeserializeError(value, self.param.style)

View file

@ -1,4 +1,6 @@
"""OpenAPI core media types models module"""
class MediaType(object):
"""Represents an OpenAPI MediaType."""

View file

@ -1,6 +1,5 @@
"""OpenAPI core parameters models module"""
import logging
import warnings
from openapi_core.schema.parameters.enums import (
ParameterLocation, ParameterStyle,

View file

@ -6,9 +6,8 @@ from openapi_core.casting.schemas.exceptions import CastError
from openapi_core.deserializing.exceptions import DeserializeError
from openapi_core.schema.media_types.exceptions import InvalidContentType
from openapi_core.schema.operations.exceptions import InvalidOperation
from openapi_core.schema.parameters.enums import ParameterLocation
from openapi_core.schema.parameters.exceptions import (
OpenAPIParameterError, MissingRequiredParameter, MissingParameter,
MissingRequiredParameter, MissingParameter,
)
from openapi_core.schema.paths.exceptions import InvalidPath
from openapi_core.schema.request_bodies.exceptions import MissingRequestBody
@ -192,7 +191,6 @@ class RequestValidator(object):
deserializer = deserializers_factory.create(media_type)
return deserializer(value)
def _deserialise_parameter(self, param, value):
from openapi_core.deserializing.parameters.factories import (
ParameterDeserializersFactory,
@ -206,7 +204,6 @@ class RequestValidator(object):
if not param_or_media_type.schema:
return value
from openapi_core.casting.schemas.exceptions import CastError
from openapi_core.casting.schemas.factories import SchemaCastersFactory
casters_factory = SchemaCastersFactory()
caster = casters_factory.create(param_or_media_type.schema)

View file

@ -121,13 +121,11 @@ class ResponseValidator(object):
if not param_or_media_type.schema:
return value
from openapi_core.casting.schemas.exceptions import CastError
from openapi_core.casting.schemas.factories import SchemaCastersFactory
casters_factory = SchemaCastersFactory()
caster = casters_factory.create(param_or_media_type.schema)
return caster(value)
def _unmarshal(self, param_or_media_type, value):
if not param_or_media_type.schema:
return value

View file

@ -105,8 +105,7 @@ class TestFlaskOpenAPIDecorator(object):
),
'status': 400,
'title': (
"Failed to cast value invalid literal for int() with "
"base 10: 'invalidparameter' to type <class 'int'>"
"Failed to cast value invalidparameter to type integer"
)
}
]

View file

@ -92,8 +92,7 @@ class TestFlaskOpenAPIView(object):
),
'status': 400,
'title': (
"Failed to cast value invalid literal for int() with "
"base 10: 'invalidparameter' to type <class 'int'>"
"Failed to cast value invalidparameter to type integer"
)
}
]