dev test
This commit is contained in:
40
judge/utils.py
Normal file
40
judge/utils.py
Normal file
@@ -0,0 +1,40 @@
|
||||
# coding=utf-8
|
||||
from judge_exceptions import JudgeClientError
|
||||
|
||||
|
||||
def parse_lrun_output(output):
|
||||
lines = output.split("\n")
|
||||
if len(lines) != 7:
|
||||
raise JudgeClientError("Lrun result parse error")
|
||||
result = {}
|
||||
# 将lrun输出的各种带下划线 不带下划线的字符串统一处理
|
||||
translate = {"MEMORY": "memory",
|
||||
"CPUTIME": "cpu_time",
|
||||
"CPU_TIME": "cpu_time",
|
||||
"REALTIME": "real_time",
|
||||
"REAL_TIME": "real_time",
|
||||
"TERMSIG": "term_sig",
|
||||
"SIGNALED": "siginaled",
|
||||
"EXITCODE": "exit_code",
|
||||
"EXCEED": "exceed"}
|
||||
for line in lines:
|
||||
name = line[:9].strip(" ")
|
||||
value = line[9:]
|
||||
if name == "MEMORY":
|
||||
result[translate[name]] = int(value)
|
||||
elif name == "CPUTIME":
|
||||
result[translate[name]] = int(float(value) * 1000)
|
||||
elif name == "REALTIME":
|
||||
result[translate[name]] = int(float(value) * 1000)
|
||||
elif name == "EXITCODE":
|
||||
result[translate[name]] = int(value)
|
||||
elif name == "TERMSIG":
|
||||
result[translate[name]] = int(value)
|
||||
elif name == "SIGNALED":
|
||||
result[translate[name]] = int(value)
|
||||
elif name == "EXCEED":
|
||||
if value == "none":
|
||||
result[translate[name]] = None
|
||||
else:
|
||||
result[translate[name]] = translate[value]
|
||||
return result
|
||||
Reference in New Issue
Block a user