Skip to content

Commit 2e2a17b

Browse files
authored
Merge pull request #28 from nludb/response-error-refactor
Response error refactor
2 parents adde129 + a20357a commit 2e2a17b

9 files changed

Lines changed: 36 additions & 36 deletions

File tree

src/steamship/base/client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,16 +276,16 @@ def call(
276276
# if task_resp is not None and task_resp.taskId is not None:
277277
# task = Task(client=self)
278278
# task.update(task_resp)
279+
if 'state' in responseData['status']:
280+
if responseData['status']['state'] == 'failed':
281+
error = SteamshipError.from_dict(responseData['status'], client=self)
279282

280283
if 'data' in responseData:
281284
if expect is not None and hasattr(expect, 'from_dict'):
282285
obj = expect.from_dict(responseData['data'], client=self)
283286
else:
284287
obj = responseData['data']
285288

286-
if 'error' in responseData:
287-
error = SteamshipError.from_dict(responseData['error'], client=self)
288-
289289
if 'reason' in responseData:
290290
# This is a legacy error reporting field. We should work toward being comfortable
291291
# removing this handler.

src/steamship/base/error.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22

33

44
class SteamshipError(Exception):
5-
message: str = None
6-
suggestion: str = None
7-
code: str = None
5+
statusMessage: str = None
6+
statusSuggestion: str = None
7+
statusCode: str = None
88
error: str = None
99

1010
def __init__(self, message: str = "Undefined remote error", suggestion: str = None, code: str = None,
1111
error: Exception = None):
12-
self.message = message
13-
self.suggestion = suggestion
14-
self.code = code
12+
self.statusMessage = message
13+
self.statusSuggestion = suggestion
14+
self.statusCode = code
1515
if error is not None:
1616
self.error = "{}".format(error)
1717

@@ -29,7 +29,7 @@ def __init__(self, message: str = "Undefined remote error", suggestion: str = No
2929
def from_dict(d: any, client: Any = None) -> "SteamshipError":
3030
"""Last resort if subclass doesn't override: pass through."""
3131
return SteamshipError(
32-
message=d.get('message', None),
33-
suggestion=d.get('suggestion', None),
34-
code=d.get('code', None)
32+
message=d.get('statusMessage', None),
33+
suggestion=d.get('statusSuggestion', None),
34+
code=d.get('statusCode', None)
3535
)

src/steamship/base/response.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def wait(self, max_timeout_s: float = 60, retry_delay_s: float = 1):
2929

3030
self.check()
3131
if self.task is not None:
32-
if self.task.taskStatus == TaskStatus.succeeded or self.task.taskStatus == TaskStatus.failed:
32+
if self.task.state == TaskStatus.succeeded or self.task.state == TaskStatus.failed:
3333
return
3434
else:
3535
return
@@ -39,7 +39,7 @@ def wait(self, max_timeout_s: float = 60, retry_delay_s: float = 1):
3939
time.sleep(retry_delay_s)
4040
self.check()
4141
if self.task is not None:
42-
if self.task.taskStatus == TaskStatus.succeeded or self.task.taskStatus == TaskStatus.failed:
42+
if self.task.state == TaskStatus.succeeded or self.task.state == TaskStatus.failed:
4343
return
4444
else:
4545
return

src/steamship/base/tasks.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ class Task(Generic[T]):
143143
"""Encapsulates a unit of asynchronously performed work."""
144144
client: Any = None
145145
taskId: str = None
146-
taskStatus: str = None
147-
taskStatusMessage: str = None
146+
state: str = None
147+
statusMessage: str = None
148148
taskCreatedOn: str = None
149149
taskLastModifiedOn: str = None
150150
# eob: This is typed wrong, but I'm not sure how to type it..
@@ -156,8 +156,8 @@ def from_dict(d: any, client: Any = None) -> "Task":
156156
return Task(
157157
client=client,
158158
taskId=d.get('taskId', None),
159-
taskStatus=d.get('taskStatus', None),
160-
taskStatusMessage=d.get('taskStatusMessage', None),
159+
state=d.get('state', None),
160+
statusMessage=d.get('statusMessage', None),
161161
taskCreatedOn=d.get('taskCreatedOn', None),
162162
taskLastModifiedOn=d.get('taskLastModifiedOn', None)
163163
)
@@ -166,12 +166,12 @@ def update(self, other: "Task"):
166166
"""Incorporates a `Task` into this object."""
167167
if other is not None:
168168
self.taskId = other.taskId
169-
self.taskStatus = other.taskStatus
170-
self.taskStatusMessage = other.taskStatusMessage
169+
self.state = other.state
170+
self.statusMessage = other.statusMessage
171171
self.taskCreatedOn = other.taskCreatedOn
172172
self.taskLastModifiedOn = other.taskLastModifiedOn
173173
else:
174-
self.taskStatus = None
174+
self.state = None
175175

176176
def add_comment(self, externalId: str = None, externalType: str = None, externalGroup: str = None,
177177
metadata: any = None, upsert: bool = True) -> IResponse[TaskComment]:

tests/client/test_embedding_index.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,12 +134,12 @@ def test_embed_task():
134134
res = index.embed()
135135

136136
assert (res.task.taskId is not None)
137-
assert (res.task.taskStatus is not None)
137+
assert (res.task.state is not None)
138138
assert (res.task.taskCreatedOn is not None)
139139
assert (res.task.taskLastModifiedOn is not None)
140-
assert (res.task.taskStatus == TaskStatus.waiting)
140+
assert (res.task.state == TaskStatus.waiting)
141141
res.wait()
142-
assert (res.task.taskStatus == TaskStatus.succeeded)
142+
assert (res.task.state == TaskStatus.succeeded)
143143

144144

145145
def test_duplicate_inserts():
@@ -168,7 +168,7 @@ def test_index_usage():
168168
task = index.embed()
169169
task.wait()
170170
task.check()
171-
assert (task.task.taskStatus == TaskStatus.succeeded)
171+
assert (task.task.state == TaskStatus.succeeded)
172172

173173
search_results = index.search(Q1)
174174
assert (len(search_results.data.hits) == 1)

tests/client/test_file.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,12 +114,12 @@ def test_file_upload_then_parse():
114114
task = a.convert(plugin="markdown-converter-default-v1")
115115
assert (task.error is None)
116116
assert (task.task is not None)
117-
assert (task.task.taskStatus == TaskStatus.waiting)
117+
assert (task.task.state == TaskStatus.waiting)
118118

119119
task.wait()
120120
assert (task.error is None)
121121
assert (task.task is not None)
122-
assert (task.task.taskStatus == TaskStatus.succeeded)
122+
assert (task.task.state == TaskStatus.succeeded)
123123

124124
q1 = a.query().data
125125
assert (len(q1.blocks) == 2)

tests/client/test_file_parse.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ def parse_file(client: Client, parserModel: str):
5252
task = a.parse(plugin="test-parser-v1")
5353
assert (task.error is None)
5454
assert (task.task is not None)
55-
assert (task.task.taskStatus == TaskStatus.waiting)
55+
assert (task.task.state == TaskStatus.waiting)
5656

5757
task.wait()
5858
assert (task.error is None)
5959
assert (task.task is not None)
60-
assert (task.task.taskStatus == TaskStatus.succeeded)
60+
assert (task.task.state == TaskStatus.succeeded)
6161

6262
# Now the sentences should be parsed!
6363
q2 = a.query(blockType=BlockTypes.Sentence).data

tests/client/test_snapshots.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def _insert(index, items):
1717
task = index.embed()
1818
task.wait()
1919
task.check()
20-
assert (task.task.taskStatus == TaskStatus.succeeded)
20+
assert (task.task.state == TaskStatus.succeeded)
2121

2222

2323
def _snapshot(index, windowSize=None):

tests/demo_apps/demo_app.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ def learn(self, fact: str = None) -> Response:
5555
# Steamship error messages can be passed straight
5656
# back to the user
5757
return Error(
58-
message=res.error.message,
59-
suggestion=res.error.suggestion,
60-
code=res.error.code
58+
message=res.error.statusMessage,
59+
suggestion=res.error.statusSuggestion,
60+
code=res.error.statusCode
6161
)
6262

6363
return Response(json=res.data)
@@ -77,9 +77,9 @@ def query(self, query: str = None, k: int = 1) -> Response:
7777
# Steamship error messages can be passed straight
7878
# back to the user
7979
return Error(
80-
message=res.error.message,
81-
suggestion=res.error.suggestion,
82-
code=res.error.code
80+
message=res.error.statusMessage,
81+
suggestion=res.error.statusSuggestion,
82+
code=res.error.statusCode
8383
)
8484

8585
return Response(json=res.data)

0 commit comments

Comments
 (0)