mirror of
https://github.com/kuhyx/testsAndMisc.git
synced 2026-07-04 18:43:08 +02:00
- Remove all # type: ignore and # noqa comments (banned by no-noqa hook) - Add mypy --disable-error-code flags to pre-commit config for error codes previously suppressed by inline comments - Fix broken imports after ruff auto-removed re-exports: steam_backlog_enforcer, stockfish_analysis, word_frequency, lichess_bot - Re-add re-exports with __all__ in translator.py, screen_lock.py - Split _process_epc_fc.py (524 lines) into _process_epc_fc.py + _process_fc.py - Fix test failures: keyboard_coop, stockfish_analysis, tag_divider - Add per-file-ignores for PLC0415 (deferred imports) in 7 files - Mark shebang scripts as executable - Add __init__.py for generate_images and repo_explorer packages - Fix codespell, eslint, ruff-format, prettier issues - Update copilot-instructions.md with --no-verify ban
90 lines
1.7 KiB
Python
90 lines
1.7 KiB
Python
"""Dictionary loading for the keyboard cooperative word game."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
import logging
|
|
from typing import TYPE_CHECKING
|
|
|
|
if TYPE_CHECKING:
|
|
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)
|