fix relative .data_parser imports in BOT/* after SHARED move (#1224)

PR #1223 + fixup moved data_parser into BOTS/SHARED, but five BOT modules
(analytics, autologging, botscript, lux_apis, meta_manager) still used
`from .data_parser import ...`. That relative form looks inside the BOT
package, which no longer contains data_parser, so the bot crashed at
startup with ModuleNotFoundError.

Add BOT/__init__.py to put BOTS/SHARED on sys.path at package import,
then switch all five files to absolute `from data_parser import ...`.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
NotSoToothless
2026-05-13 23:30:15 -07:00
committed by GitHub
parent 2b399fdb81
commit ff420e131f
6 changed files with 17 additions and 5 deletions
+12
View File
@@ -0,0 +1,12 @@
"""SREBOT bot package.
Bootstraps the sibling BOTS/SHARED directory onto sys.path so that
`from data_parser import ...` (and other SHARED-only modules) resolve
regardless of which submodule gets imported first.
"""
import sys
from pathlib import Path
_SHARED_DIR = Path(__file__).resolve().parents[2] / "SHARED"
if str(_SHARED_DIR) not in sys.path:
sys.path.insert(0, str(_SHARED_DIR))
+1 -1
View File
@@ -17,7 +17,7 @@ from datetime import datetime, timezone
import aiosqlite
# Local Module Imports
from .data_parser import get_unit_type_abbrev
from data_parser import get_unit_type_abbrev
from .utils import SQ_BATTLES_DB_PATH, decompress_json
+1 -1
View File
@@ -27,7 +27,7 @@ import pygob
# Local Module Imports
from . import utils
from .data_parser import LangTableReader
from data_parser import LangTableReader
from .game_api import get_point_diff
from .gob import load_gob_file, render_gob
from .health import record_game_processed, record_ws_message
+1 -1
View File
@@ -46,7 +46,7 @@ from .analytics import (
get_time_performance, get_matchup_history,
)
from .autologging import init_players_db, load_replay_data_from_disk, build_scoreboard_view
from .data_parser import LangTableReader, count_unit_types, get_unit_type_abbrev, normalize_name
from data_parser import LangTableReader, count_unit_types, get_unit_type_abbrev, normalize_name
from .game_api import (
ClanInfoError,
obtain_clan_info_api,
+1 -1
View File
@@ -22,7 +22,7 @@ from websockets.asyncio.client import connect as wsconnect
# Local Module Imports
try:
from .data_parser import LangTableReader
from data_parser import LangTableReader
from .utils import REPLAYS_DIR
except ImportError:
LangTableReader = None # Running directly, not as module
+1 -1
View File
@@ -17,7 +17,7 @@ from typing import Any, Dict, List, Tuple, Optional
import aiosqlite
# Local Module Imports
from .data_parser import LangTableReader, normalize_name
from data_parser import LangTableReader, normalize_name
from .game_api import obtain_clan_new_points, obtain_player_data_api
from .utils import STORAGE_DIR, SQUADRONS_DB_PATH, compress_json, decompress_json