pychess.Savers package
Submodules
pychess.Savers.ChessFile module
- class pychess.Savers.ChessFile.ChessFile(file)
Bases:
object
This class describes an opened chessfile. It is lazy in the sense of not parsing any games, that the user don’t request. It has no catching.
- close()
- get_book_moves(fen=None)
- get_date(gameno)
Returns a tuple (year,month,day) of the game date Default is current time if nothing is specified in the file
- get_elo(gameno)
Returns a tuple of the players rating in ELO format Default is 1600 if nothing is specified in the file
- get_event(gameno)
Returns the event at which the game took place Could be “World Chess Cup” or “My local tournament” Default is “?” if nothing is specified in the file
- get_id(gameno)
- get_info(gameno)
- get_player_names(gameno)
Returns a tuple of the players names Default is (“Unknown”, “Unknown”) if nothing is specified
- get_records(direction=0)
- get_result(gameno)
Returns the result of the game Can be any of: RUNNING, DRAW, WHITEWON or BLACKWON Default is RUNNING if nothing is specified in the file
- get_round(gameno)
Returns the round of the event at which the game took place Pgn supports having subrounds like 2.1.5, but as of writing, only the first int is returned. Default is 1 if nothing is specified in the file
- get_site(gameno)
Returns the location at which the game took place Default is “?” if nothing is specified in the file
- get_variant(gameno)
- loadToModel(gameno, position, model=None)
Load the data of game “gameno” into the gamemodel If no model is specified, a new one will be created, loaded and returned
- set_fen_filter(fen)
- set_scout_filter(query)
- set_tags_filter(text)
pychess.Savers.chessalpha2 module
pychess.Savers.chesspastebin module
- pychess.Savers.chesspastebin.paste(gamemodel)
pychess.Savers.database module
- class pychess.Savers.database.TagDatabase(engine)
Bases:
object
- build_order_by(order_col, is_desc)
- build_query()
- build_where_offs(offset_list)
- build_where_offs8(offset_list)
- build_where_tags(tag_query)
- close()
- get_exta_tags(rec)
- get_info(rec)
- get_offsets_for_tags(last_seen)
- get_records(last_seen, limit)
- property count
- pychess.Savers.database.parseDateTag(tag)
- pychess.Savers.database.save(path, model, offset, flip=False)
pychess.Savers.epd module
- class pychess.Savers.epd.EpdFile(handle)
Bases:
ChessFile
- create_rec(line)
- get_player_names(rec)
Returns a tuple of the players names Default is (“Unknown”, “Unknown”) if nothing is specified
- loadToModel(rec, position, model=None)
Load the data of game “gameno” into the gamemodel If no model is specified, a new one will be created, loaded and returned
- pychess.Savers.epd.load(handle)
- pychess.Savers.epd.save(handle, model, position=None, flip=False)
Saves game to file in fen format
pychess.Savers.fen module
- class pychess.Savers.fen.FenFile(handle)
Bases:
ChessFile
- loadToModel(rec, position, model=None)
Load the data of game “gameno” into the gamemodel If no model is specified, a new one will be created, loaded and returned
- pychess.Savers.fen.load(handle)
- pychess.Savers.fen.save(handle, model, position=None, flip=False)
Saves game to file in fen format
pychess.Savers.pgn module
- class pychess.Savers.pgn.PGNFile(handle, progressbar=None)
Bases:
ChessFile
- close()
- get_book_moves(fen)
Get move-games-win-loss-draw stat of fen position
- get_count()
Number of games in .pgn database
- get_movetext(rec)
- get_offs(skip, filtered_offs_list=None)
Get offsets from .scout database and create where clause we will use to query header tag .sqlite database
- get_offs8(skip, filtered_offs_list=None)
Get offsets from .bin database and create where clause we will use to query header tag .sqlite database
- get_records(direction=0)
Get game header tag records from .sqlite database in paginated way
- get_size()
Size of .pgn file in bytes
- get_variant(rec)
- has_position(fen)
- init_chess_db()
Create/open polyglot .bin file with extra win/loss/draw stats using chess_db parser from https://github.com/mcostalba/chess_db
- init_scoutfish()
Create/open .scout database index file to help querying using scoutfish from https://github.com/mcostalba/scoutfish
- init_tag_database(importer=None)
Create/open .sqlite database of game header tags
- loadToModel(rec, position=-1, model=None)
Parse game text and load game record header tags to a GameModel object
- load_game_tags()
Reads header tags from pgn if pgn is a one game only StringIO object
- parse_movetext(string, board, position, variation=False)
Recursive parses a movelist part of one game.
Arguments: srting - str (movelist) board - lboard (initial position) position - int (maximum ply to parse) variation- boolean (True if the string is a variation)
- reset_last_seen()
- set_fen_filter(fen)
Set fen string we will use to get game offsets from .bin database
- set_scout_filter(query)
Set json string we will use to get game offsets from .scout database
- set_tag_filter(query)
Set (now prefixing) text and create where clause we will use to query header tag .sqlite database
- set_tag_order(order_col, is_desc)
- property count
Number of games in .pgn database
- property size
Size of .pgn file in bytes
- pychess.Savers.pgn.load(handle, progressbar=None)
- pychess.Savers.pgn.move_count(node, black_periods=False)
- pychess.Savers.pgn.msToClockTimeTag(ms)
Converts milliseconds to a chess clock time string in ‘WhiteClock’/ ‘BlackClock’ PGN header format
- pychess.Savers.pgn.nag2symbol(nag)
- pychess.Savers.pgn.parseClockTimeTag(tag)
Parses ‘WhiteClock’/’BlackClock’ PGN headers and returns the time the player playing that color has left on their clock in milliseconds
- pychess.Savers.pgn.parseTimeControlTag(tag)
Parses ‘TimeControl’ PGN header and returns the time and gain the players have on game start in seconds
- pychess.Savers.pgn.save(handle, model, position=None, flip=False)
Saves the game from GameModel to .pgn
- pychess.Savers.pgn.symbol2nag(symbol)
- pychess.Savers.pgn.walk(node, result, model, save_emt=False, save_eval=False, vari=False)
Prepares a game data for .pgn storage. Recursively walks the node tree to collect moves and comments into a resulting movetext string.
Arguments: node - list (a tree of lboards created by the pgn parser) result - str (movetext strings)
pychess.Savers.png module
- pychess.Savers.png.save(file, model, position=None, flip=False)
Export the current position into a .png file