Skip to content

Tags: niklasf/python-chess

Tags

v1.11.2

Toggle v1.11.2's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.11.2

Bugfixes:

* Fix ``chess.gaviota.PythonTablebase`` does not properly resolve positions
  where en passant captures are the best move.

v1.11.1

Toggle v1.11.1's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.11.1

Bugfixes:

* ``chess.engine``: Fix parsing of UCI options containing containing ``name``,
  ``type``, ``default``, ``min``, or ``max``, e.g., ``mini``.

v1.11.0

Toggle v1.11.0's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.11.0

Changes:

* Drop support for Python 3.7, which has reached its end of life.
* ``chess.engine.EventLoopPolicy`` is no longer needed and now merely an alias
  for the default event loop policy.
* If available and requested via ``setpgrp``, use ``process_group`` support
  from Python 3.11 for engine processes.
* No longer eagerly reject 8 piece positions in ``chess.syzygy``, so that
  some 8 piece positions with decisive captures can be probed successfully.
* The string wrapper returned by ``chess.svg`` functions now also implements
  ``_repr_html_``.
* Significant changes to ``chess.engine`` internals:
  ``chess.engine.BaseCommand`` methods other than the constructor no longer
  receive ``engine: Protocol``.
* Significant changes to board state internals: Subclasses of ``chess.Board``
  can no longer hook into board state recording/restoration and need to
  override relevant methods instead (``clear_stack``, ``copy``, ``root``,
  ``push``, ``pop``).

New features:

* Add ``chess.pgn.Game.time_control()`` and related data models.
* Add model ``sf16.1`` for ``chess.engine.Score.wdl()``, the new default.

Bugfixes:

* Fix unsolicited engine output may cause assertion errors with regard to
  command states.
* Fix handling of whitespace in UCI engine communication.
* For ``chess.Board.epd()`` and ``chess.Board.set_epd()``, require that EPD
  opcodes start with a letter.

v1.10.0

Toggle v1.10.0's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.10.0

New features:

* Use ``chess.engine.Opponent`` to send opponent information to engines.
* Inform engines about the game result using
  ``chess.engine.Protocol.send_game_result()``.
* Add ``chess.engine.Limit.clock_id``.
* Add ``chess.svg.board(..., borders=True)``.
* Avoid rendering background behind SVG boards to better support transparency.
* Add ``chess.pgn.BaseVisitor.begin_parse_san()``.
* Introduce new distance metrics ``chess.square_manhattan_distance()`` and
  ``chess.square_knight_distance()``.

Bugfixes:

* Fix ``chess.pgn.GameNode.eval()`` sometimes off by one centipawn.
* Fix handling of additional spaces between UCI option tokens.
* Handle implicit XBoard engine resignation via output like
  ``0-1 {White resigns}``.

Changes:

* Add model ``sf16`` for ``chess.engine.Score.wdl()``, the new default.
* Update ``lichess`` WDL model.
* Keep PGN headers that do not belong to the Seven Tag Roster in insertion
  order.
* Halve the number of open file descriptors maintained by tablebases
  and opening books.
* Reduce verbosity of logged ``chess.pgn`` errors.

v1.9.4

Toggle v1.9.4's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.9.4

Bugfixes:

* Fix ``PovScore.wdl()`` ignored ``model`` and ``ply`` parameters.
* ``chess.syzygy``: Check that board matches tablebase variant.

New features:

* Add model ``sf15.1`` for ``chess.engine.Score.wdl()``.
* Raise more specific exceptions: ``chess.IllegalMoveError``,
  ``chess.AmbiguousMoveError``, and ``chess.InvalidMoveError``.

v1.9.3

Toggle v1.9.3's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.9.3

Bugfixes:

* Fix some valid characters were not accepted in PGN tag names.

Changes:

* Skip over syntactically invalid PGN tags.
* Detect Antichess insufficient material with two opposing knights.

New features:

* Add ``chess.Board.unicode(..., orientation=chess.WHITE)``.

v1.9.2

Toggle v1.9.2's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.9.2

Bugfixes:

* Fix recursive Crazyhouse move generation sometimes failing with
  with ``RuntimeError``.
* Fix rendering of black pawn SVG on dark background.

New features:

* Add ``chess.engine.AnalysisResult.would_block()``.

v1.9.1

Toggle v1.9.1's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.9.1

Bugfixes:

* Reject pawn capture SAN if the original file is not specified, e.g.,
  ``d5`` will no longer match ``cxd5``.

Changes:

* Tweak handling of whitespace in PGN comments: When parsing, any leading
  and trailing whitespace (beyond one space) is preserved. When joining
  multiple PGN comments, they are now separated with a space instead of a
  newline character. When removing annotations from comments, leftover
  whitespace is avoided.

New features:

* Add model ``sf15`` for ``chess.engine.Score.wdl()``.

v1.9.0

Toggle v1.9.0's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.9.0

Bugfixes:

* Expand position validation to detect check conflicting with en passant
  square.

New features:

* Add ``chess.svg.board(..., fill=...)``.
* Let ``chess.svg.board()`` add ASCII board as description of SVG.
* Add hint when engine process dies due to illegal instruction.

v1.8.0

Toggle v1.8.0's commit message

Verified

This tag was signed with the committer’s verified signature.
niklasf Niklas Fiekas
python-chess v1.8.0

Bugfixes:

* Fix ``SquareSet.issuperset()`` and ``SquareSet.issubset()`` by swapping
  their respective implementations.

New features:

* Read and write PGN comments like ``[%emt 0:05:21]``.