Add safe guards

This commit is contained in:
allegroai 2019-12-14 23:53:09 +02:00
parent 9debe1adcd
commit 38284eef1f
3 changed files with 14 additions and 3 deletions

View File

@ -78,6 +78,9 @@ class DictField(fields.BaseField):
if not self.value_types: if not self.value_types:
return return
if not value:
return
for item in value.values(): for item in value.values():
self.validate_single_value(item) self.validate_single_value(item)

View File

@ -1,5 +1,6 @@
from enum import Enum
from typing import Callable, Sequence, Text from typing import Callable, Sequence, Text
from boltons.iterutils import remap
from jsonmodels import models from jsonmodels import models
from jsonmodels.errors import FieldNotSupported from jsonmodels.errors import FieldNotSupported
@ -87,7 +88,14 @@ class Endpoint(object):
Provided data_model schema if available Provided data_model schema if available
""" """
try: try:
return data_model.to_json_schema() res = data_model.to_json_schema()
def visit(path, key, value):
if isinstance(value, Enum):
value = str(value)
return key, value
return remap(res, visit=visit)
except (FieldNotSupported, TypeError): except (FieldNotSupported, TypeError):
return str(data_model.__name__) return str(data_model.__name__)

View File

@ -211,7 +211,7 @@ def vector_metrics_iter_histogram(call, company_id, req_model):
@endpoint("events.get_task_events", required_fields=["task"]) @endpoint("events.get_task_events", required_fields=["task"])
def get_task_events(call, company_id, _): def get_task_events(call, company_id, _):
task_id = call.data["task"] task_id = call.data["task"]
batch_size = call.data.get("batch_size") batch_size = call.data.get("batch_size", 500)
event_type = call.data.get("event_type") event_type = call.data.get("event_type")
scroll_id = call.data.get("scroll_id") scroll_id = call.data.get("scroll_id")
order = call.data.get("order") or "asc" order = call.data.get("order") or "asc"