Polyglot opening book reading
- chess.polyglot.open_reader(path: str | bytes | PathLike[str] | PathLike[bytes]) MemoryMappedReader[source]
Creates a reader for the file at the given path.
The following example opens a book to find all entries for the start position:
>>> import chess >>> import chess.polyglot >>> >>> board = chess.Board() >>> >>> with chess.polyglot.open_reader("data/polyglot/performance.bin") as reader: ... for entry in reader.find_all(board): ... print(entry.move, entry.weight, entry.learn) e2e4 1 0 d2d4 1 0 c2c4 1 0
- class chess.polyglot.Entry(key: int, raw_move: int, weight: int, learn: int, move: chess.Move)[source]
An entry from a Polyglot opening book.
- class chess.polyglot.MemoryMappedReader(filename: str | bytes | PathLike[str] | PathLike[bytes])[source]
Maps a Polyglot opening book to memory.
- find_all(board: Board | int, *, minimum_weight: int = 1, exclude_moves: Container[Move] = []) Iterator[Entry][source]
Seeks a specific position and yields corresponding entries.
- find(board: Board | int, *, minimum_weight: int = 1, exclude_moves: Container[Move] = []) Entry[source]
Finds the main entry for the given position or Zobrist hash.
The main entry is the (first) entry with the highest weight.
By default, entries with weight
0are excluded. This is a common way to delete entries from an opening book without compacting it. Pass minimum_weight0to select all entries.- Raises:
IndexErrorif no entries are found. Useget()if you prefer to getNoneinstead of an exception.
- choice(board: Board | int, *, minimum_weight: int = 1, exclude_moves: Container[Move] = [], random: Random | None = None) Entry[source]
Uniformly selects a random entry for the given position.
- Raises:
IndexErrorif no entries are found.
- chess.polyglot.POLYGLOT_RANDOM_ARRAY = [0x9D39247E33776D41, ..., 0xF8D626AAAF278509]
Array of 781 polyglot compatible pseudo random values for Zobrist hashing.
- chess.polyglot.zobrist_hash(board: ~chess.Board, *, _hasher: ~typing.Callable[[~chess.Board], int] = <chess.polyglot.ZobristHasher object>) int[source]
Calculates the Polyglot Zobrist hash of the position.
A Zobrist hash is an XOR of pseudo-random values picked from an array. Which values are picked is decided by features of the position, such as piece positions, castling rights and en passant squares.