Releases: niklasf/python-chess
Releases · niklasf/python-chess
python-chess v0.23.7
Bugfixes: * Fixed `ThreeCheckBoard.mirror()` and `CrazyhouseBoard.mirror()`, which were previously resetting remaining checks and pockets respectively. Thanks @QueensGambit. Changes: * `Board.move_stack` is now guaranteed to be UCI compatible with respect to the representation of castling moves and `board.chess960`. * Drop support for Python 3.3, which is long past end of life. * `chess.uci`: The `position` command now manages `UCI_Chess960` and `UCI_Variant` automatically. * `chess.uci`: The `position` command will now always send the entire history of moves from the root position. * Various coding style fixes and improvements. Thanks @hugovk. New features: * Added `Board.root()`.
python-chess v0.23.6
Bugfixes: * Gaviota: Fix Python based Gaviota tablebase probing when there are multiple en passant captures. Thanks @bjoernholzhauer. * Syzygy: Fix DTZ for some mate in 1 positions. Similarly to the fix from v0.23.1 this is mostly cosmetic. * Syzygy: Fix DTZ off-by-one in some 6 piece antichess positions with moves that threaten to force a capture. This is mostly cosmetic. Changes: * Let `uci.Engine.position()` send history of at least 8 moves if available. Previously it sent only moves that were relevant for repetition detection. This is mostly useful for Lc0. Once performance issues are solved, a future version will always send the entire history. Thanks @SashaMN and @Mk-Chan. * Various documentation fixes and improvements. New features: * Added `polyglot.MemoryMappedReader.get(board, default=None)`.
python-chess v0.23.5
Bugfixes: * Atomic chess: KNvKN is not insufficient material. * Crazyhouse: Detect insufficient material. This can not happen unless the game was started with insufficient material. Changes: * Better error messages when parsing info from UCI engine fails. * Better error message for `b.set_board_fen(b.fen())`.
python-chess v0.23.4
New features: * XBoard: Support pondering. Thanks Manik Charan. * UCI: Support unofficial `info ebf`. Bugfixes: * Implement 16 bit DTZ mapping, which is required for some of the longest 7 piece endgames.
python-chess v0.23.3
New features: * XBoard: Support `variant`. Thanks gbtami.
python-chess v0.23.2
Bugfixes: * XBoard: Handle multiple features and features with spaces. Thanks gbtami. * XBoard: Ignore debug output prefixed with `#`. Thanks Dan Ravensloft and Manik Charan.
python-chess v0.23.1
Bugfixes: * Fix DTZ in case of mate in 1. This is a cosmetic fix, as the previous behavior was only off by one (which is allowed by design).
python-chess v0.23.0
New features: * Experimental support for 7 piece Syzygy tablebases. Changes: * `chess.syzygy.filenames()` was renamed to `tablenames()` and gained an optional `piece_count=6` argument. * `chess.syzygy.normalize_filename()` was renamed to `normalize_tablename()`. * The undocumented constructors of `chess.syzygy.WdlTable` and `chess.syzygy.DtzTable` have been changed.
python-chess v0.22.2
Bugfixes: * In standard chess promoted pieces were incorrectly considered as distinguishable from normal pieces with regard to position equality and threefold repetition. Thanks to kn-sq-tb for reporting. Changes: * The PGN `game.headers` are now a custom mutable mapping that validates the validity of tag names. * Basic attack and pin methods moved to `BaseBoard`. * Documentation fixes and improvements. New features: * Added `Board.lan()` for long algebraic notation.
python-chess v0.22.1
New features: * Added `Board.mirror()`, `SquareSet.mirror()` and `bswap()`. * Added `chess.pgn.GameNode.accept_subgame()`. * XBoard: Added `resign`, `analyze`, `exit`, `name`, `rating`, `computer`, `egtpath`, `pause`, `resume`. Completed option parsing. Changes: * `chess.pgn`: Accept FICS wilds without warning. * XBoard: Inform engine about game results. Bugfixes: * `chess.pgn`: Allow games without movetext. * XBoard: Fixed draw handling.