testsAndMisc/PYTHON/stockfish_analysis
Krzysztof kuhy Rudnicki 87cbcd5ff6 fix(lint): remove style preference rules from global ignores
Fixed violations:
- PERF401: Use list comprehension (downloadCats, split)
- SIM102: Combine nested if statements (keyboardCoop)
- SIM113: Use enumerate (lichess_bot/tests)
- B904: Add 'from None/e' to raises (engine, stockfish_analysis, generate_blunder_tests)
- TRY300: Move return to else block (screen_locker)

Per-file ignores added for TRY301:
- lichess_bot/main.py: Null checks on subprocess streams
- randomize_numbers/random_digits.py: Input validation

Removed from global ignore (no violations):
- RUF005, SIM103, SIM105, SIM108

Global ignore now only contains unavoidable conflicts:
- D203/D213: Docstring style conflicts
- COM812/ISC001: Formatter conflicts (per ruff docs)
2025-11-30 20:47:38 +01:00
..
analyze_chess_game.py fix(lint): remove style preference rules from global ignores 2025-11-30 20:47:38 +01:00
README.md fix: correct shebang and executable permissions 2025-11-30 13:42:16 +01:00
requirements.txt fix: correct shebang and executable permissions 2025-11-30 13:42:16 +01:00
run.sh feat: make the analyze chess game script use more pc resources 2025-08-22 22:30:47 +02:00

Chess move analysis with Stockfish

This utility parses a PGN (or a log that contains a PGN section) and evaluates each move with a local Stockfish engine, printing a per-move quality rating.

Install

Install python dependencies:

pip install -r PYTHON/stockfish_analysis/requirements.txt

Ensure Stockfish is installed and available in your PATH (or provide the path via --engine). On Linux, you can typically install with your package manager or download a binary.

Run

From the repo root:

python3 PYTHON/analyze_chess_game.py lichess_bot_game_8GSdY3Ci.log

Options:

  • --engine /path/to/stockfish to specify a custom engine path
  • --time 0.2 seconds per evaluation (default)
  • --depth 12 fixed depth instead of time

The script prints a table with, for each ply:

  • side to move, SAN move, eval before/after from mover's POV, delta, classification, and Stockfish best move suggestion.