fix circular import errors so the server and start again

This commit is contained in:
2026-04-06 04:30:02 +02:00
parent 98be2fe6fe
commit 43c7720480
8 changed files with 39 additions and 18 deletions
+11 -7
View File
@@ -1,5 +1,9 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from server.GameBoard import GameBoard
from server.dataset.Dataset import Dataset
from server.GameBoard import GameBoard
from server.Files import save_file
import aiofiles
@@ -21,7 +25,7 @@ class LocalStorage:
self.dataset_compress_rotated = os.getenv("DATASET_COMPRESS_ROTATED", "true").strip().lower() in ("1", "true", "yes", "on")
self.dataset_max_bytes = int(float(os.getenv("DATASET_JSONL_MAX_MB", "50")) * 1024 * 1024)
def _get_active_dataset_path(self, game_board:GameBoard):
def _get_active_dataset_path(self, game_board:'GameBoard'):
if not self.dataset_rotate_daily:
return self.dataset_jsonl_path
@@ -60,7 +64,7 @@ class LocalStorage:
self._gzip_file(os.path.join(folder, name))
async def _rotate_if_needed(self, active_path:str, game_board:GameBoard):
async def _rotate_if_needed(self, active_path:str, game_board:'GameBoard'):
if self.dataset_max_bytes <= 0:
return
if not await aiofiles.os.path.exists(active_path):
@@ -81,7 +85,7 @@ class LocalStorage:
if self.dataset_compress_rotated:
self._gzip_file(rotated_path)
def _build_dataset_rows(self, dataset_payload:dict, game_board:GameBoard):
def _build_dataset_rows(self, dataset_payload:dict, game_board:'GameBoard'):
game_info = dataset_payload.get("game", {})
snake_info = dataset_payload.get("snake", {})
@@ -102,7 +106,7 @@ class LocalStorage:
})
return rows
async def _append_dataset_jsonl(self, dataset_payload:dict, game_board:GameBoard):
async def _append_dataset_jsonl(self, dataset_payload:dict, game_board:'GameBoard'):
rows = self._build_dataset_rows(dataset_payload, game_board)
if len(rows) == 0:
return
@@ -116,7 +120,7 @@ class LocalStorage:
for row in rows:
await f.write(json.dumps(row, ensure_ascii=False) + "\n")
def _get_correct_folder_for_save_file(self, game_board:GameBoard, file_name:str, game_type:str, leader_board:bool, winner:bool):
def _get_correct_folder_for_save_file(self, game_board:'GameBoard', file_name:str, game_type:str, leader_board:bool, winner:bool):
storage_folder = self.file_path
if leader_board:
storage_folder = os.path.join(storage_folder, "00_Leaderboards")
@@ -136,7 +140,7 @@ class LocalStorage:
return os.path.join(storage_folder, file_name)
async def save(self, game_board:GameBoard):
async def save(self, game_board:'GameBoard'):
game_type = game_board.get_type_of_game()
dataset = Dataset(game_board).build(only_good_moves=True)