From 183e6f154597d89ed4a691388d0cf9c9fb6789f2 Mon Sep 17 00:00:00 2001 From: jon-lee Date: Thu, 22 May 2025 15:27:50 +0800 Subject: [PATCH] feat: add DEFAULT_PROC_LIMIT n DEFAULT_CLOCK_LIMIT_MULTIPLIER --- joj3_config_generator/models/const.py | 2 ++ joj3_config_generator/models/result.py | 9 +++++++-- joj3_config_generator/transformers/task.py | 8 ++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/joj3_config_generator/models/const.py b/joj3_config_generator/models/const.py index 33de35b..491371f 100644 --- a/joj3_config_generator/models/const.py +++ b/joj3_config_generator/models/const.py @@ -6,6 +6,8 @@ DEFAULT_CPU_LIMIT = Time("1s") DEFAULT_MEMORY_LIMIT = Memory("256m") DEFAULT_FILE_LIMIT = Memory("32m") DEFAULT_CASE_SCORE = 5 +DEFAULT_CLOCK_LIMIT_MULTIPLIER = 2 +DEFAULT_PROC_LIMIT = 50 JOJ3_CONFIG_ROOT = Path("/home/tt/.config/joj") TEAPOT_CONFIG_ROOT = Path("/home/tt/.config/teapot") diff --git a/joj3_config_generator/models/result.py b/joj3_config_generator/models/result.py index 308c73a..bf171cb 100644 --- a/joj3_config_generator/models/result.py +++ b/joj3_config_generator/models/result.py @@ -3,9 +3,11 @@ from typing import TYPE_CHECKING, Any, Dict, List, Optional, Union from pydantic import BaseModel, ConfigDict, Field, field_validator from joj3_config_generator.models.const import ( + DEFAULT_CLOCK_LIMIT_MULTIPLIER, DEFAULT_CPU_LIMIT, DEFAULT_FILE_LIMIT, DEFAULT_MEMORY_LIMIT, + DEFAULT_PROC_LIMIT, ) @@ -49,10 +51,13 @@ class Cmd(BaseModel): stdout: Union[Collector, StreamOut] = Collector(name="stdout") stderr: Union[Collector, StreamOut] = Collector(name="stderr") cpu_limit: int = Field(DEFAULT_CPU_LIMIT, serialization_alias="cpuLimit") - clock_limit: int = Field(2 * DEFAULT_CPU_LIMIT, serialization_alias="clockLimit") + clock_limit: int = Field( + DEFAULT_CLOCK_LIMIT_MULTIPLIER * DEFAULT_CPU_LIMIT, + serialization_alias="clockLimit", + ) memory_limit: int = Field(DEFAULT_MEMORY_LIMIT, serialization_alias="memoryLimit") stack_limit: int = Field(0, serialization_alias="stackLimit") - proc_limit: int = Field(50, serialization_alias="procLimit") + proc_limit: int = Field(DEFAULT_PROC_LIMIT, serialization_alias="procLimit") cpu_rate_limit: int = Field(0, serialization_alias="cpuRateLimit") cpu_set_limit: str = Field("", serialization_alias="cpuSetLimit") copy_in: Dict[str, InputFile] = Field({}, serialization_alias="copyIn") diff --git a/joj3_config_generator/transformers/task.py b/joj3_config_generator/transformers/task.py index 3dcbcbe..d907504 100644 --- a/joj3_config_generator/transformers/task.py +++ b/joj3_config_generator/transformers/task.py @@ -203,11 +203,14 @@ def fix_diff( # duplicate with the fallback case in executor.with_ if cmd.cpu_limit == const.DEFAULT_CPU_LIMIT: cmd.cpu_limit = None - if cmd.clock_limit == 2 * const.DEFAULT_CPU_LIMIT: + if ( + cmd.clock_limit + == const.DEFAULT_CLOCK_LIMIT_MULTIPLIER * const.DEFAULT_CPU_LIMIT + ): cmd.clock_limit = None if cmd.memory_limit == const.DEFAULT_MEMORY_LIMIT: cmd.memory_limit = None - if cmd.proc_limit == executor.with_.default.proc_limit: + if cmd.proc_limit == const.DEFAULT_PROC_LIMIT: cmd.proc_limit = None stage_cases.append(cmd) parser_case = result.DiffCasesConfig( @@ -229,6 +232,7 @@ def fix_diff( cpu_limit=None, clock_limit=None, memory_limit=None, + proc_limit=None, ) stage_cases.append(cmd) parser_case = result.DiffCasesConfig(