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()