reuse the code from quart_common.web.env to import env_bool and env_int into all classes that are useing this functions

This commit is contained in:
2026-04-06 03:33:22 +02:00
parent d89986dba9
commit 30eb17bb83
6 changed files with 24 additions and 74 deletions
+4 -12
View File
@@ -4,6 +4,7 @@ from typing import Any, cast
from time import perf_counter
import os
from quart_common.web.env import env_int
from server.dataset.RLBootstrapDataset import RLBootstrapDataset
from snakes.TemplateSnake import TemplateSnake
@@ -43,9 +44,9 @@ class BestBattleSnake(TemplateSnake):
self.duel_style = self._get_duel_style()
self.timeout_buffer_ms = self._get_timeout_buffer_ms()
self.rl_bootstrap = RLBootstrapDataset()
self.future_planning_depth = max(1, min(4, self._env_int("BATTLE_FUTURE_PLANNING_DEPTH", default=2)))
self.future_planning_branch = max(1, min(3, self._env_int("BATTLE_FUTURE_PLANNING_BRANCH", default=2)))
self.future_planning_min_time_ms = max(25, self._env_int("BATTLE_FUTURE_PLANNING_MIN_MS", default=70))
self.future_planning_depth = max(1, min(4, env_int("BATTLE_FUTURE_PLANNING_DEPTH", default=2)))
self.future_planning_branch = max(1, min(3, env_int("BATTLE_FUTURE_PLANNING_BRANCH", default=2)))
self.future_planning_min_time_ms = max(25, env_int("BATTLE_FUTURE_PLANNING_MIN_MS", default=70))
def _get_duel_style(self) -> str:
"""Resolve duel tuning style from `BATTLE_SNAKE_DUEL_STYLE` or `DUEL_STYLE`."""
@@ -86,15 +87,6 @@ class BestBattleSnake(TemplateSnake):
except ValueError:
return 120
def _env_int(self, name:str, default:int) -> int:
value = os.getenv(name)
if value is None:
return default
try:
return int(value)
except ValueError:
return default
def choose_move(self, game_data:GameBoard) -> str:
"""Pick the next move from a Battlesnake move request.
+6 -10
View File
@@ -4,6 +4,8 @@ from typing import Any, cast
from time import perf_counter
import heapq, os
from quart_common.web.env import env_int
from snakes.TemplateSnake import TemplateSnake
from server.GameBoard import GameBoard
from server.dataset.RLBootstrapDataset import RLBootstrapDataset
@@ -92,9 +94,9 @@ class UltimateBattleSnake(TemplateSnake):
self._bfs_cache: dict[tuple, int] = {}
self._bfs_cache_turn: int = -1
# Config
self._planning_depth = max(1, min(4, self._env_int("BATTLE_FUTURE_PLANNING_DEPTH", 2)))
self._planning_branch = max(1, min(3, self._env_int("BATTLE_FUTURE_PLANNING_BRANCH", 2)))
self._planning_min_ms = max(25, self._env_int("BATTLE_FUTURE_PLANNING_MIN_MS", 70))
self._planning_depth = max(1, min(4, env_int("BATTLE_FUTURE_PLANNING_DEPTH", 2)))
self._planning_branch = max(1, min(3, env_int("BATTLE_FUTURE_PLANNING_BRANCH", 2)))
self._planning_min_ms = max(25, env_int("BATTLE_FUTURE_PLANNING_MIN_MS", 70))
# RL bootstrap dataset recorder
self.rl_bootstrap = RLBootstrapDataset()
@@ -106,12 +108,6 @@ class UltimateBattleSnake(TemplateSnake):
except ValueError:
return 130
def _env_int(self, name: str, default: int) -> int:
try:
return int(os.getenv(name, str(default)))
except ValueError:
return default
def _get_duel_style(self) -> str:
raw = os.getenv("BATTLE_SNAKE_DUEL_STYLE", os.getenv("DUEL_STYLE", "balanced"))
style = raw.strip().lower()
@@ -138,7 +134,7 @@ class UltimateBattleSnake(TemplateSnake):
self.game_board = game_data
self.calculations = []
timeout_ms = game_data.get_timeout() if hasattr(game_data, "get_timeout") else 500
timeout_ms = (game_data.get_timeout() if hasattr(game_data, "get_timeout") else 500)
deadline = perf_counter() + (max(50, timeout_ms - self._get_timeout_buffer_ms()) / 1000.0)
game_id = getattr(game_data, "id", None)