Skip to content

Commit 9ec06a9

Browse files
committed
minor stuff
1 parent 59014a3 commit 9ec06a9

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

labelbox/client.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,12 @@ def get_error_status_code(error):
240240
# as they already know which resource type and ID was requested
241241
return None
242242

243+
resource_conflict_error = check_errors(["RESOURCE_CONFLICT"],
244+
"extensions", "code")
245+
if resource_conflict_error is not None:
246+
raise labelbox.exceptions.ResourceConflict(
247+
resource_conflict_error["message"])
248+
243249
# A lot of different error situations are now labeled serverside
244250
# as INTERNAL_SERVER_ERROR, when they are actually client errors.
245251
# TODO: fix this in the server API
@@ -255,8 +261,14 @@ def get_error_status_code(error):
255261

256262
if len(errors) > 0:
257263
logger.warning("Unparsed errors on query execution: %r", errors)
264+
messages = list(
265+
map(
266+
lambda x: {
267+
"message": x["message"],
268+
"code": x["extensions"]["code"]
269+
}, errors))
258270
raise labelbox.exceptions.LabelboxError("Unknown error: %s" %
259-
str(errors))
271+
str(messages))
260272

261273
# if we do return a proper error code, and didn't catch this above
262274
# reraise

labelbox/exceptions.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ def __init__(self, db_object_type, params):
4242
self.params = params
4343

4444

45+
class ResourceConflict(LabelboxError):
46+
"""Exception raised when a given resource conflicts with another. """
47+
pass
48+
49+
4550
class ValidationFailedError(LabelboxError):
4651
"""Exception raised for when a GraphQL query fails validation (query cost,
4752
etc.) E.g. a query that is too expensive, or depth is too deep.

0 commit comments

Comments
 (0)