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 support —
estimate_hand_value()now acceptsura_dora_indicatorsfor 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+.
Yakuis now an abstract base class with class-level attributes;yaku_idvalues reassigned.- Wind yakuhai classes renamed (
YakuhaiEast->SeatWindEast, etc.). - Several constants converted from lists to frozensets (
TERMINAL_INDICES,WINDS, etc.). AKA_DORA_LISTrenamed toAKA_DORAS.Meld.tilesis nowtupleinstead oflist.- 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(raisesValueErrorfor invalid tile counts).
Full Changelog: v1.4.0...v2.0.0