Skip to content

Commit

Permalink
Merge pull request pyblish#32 from pypeclub/hotfix/error_handling
Browse files Browse the repository at this point in the history
Hotfix/error handling
  • Loading branch information
mkolar authored Jan 6, 2020
2 parents 5656732 + 51c2741 commit fbff4cb
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 30 deletions.
45 changes: 22 additions & 23 deletions pyblish_lite/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,26 +180,19 @@ def restore_checkstate(self):


def error_from_result(result):
in_error = result.get('error')
in_error_info = result.get('error_info')
error = {}
if in_error and isinstance(in_error, dict):
error = in_error
elif in_error and isinstance(in_error_info, dict):
error = in_error_info
elif in_error:
trc_lines = list()
if in_error_info:
trc_lines = traceback.format_exception(*in_error_info)
fname, line_no, func, exc = in_error.traceback
error = {
'message': str(in_error),
'fname': fname,
'line_no': line_no,
'func': func,
'traceback': trc_lines
}
return error
error = result.get('error')

if not error:
return {}

fname, line_no, func, exc = error.traceback
return {
"message": str(error),
"fname": str(fname),
"line_no": str(line_no),
"func": str(func),
"traceback": error.formatted_traceback
}


class Plugin(Item):
Expand Down Expand Up @@ -431,8 +424,11 @@ def append(self, item):
item.data["_is_idle"] = True

# Merge `family` and `families` for backwards compatibility
item.data["__families__"] = ([item.data["family"]] +
item.data.get("families", []))
family = item.data["family"]
families = [f for f in item.data.get("families")] or []
if family in families:
families.remove(family)
item.data["__families__"] = [family] + families

return super(Instance, self).append(item)

Expand All @@ -458,7 +454,7 @@ def data(self, index, role):
return value

def setData(self, index, value, role):
item = self.items[index.row()]
item = super(Instance, self).data(index, Object)
key = self.schema.get(role)

if key is None:
Expand All @@ -470,6 +466,7 @@ def setData(self, index, value, role):
self.dataChanged.emit(index, index)
else:
self.dataChanged.emit(index, index, [role])
return True

def update_with_result(self, result):
item = result["instance"]
Expand Down Expand Up @@ -556,6 +553,7 @@ def setData(self, index, value, role):
self.dataChanged.emit(index, index)
else:
self.dataChanged.emit(index, index, [role])
return True

def update_with_result(self, result):
for record in result["records"]:
Expand Down Expand Up @@ -883,6 +881,7 @@ def setData(self, in_index, data, role):
else:
self.dataChanged.emit(index, index, [role])
self.layoutChanged.emit()
return True

def is_header(self, index):
"""Return whether index is a header"""
Expand Down
14 changes: 7 additions & 7 deletions pyblish_lite/window.py
Original file line number Diff line number Diff line change
Expand Up @@ -1063,18 +1063,18 @@ def on_was_acted(self, result):

models = self.data["models"]

error = result.get('error_info')
error = result.get('error')
if error:
records = result.get('records') or []
error_traceback = error['traceback']
fname, line_no, func, exc = error.traceback

records.append({
'label': error['msg'],
'label': str(error),
'type': 'error',
'filename': error['filename'],
'lineno': error['lineno'],
'func': error['func'],
'traceback': error['traceback'],
'filename': str(fname),
'lineno': str(line_no),
'func': str(func),
'traceback': error.formatted_traceback
})

result['records'] = records
Expand Down

0 comments on commit fbff4cb

Please sign in to comment.