From 5ff1c6ae60ed9624d775afa57dd97ee8b20a5507 Mon Sep 17 00:00:00 2001 From: Jonathan Irvin Gunawan Date: Tue, 16 Mar 2021 23:01:59 +0800 Subject: [PATCH 1/4] Use SCORE_MODE_MAX_SUBTASK as default score_mode for tps loader --- cmscontrib/loaders/tps.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmscontrib/loaders/tps.py b/cmscontrib/loaders/tps.py index aacbea9ee4..cf7d2cbf38 100644 --- a/cmscontrib/loaders/tps.py +++ b/cmscontrib/loaders/tps.py @@ -26,6 +26,7 @@ from datetime import timedelta from cms.db import Task, Dataset, Manager, Testcase, Attachment, Statement +from cmscommon.constants import SCORE_MODE_MAX_SUBTASK from .base_loader import TaskLoader @@ -123,6 +124,7 @@ def get_task(self, get_statement=True): args["name"] = name args["title"] = data['name'] + args["score_mode"] = SCORE_MODE_MAX_SUBTASK # Statements if get_statement: From 97d2943faa6b2a822c89698fd8445d774d5ae27e Mon Sep 17 00:00:00 2001 From: Jonathan Irvin Gunawan Date: Fri, 22 Jul 2022 01:35:29 +0800 Subject: [PATCH 2/4] tps loader: Compile manager and checker using gnu++17 --- cmscontrib/loaders/tps.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmscontrib/loaders/tps.py b/cmscontrib/loaders/tps.py index cf7d2cbf38..0e3faf73a4 100644 --- a/cmscontrib/loaders/tps.py +++ b/cmscontrib/loaders/tps.py @@ -231,7 +231,7 @@ def get_task(self, get_statement=True): logger.info("Checker found, compiling") checker_exe = os.path.join(checker_dir, "checker") ret = subprocess.call([ - "g++", "-x", "c++", "-std=gnu++14", "-O2", "-static", + "g++", "-x", "c++", "-std=gnu++17", "-O2", "-static", "-o", checker_exe, checker_src ]) if ret != 0: @@ -289,7 +289,7 @@ def get_task(self, get_statement=True): logger.info("Manager found, compiling") manager_exe = os.path.join(graders_dir, "manager") ret = subprocess.call([ - "g++", "-x", "c++", "-O2", "-static", + "g++", "-x", "c++", "-std=gnu++17", "-O2", "-static", "-o", manager_exe, manager_src ]) if ret != 0: From f996762cc8128b61773e92a57e34a07946e176e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= Date: Sun, 20 Aug 2023 01:31:45 +0200 Subject: [PATCH 3/4] loaders/tps: add support for setting the `feedback_level` of a task MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suggested-by: Németh Zsolt <37755878+birka0@users.noreply.github.com> --- cmscontrib/loaders/tps.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmscontrib/loaders/tps.py b/cmscontrib/loaders/tps.py index 0e3faf73a4..6b82f89495 100644 --- a/cmscontrib/loaders/tps.py +++ b/cmscontrib/loaders/tps.py @@ -25,6 +25,7 @@ import subprocess from datetime import timedelta +from cms import FEEDBACK_LEVEL_FULL, FEEDBACK_LEVEL_RESTRICTED, FEEDBACK_LEVEL_OI_RESTRICTED from cms.db import Task, Dataset, Manager, Testcase, Attachment, Statement from cmscommon.constants import SCORE_MODE_MAX_SUBTASK from .base_loader import TaskLoader @@ -126,6 +127,14 @@ def get_task(self, get_statement=True): args["title"] = data['name'] args["score_mode"] = SCORE_MODE_MAX_SUBTASK + feedback_level = data.get("feedback_level", None) + if feedback_level: + if feedback_level not in (FEEDBACK_LEVEL_FULL, FEEDBACK_LEVEL_RESTRICTED, FEEDBACK_LEVEL_OI_RESTRICTED): + logger.critical(f"invalid feedback_level: {feedback_level}") + return None + + args["feedback_level"] = feedback_level + # Statements if get_statement: statements_dir = os.path.join(self.path, 'statements') From b7bb63812e96c6a35bfc250a6b8d5aba6f9471b8 Mon Sep 17 00:00:00 2001 From: IOI Date: Mon, 15 Jul 2024 23:41:21 +0300 Subject: [PATCH 4/4] Set TPS Default Pipe for Comunication Task to std_io --- cmscontrib/loaders/tps.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmscontrib/loaders/tps.py b/cmscontrib/loaders/tps.py index 6b82f89495..2ba4737ab2 100644 --- a/cmscontrib/loaders/tps.py +++ b/cmscontrib/loaders/tps.py @@ -99,7 +99,7 @@ def _get_task_type_parameters(self, data, task_type, evaluation_param): par_processes = '%s_num_processes' % par_prefix if par_processes not in task_type_parameters: task_type_parameters[par_processes] = 1 - return [task_type_parameters[par_processes], "stub", "fifo_io"] + return [task_type_parameters[par_processes], "stub", "std_io"] if task_type == 'TwoSteps' or task_type == 'OutputOnly': return [evaluation_param]