File size: 777 Bytes
c4e2793 091dad0 109c904 c4e2793 091dad0 39b62b5 109c904 091dad0 dde8525 39b62b5 dde8525 091dad0 c4e2793 091dad0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import gradio as gr
import chess.pgn
from io import StringIO
from chess_puzzler import Generator, open_engine
from chess_puzzler.tagger import cook
def find_puzzles(pgn_text):
game = chess.pgn.read_game(StringIO(pgn_text))
if not game:
return None
engine = open_engine("/usr/games/stockfish", threads=2)
try:
puzzles = Generator(engine).analyze_game(game, tier=10, all_puzzles=True)
if not puzzles:
return None
for puzzle in puzzles:
puzzle.tags = cook(puzzle, engine=engine)
return [puzzle.to_dict() for puzzle in puzzles]
finally:
engine.close()
gr.Interface(
fn=find_puzzles,
inputs=gr.Textbox(label="Paste PGN", lines=10),
outputs=gr.JSON(label="Puzzle"),
).launch() |