puzzler / app.py
christopher's picture
Update app.py
39b62b5 verified
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:
puzzle = Generator(engine).analyze_game(game, tier=10)
if not puzzle:
return None
puzzle.tags = cook(puzzle)
return puzzle.to_dict()
finally:
engine.close()
gr.Interface(
fn=find_puzzles,
inputs=gr.Textbox(label="Paste PGN", lines=10),
outputs=gr.JSON(label="Puzzle"),
).launch()