def __init__(self, quiz, host_view, result, loop = None):
self.quiz = quiz
self.host_view = host_view
self.result = result
self.loop = loop
self.logger = logging.getLogger(__name__)
if result:
if 'status_code' not in result:
raise ValueError('Unknow result format: %s' % json.dumps(result))
if result['status_code'] is 20:
self.listbox = self.make_compile_error_view()
elif result['status_code'] is 10:
self.listbox = self.make_success_view()
elif result['status_code'] is 11:
self.listbox = self.make_failed_view()
elif result['status_code'] is 12:# memeory limit exceeded
self.listbox = self.make_unified_error_view("Memory Limit Exceeded")
elif result['status_code'] is 13:# output limit exceeded
self.listbox = self.make_unified_error_view("Output Limit Exceeded")
elif result['status_code'] is 14:# timeout
self.listbox = self.make_unified_error_view("Time Limit Exceeded")
elif result['status_code'] is 15:
self.listbox = self.make_runtime_error_view()
else:
raise ValueError('Unknow status code: %d' % result['status_code'])
else:
raise ValueError('result shouldn\'t be None')
self.overlay = urwid.Overlay(urwid.LineBox(self.listbox), host_view,
align='center', width=('relative', 95),
valign='middle', height=('relative', 95),
min_width=40, min_height=40)
footer = urwid.Pile([urwid.Text('Press Esc to close this view.', align='center'),
urwid.Divider()])
urwid.Frame.__init__(self, self.overlay, footer=footer)
评论列表
文章目录