import os import shutil from pathlib import Path class Config: def __init__(self): self.working_dir = Path("working").resolve() self.pkg_timeout = self._get_env_float("PACKAGE_INSTALLATION_TIMEOUT_SEC", 600) self.code_timeout = self._get_env_float("CODE_EXECUTION_TIMEOUT_SEC", 600) self.command_timeout = self._get_env_float("COMMAND_EXECUTION_TIMEOUT_SEC", 600) self.share_online = self._get_env_bool("SHARE_ONLINE", False) def setup_working_dir(self) -> None: if self.working_dir.exists(): shutil.rmtree(self.working_dir) self.working_dir.mkdir(parents=True) def _get_env_float(self, env_var: str, default: float) -> float: value_str = os.getenv(env_var) if value_str is None: return default try: return float(value_str) except ValueError: raise ValueError(f"{env_var} must be a valid number.") def _get_env_bool(self, env_var: str, default: bool) -> bool: value_str = os.getenv(env_var) if value_str is None: return default return value_str.lower() == "true" config = Config()