mirror of
https://github.com/kuhyx/testsAndMisc-archive.git
synced 2026-11-10 21:07:05 +01:00
Split 18+ Python files that exceeded 500 lines into smaller modules with helper files (prefixed with _). All functions are re-exported from the original modules to maintain backward compatibility with test patches and external imports. Files split: - moviepy_showcase.py (1212 -> 302 + 3 helpers) - anki_generator.py (1174 -> 473 + 4 helpers) - test_analyze_chess_game.py (1152 -> 361 + 2 parts) - poker_modifier_app.py (1024 -> 263 + 2 helpers) - transcribe_fw.py (1007 -> 342 + 3 helpers) - music_generator.py (1002 -> 319 + 2 helpers) - translator.py (951 -> 442 + 2 helpers) - cinema_planner.py (893 -> 369 + 2 helpers) - lichess_bot/main.py (757 -> 495 + _game_logic.py) - test_translator.py (725 -> 289 + part2 + conftest) - test_lichess_api.py (680 -> 475 + part2) - learning_pipe.py (668 -> 375 + 2 helpers) - cache.py (655 -> 360 + _cache_decks.py) - analyze_chess_game.py (632 -> 463 + _move_analysis.py) - visualize_q02.py (609 -> 371 + helper) - repo_explorer.py (602 -> 347 + 2 helpers) - keyboard_coop/main.py (515 -> 416 + _dictionary.py) - scanning.py (501 -> 314 + _enforce_loop.py) All tests pass: 144 lichess_bot (100% branch coverage), 243 others. No new lint errors introduced.
89 lines
1.6 KiB
Python
89 lines
1.6 KiB
Python
"""Dictionary loading for the keyboard cooperative word game."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import logging
|
|
from pathlib import Path
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
_FALLBACK_DICTIONARY = {
|
|
"cat",
|
|
"dog",
|
|
"car",
|
|
"bat",
|
|
"rat",
|
|
"hat",
|
|
"mat",
|
|
"sat",
|
|
"fat",
|
|
"pat",
|
|
"the",
|
|
"and",
|
|
"for",
|
|
"are",
|
|
"but",
|
|
"not",
|
|
"you",
|
|
"all",
|
|
"can",
|
|
"had",
|
|
"her",
|
|
"was",
|
|
"one",
|
|
"our",
|
|
"out",
|
|
"day",
|
|
"get",
|
|
"has",
|
|
"him",
|
|
"his",
|
|
"how",
|
|
"man",
|
|
"new",
|
|
"now",
|
|
"old",
|
|
"see",
|
|
"two",
|
|
"way",
|
|
"who",
|
|
"boy",
|
|
"work",
|
|
"know",
|
|
"place",
|
|
"year",
|
|
"live",
|
|
"me",
|
|
"back",
|
|
"give",
|
|
"good",
|
|
}
|
|
|
|
|
|
def load_dictionary(dictionary_dir: Path) -> set[str]:
|
|
"""Load dictionary from words_dictionary.json file.
|
|
|
|
Args:
|
|
dictionary_dir: Directory containing words_dictionary.json.
|
|
|
|
Returns:
|
|
Set of valid English words.
|
|
"""
|
|
try:
|
|
dictionary_path = dictionary_dir / "words_dictionary.json"
|
|
with dictionary_path.open(encoding="utf-8") as f:
|
|
dictionary_data = json.load(f)
|
|
# Convert to set for faster lookup (we only need the keys)
|
|
return set(dictionary_data.keys())
|
|
except FileNotFoundError:
|
|
_logger.warning(
|
|
"words_dictionary.json not found, using fallback dictionary"
|
|
)
|
|
return set(_FALLBACK_DICTIONARY)
|
|
except json.JSONDecodeError:
|
|
_logger.warning(
|
|
"Error reading words_dictionary.json, using fallback dictionary"
|
|
)
|
|
return set(_FALLBACK_DICTIONARY)
|