Chess

Latest version: v1.11.2

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

1.11.2

------------------------------

Bugfixes:

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

1.11.1

-----------------------------

Bugfixes:

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

1.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.

1.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.

1.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``.

1.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)``.

Page 1 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.