From b6a04f09e009a82f2ced889ec12cbc83eb5ae572 Mon Sep 17 00:00:00 2001 From: Thomas Riccardi Date: Tue, 22 Oct 2019 12:06:41 +0200 Subject: [PATCH] Task and Task exceptions str(): oneline It's much easier to parse them in log analytics tools. --- deepomatic/api/exceptions.py | 4 ++-- deepomatic/api/resource.py | 2 +- tests/test_client.py | 10 +++++++++- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/deepomatic/api/exceptions.py b/deepomatic/api/exceptions.py index dc1ef71..6470c98 100644 --- a/deepomatic/api/exceptions.py +++ b/deepomatic/api/exceptions.py @@ -94,7 +94,7 @@ def __init__(self, task): self.task = task def __str__(self): - return "Error on task:\n{}".format(json.dumps(self.task)) + return "Error on task: {}".format(json.dumps(self.task)) def get_task_id(self): return self.task['id'] @@ -108,7 +108,7 @@ def __init__(self, task, retry_error=None): self.retry_error = retry_error def __str__(self): - return "Timeout on task:\n{}".format(json.dumps(self.task)) + return "Timeout on task: {}".format(json.dumps(self.task)) def get_task_id(self): return self.task['id'] diff --git a/deepomatic/api/resource.py b/deepomatic/api/resource.py index ea865d7..c52c473 100644 --- a/deepomatic/api/resource.py +++ b/deepomatic/api/resource.py @@ -79,7 +79,7 @@ def __repr__(self): pk = 'id={pk} '.format(pk=self._pk) if self._pk else '' string = '<{classname} object {pk}at {addr}>'.format(classname=self.__class__.__name__, pk=pk, addr=hex(id(self))) if self._data is not None: - string += ' JSON: ' + json.dumps(self._data, indent=4, separators=(',', ': ')) + string += ' JSON: ' + json.dumps(self._data) return string @classmethod diff --git a/tests/test_client.py b/tests/test_client.py index 1ee7f96..7aa9f31 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -14,7 +14,7 @@ import requests import six from deepomatic.api.client import Client -from deepomatic.api.exceptions import ServerError, ClientError, TaskTimeout, HTTPRetryError, TaskRetryError +from deepomatic.api.exceptions import ServerError, ClientError, TaskError, TaskTimeout, HTTPRetryError, TaskRetryError from deepomatic.api.http_retry import HTTPRetry from deepomatic.api.inputs import ImageInput from deepomatic.api.version import __title__, __version__ @@ -301,6 +301,14 @@ def test_batch_wait(self, client): assert(tasks[pos].pk == success.pk) assert inference_schema(2, 0, 'golden retriever', 0.8) == success['data'] + # Task* str(): oneliners (easier to parse in log tooling) + task = success_tasks[0][1] + task_error = TaskError(task._data) + task_timeout = TaskTimeout(task._data) + assert '\n' not in str(task) + assert '\n' not in str(task_error) + assert '\n' not in str(task_timeout) + def test_client_error(self, client): spec = client.RecognitionSpec.retrieve('imagenet-inception-v3') with pytest.raises(ClientError) as exc: