Skip to content

Commit c6fe714

Browse files
author
Joel Collins
committed
Improved handling marshal_task when none-TaskThread is returned
1 parent 960161f commit c6fe714

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

labthings/server/decorators.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
from .view import View
1313
from .find import current_labthing
1414

15+
from labthings.core.tasks.pool import TaskThread
16+
1517
import logging
1618

1719
# Useful externals to have included here
@@ -69,9 +71,10 @@ def wrapper(*args, **kwargs):
6971
resp = f(*args, **kwargs)
7072
if isinstance(resp, tuple):
7173
data, code, headers = unpack(resp)
72-
return make_response(self.converter(data), code, headers)
7374
else:
74-
return make_response(self.converter(resp))
75+
data, code, headers = resp, 200, {}
76+
77+
return make_response(self.converter(data), code, headers)
7578

7679
return wrapper
7780

@@ -88,9 +91,14 @@ def wrapper(*args, **kwargs):
8891
resp = f(*args, **kwargs)
8992
if isinstance(resp, tuple):
9093
data, code, headers = unpack(resp)
91-
return make_response(TaskSchema().jsonify(data), code, headers)
9294
else:
93-
return make_response(TaskSchema().jsonify(resp))
95+
data, code, headers = resp, 200, {}
96+
97+
if not isinstance(data, TaskThread):
98+
raise TypeError(
99+
f"Function {f.__name__} expected to return a TaskThread object, but instead returned a {type(data).__name__}. If it does not return a task, remove the @marshall_task decorator from {f.__name__}.",
100+
)
101+
return make_response(TaskSchema().jsonify(data), code, headers)
94102

95103
return wrapper
96104

0 commit comments

Comments
 (0)