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
0
are excluded. This is a common way to delete entries from an opening book without compacting it. Pass minimum_weight0
to select all entries.- Raises:
IndexError
if no entries are found. Useget()
if you prefer to getNone
instead 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:
IndexError
if 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.