Skip to content

v2.0.0

Latest

Choose a tag to compare

@Nihisil Nihisil released this 02 Apr 00:21

This is a major release that brings significant performance improvements, bug fixes, new features, and a cleaner API. Please check the full CHANGELOG for all the details.

Warning

This release contains breaking changes. Please review the breaking changes section below before upgrading.

Performance

  • ~6x faster hand calculation overall (35,364 hands/sec vs 5,925), with a redesigned hand division algorithm (~3x faster on its own).

New features

  • Ura dora supportestimate_hand_value() now accepts ura_dora_indicators for hands.
  • Separate yakuhai yaku for each seat wind and round wind (e.g., SeatWindEast, RoundWindSouth).

Breaking changes (highlights)

For the full list of breaking changes, please see the CHANGELOG.

  • Dropped Python 3.9 — requires 3.10+.
  • Yaku is now an abstract base class with class-level attributes; yaku_id values reassigned.
  • Wind yakuhai classes renamed (YakuhaiEast -> SeatWindEast, etc.).
  • Several constants converted from lists to frozensets (TERMINAL_INDICES, WINDS, etc.).
  • AKA_DORA_LIST renamed to AKA_DORAS.
  • Meld.tiles is now tuple instead of list.
  • Removed deprecated properties (Meld.CHANKAN, Yaku.english, Yaku.japanese, Yaku.tenhou_id).
  • Various internal methods/attributes removed.
  • Hands without yaku no longer count dora.
  • Stricter validation in Shanten (raises ValueError for invalid tile counts).

Full Changelog: v1.4.0...v2.0.0