|
25 | 25 | import os |
26 | 26 |
|
27 | 27 | from cms.db import Executable |
| 28 | +from cms.db.filecacher import FileCacher |
| 29 | +from cms.grading.Job import CompilationJob, EvaluationJob |
28 | 30 | from cms.grading.ParameterTypes import ParameterTypeCollection, \ |
29 | 31 | ParameterTypeChoice, ParameterTypeString |
30 | 32 | from cms.grading.language import Language |
@@ -196,15 +198,15 @@ def _executable_filename(codenames: Iterable[str], language: Language) -> str: |
196 | 198 | for codename in codenames)) |
197 | 199 | return name + language.executable_extension |
198 | 200 |
|
199 | | - def _do_compile(self, job, file_cacher): |
| 201 | + def _do_compile(self, job: CompilationJob, file_cacher: FileCacher): |
200 | 202 | language = get_language(job.language) |
201 | 203 | source_ext = language.source_extension |
202 | 204 |
|
203 | 205 | # Create the list of filenames to be passed to the compiler. If we use |
204 | 206 | # a grader, it needs to be in first position in the command line, and |
205 | 207 | # we check that it exists. |
206 | | - filenames_to_compile = [] |
207 | | - filenames_and_digests_to_get = {} |
| 208 | + filenames_to_compile: list[str] = [] |
| 209 | + filenames_and_digests_to_get: dict[str, str] = {} |
208 | 210 | # The grader, that must have been provided (copy and add to |
209 | 211 | # compilation). |
210 | 212 | if self._uses_grader(): |
@@ -258,16 +260,16 @@ def _do_compile(self, job, file_cacher): |
258 | 260 | Executable(executable_filename, digest) |
259 | 261 |
|
260 | 262 | # Cleanup. |
261 | | - delete_sandbox(sandbox, job) |
| 263 | + delete_sandbox(sandbox, job, file_cacher) |
262 | 264 |
|
263 | | - def compile(self, job, file_cacher): |
| 265 | + def compile(self, job: CompilationJob, file_cacher: FileCacher): |
264 | 266 | """See TaskType.compile.""" |
265 | 267 | if not check_files_number(job, 1, or_more=True): |
266 | 268 | return |
267 | 269 |
|
268 | 270 | self._do_compile(job, file_cacher) |
269 | 271 |
|
270 | | - def _execution_step(self, job, file_cacher): |
| 272 | + def _execution_step(self, job: EvaluationJob, file_cacher: FileCacher): |
271 | 273 | # Prepare the execution |
272 | 274 | executable_filename = next(iter(job.executables.keys())) |
273 | 275 | language = get_language(job.language) |
@@ -385,7 +387,7 @@ def _evaluate_step(self, job, file_cacher, output_file_params, outcome, text, st |
385 | 387 | job.admin_text = admin_text |
386 | 388 |
|
387 | 389 | if sandbox is not None: |
388 | | - delete_sandbox(sandbox, job) |
| 390 | + delete_sandbox(sandbox, job, file_cacher) |
389 | 391 |
|
390 | 392 | def evaluate(self, job, file_cacher): |
391 | 393 | """See TaskType.evaluate.""" |
|
0 commit comments