Releases: niklasf/python-chess
Releases · niklasf/python-chess
python-chess v1.11.1
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.
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.
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``.
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)``.
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()``.
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()``.
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.
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]``.
python-chess v1.7.0
New features: * Added new models for ``chess.engine.Score.wdl()``: ``sf`` (the new default) and ``sf14``. * Added ``chess.Board.piece_map()``. Bugfixes: * ``chess.pgn``: Fix skipping with nested variations. * ``chess.svg``: Make check gradient compatible with QtSvg.