from dataclasses import dataclass from typing import Optional @dataclass class BoardSettings: WIDTH: int = 21 HEIGHT: int = 21 OBSTACLE_COUNT: int = 10 @dataclass class InactivityWatchdogSettings: INACIVITY_TIMEOUT: int = 10 # seconds KICK_TIMEOUT: int = 60 * 10 # seconds TICK_INTERVAL: int = 1 # seconds @dataclass class WSServerSettings: HOST: str = "localhost" PORT: int = 8011 @dataclass class DebugSettings: PRINT_BOARD: bool = False CREATE_TEST_PLAYER: bool = False @dataclass class Settings: board: BoardSettings inacivity_watchdog: InactivityWatchdogSettings ws_server: WSServerSettings debug: Optional[DebugSettings] = None