1212
1313
1414class CompareMismatch (ValueError ):
15+
1516 def __init__ (self , name , mismatch ):
1617 super (CompareMismatch , self ).__init__ (name , mismatch )
1718 self .name = name
@@ -22,6 +23,7 @@ def __str__(self):
2223
2324
2425class Compare :
26+
2527 @staticmethod
2628 def __compare_two (name , content , std , grader ):
2729 (result , info ) = CYaRonGraders .invoke (grader , content , std )
@@ -67,21 +69,20 @@ def output(cls, *files, **kwargs):
6769 max_workers = kwargs ["max_workers" ]
6870 job_pool = kwargs ["job_pool" ]
6971 if kwargs ["stop_on_incorrect" ] is not None :
70- log .warn ("parameter stop_on_incorrect is deprecated and has no effect." )
72+ log .warn (
73+ "parameter stop_on_incorrect is deprecated and has no effect." )
7174
7275 if (max_workers is None or max_workers >= 0 ) and job_pool is None :
7376 max_workers = cls .__normal_max_workers (max_workers )
7477 try :
7578 from concurrent .futures import ThreadPoolExecutor
7679
7780 with ThreadPoolExecutor (max_workers = max_workers ) as job_pool :
78- return cls .output (
79- * files ,
80- std = std ,
81- grader = grader ,
82- max_workers = max_workers ,
83- job_pool = job_pool
84- )
81+ return cls .output (* files ,
82+ std = std ,
83+ grader = grader ,
84+ max_workers = max_workers ,
85+ job_pool = job_pool )
8586 except ImportError :
8687 pass
8788
@@ -124,47 +125,44 @@ def program(cls, *programs, **kwargs):
124125 max_workers = kwargs ["max_workers" ]
125126 job_pool = kwargs ["job_pool" ]
126127 if kwargs ["stop_on_incorrect" ] is not None :
127- log .warn ("parameter stop_on_incorrect is deprecated and has no effect." )
128+ log .warn (
129+ "parameter stop_on_incorrect is deprecated and has no effect." )
128130
129131 if (max_workers is None or max_workers >= 0 ) and job_pool is None :
130132 max_workers = cls .__normal_max_workers (max_workers )
131133 try :
132134 from concurrent .futures import ThreadPoolExecutor
133135
134136 with ThreadPoolExecutor (max_workers = max_workers ) as job_pool :
135- return cls .program (
136- * programs ,
137- input = input ,
138- std = std ,
139- std_program = std_program ,
140- grader = grader ,
141- max_workers = max_workers ,
142- job_pool = job_pool
143- )
137+ return cls .program (* programs ,
138+ input = input ,
139+ std = std ,
140+ std_program = std_program ,
141+ grader = grader ,
142+ max_workers = max_workers ,
143+ job_pool = job_pool )
144144 except ImportError :
145145 pass
146146
147147 if not isinstance (input , IO ):
148- raise TypeError (
149- "expect {}, got {}" . format ( type (IO ).__name__ , type ( input ). __name__ )
150- )
148+ raise TypeError ("expect {}, got {}" . format (
149+ type (IO ).__name__ ,
150+ type ( input ). __name__ ) )
151151 input .flush_buffer ()
152152 input .input_file .seek (0 )
153153
154154 if std_program is not None :
155155
156156 def get_std ():
157- with open (
158- os .dup (input .input_file .fileno ()), "r" , newline = "\n "
159- ) as input_file :
157+ with open (os .dup (input .input_file .fileno ()), "r" ,
158+ newline = "\n " ) as input_file :
160159 content = make_unicode (
161160 subprocess .check_output (
162161 std_program ,
163162 shell = (not list_like (std_program )),
164163 stdin = input .input_file ,
165164 universal_newlines = True ,
166- )
167- )
165+ ))
168166 input_file .seek (0 )
169167 return content
170168
@@ -188,24 +186,19 @@ def get_std():
188186
189187 def do (program_name ):
190188 timeout = None
191- if (
192- list_like (program_name )
193- and len (program_name ) == 2
194- and int_like (program_name [- 1 ])
195- ):
189+ if (list_like (program_name ) and len (program_name ) == 2
190+ and int_like (program_name [- 1 ])):
196191 program_name , timeout = program_name
197- with open (
198- os .dup (input .input_file .fileno ()), "r" , newline = "\n "
199- ) as input_file :
192+ with open (os .dup (input .input_file .fileno ()), "r" ,
193+ newline = "\n " ) as input_file :
200194 if timeout is None :
201195 content = make_unicode (
202196 subprocess .check_output (
203197 program_name ,
204198 shell = (not list_like (program_name )),
205199 stdin = input_file ,
206200 universal_newlines = True ,
207- )
208- )
201+ ))
209202 else :
210203 content = make_unicode (
211204 subprocess .check_output (
@@ -214,8 +207,7 @@ def do(program_name):
214207 stdin = input_file ,
215208 universal_newlines = True ,
216209 timeout = timeout ,
217- )
218- )
210+ ))
219211 input_file .seek (0 )
220212 cls .__compare_two (program_name , content , std , grader )
221213
0 commit comments