| import shutil | |
| from pathlib import Path | |
| from gradio_client import Client | |
| from tqdm import tqdm | |
| themes = [ | |
| "advancedPawn", | |
| "advantage", | |
| "anastasiaMate", | |
| "arabianMate", | |
| "attackingF2F7", | |
| "attraction", | |
| "backRankMate", | |
| "bishopEndgame", | |
| "bodenMate", | |
| "castling", | |
| "capturingDefender", | |
| "crushing", | |
| "doubleBishopMate", | |
| "dovetailMate", | |
| "equality", | |
| "kingsideAttack", | |
| "clearance", | |
| "defensiveMove", | |
| "deflection", | |
| "discoveredAttack", | |
| "doubleCheck", | |
| "endgame", | |
| "exposedKing", | |
| "fork", | |
| "hangingPiece", | |
| "hookMate", | |
| "interference", | |
| "intermezzo", | |
| "knightEndgame", | |
| "long", | |
| "master", | |
| "masterVsMaster", | |
| "mate", | |
| "mateIn1", | |
| "mateIn2", | |
| "mateIn3", | |
| "mateIn4", | |
| "mateIn5", | |
| "middlegame", | |
| "oneMove", | |
| "opening", | |
| "pawnEndgame", | |
| "pin", | |
| "promotion", | |
| "queenEndgame", | |
| "queenRookEndgame", | |
| "queensideAttack", | |
| "quietMove", | |
| "rookEndgame", | |
| "sacrifice", | |
| "short", | |
| "skewer", | |
| "smotheredMate", | |
| "superGM", | |
| "trappedPiece", | |
| "underPromotion", | |
| "veryLong", | |
| "xRayAttack", | |
| "zugzwang", | |
| "healthyMix", | |
| "playerGames", | |
| ] | |
| client = Client("http://localhost:7860/") | |
| for theme in tqdm(themes, desc="Generating puzzles...", total=len(themes)): | |
| csv_data, csv_file = client.predict( | |
| themes=[theme], | |
| popularity_range=[80, 100], | |
| rating_range=[0, 4000], | |
| nb_plays_range=[0, 1007625], | |
| opening_tags=None, | |
| max=1000, | |
| api_name="/get_puzzles_from_db", | |
| ) | |
| src = csv_file["value"] | |
| dest = f"puzzles/{theme}.csv" | |
| shutil.copy(Path(src), dest) | |