8
8
9
9
from python import ioi_format , terry_format
10
10
from python .args import get_parser , UIS
11
- from python .detect_format import detect_format
11
+ from python .detect_format import find_task_dir
12
12
from python .manager import get_manager , became_manager , became_server , \
13
13
became_worker
14
14
@@ -56,39 +56,40 @@ def main() -> None:
56
56
if args .kill_manager or args .quit_manager :
57
57
return
58
58
59
- os . chdir (args .task_dir )
60
-
61
- if not args . format :
62
- args . format = detect_format ( )
63
- if not args .format :
59
+ task_dir , format = find_task_dir (args .task_dir , args . max_depth )
60
+ if not format :
61
+ raise ValueError (
62
+ "Cannot detect format! It's probable that the task is ill-formed" )
63
+ if args . format is not None and format != args .format :
64
64
raise ValueError (
65
- "Cannot autodetect format! Try to pass --format to explicitly set "
66
- "it. It's probable that the task is ill-formed" )
65
+ "Detected format mismatch the required one: %s" % format )
66
+
67
+ os .chdir (task_dir )
67
68
68
69
if args .clean :
69
- if args . format == "ioi" :
70
+ if format == "ioi" :
70
71
ioi_format_clean (args )
71
- elif args . format == "terry" :
72
+ elif format == "terry" :
72
73
terry_format_clean (args )
73
74
else :
74
- raise ValueError ("Format %s not supported" % args . format )
75
+ raise ValueError ("Format %s not supported" % format )
75
76
return
76
77
77
78
manager = get_manager (args )
78
79
79
- if args . format == "ioi" :
80
+ if format == "ioi" :
80
81
request = ioi_format .get_request (args )
81
82
solutions = [os .path .basename (sol .path ) for sol in request .solutions ]
82
- elif args . format == "terry" :
83
+ elif format == "terry" :
83
84
request = terry_format .get_request (args )
84
85
solutions = [os .path .basename (sol .solution .path ) for sol in
85
86
request .solutions ]
86
87
else :
87
- raise ValueError ("Format %s not supported" % args . format )
88
+ raise ValueError ("Format %s not supported" % format )
88
89
89
- ui = UIS [args .ui ](solutions , args . format )
90
+ ui = UIS [args .ui ](solutions , format )
90
91
91
- if args . format == "ioi" :
92
+ if format == "ioi" :
92
93
ui .set_task_name ("%s (%s)" % (request .task .title , request .task .name ))
93
94
ui .set_time_limit (request .task .time_limit )
94
95
ui .set_memory_limit (request .task .memory_limit_kb )
@@ -100,11 +101,11 @@ def main() -> None:
100
101
sorted (subtask .testcases .keys ()))
101
102
ui .set_max_score (sum (subtask .max_score for subtask in
102
103
request .task .subtasks .values ()))
103
- elif args . format == "terry" :
104
+ elif format == "terry" :
104
105
ui .set_task_name ("%s (%s)" % (request .task .title , request .task .name ))
105
106
ui .set_max_score (request .task .max_score )
106
107
else :
107
- raise ValueError ("Format %s not supported" % args . format )
108
+ raise ValueError ("Format %s not supported" % format )
108
109
109
110
eval_id = None
110
111
@@ -117,12 +118,12 @@ def stop_server(signum: int, _: Any) -> None:
117
118
signal .signal (signal .SIGINT , stop_server )
118
119
signal .signal (signal .SIGTERM , stop_server )
119
120
120
- if args . format == "ioi" :
121
+ if format == "ioi" :
121
122
events = manager .EvaluateTask (request )
122
- elif args . format == "terry" :
123
+ elif format == "terry" :
123
124
events = manager .EvaluateTerryTask (request )
124
125
else :
125
- raise NotImplementedError ("Format %s not supported" % args . format )
126
+ raise NotImplementedError ("Format %s not supported" % format )
126
127
127
128
for event in events :
128
129
event_type = event .WhichOneof ("event_oneof" )
0 commit comments