Skip to content

Releases: niklasf/python-chess

python-chess v0.23.7

26 Jun 08:36
v0.23.7
Compare
Choose a tag to compare
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

25 May 19:54
v0.23.6
Compare
Choose a tag to compare
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

11 May 08:03
v0.23.5
Compare
Choose a tag to compare
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

29 Apr 15:13
v0.23.4
Compare
Choose a tag to compare
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

21 Apr 16:41
v0.23.3
Compare
Choose a tag to compare
New features:

* XBoard: Support `variant`. Thanks gbtami.

python-chess v0.23.2

20 Apr 14:46
v0.23.2
Compare
Choose a tag to compare
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

13 Apr 18:46
v0.23.1
Compare
Choose a tag to compare
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

08 Apr 09:31
v0.23.0
Compare
Choose a tag to compare
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

15 Mar 17:33
v0.22.2
Compare
Choose a tag to compare
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

01 Jan 15:09
v0.22.1
Compare
Choose a tag to compare
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.