Pokerkit

Latest version: v0.6.1

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

Scan your dependencies

Page 1 of 6

0.6.1

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

**Changed**

- Implement Rule 96 and 96a (its exception) of the 2024 WSOP Tournament Rules which states the following: "In no-limit and pot-limit, all raises must be equal to or greater than the size of the previous bet or raise on that betting round. An all-in wager of less than a full raise does not reopen the betting to a Participant who has already acted." The exception to this rule is triggered when "two or more consecutive all-in wagers that exceed the minimum allowable bet or raise." I would like to thank `Phenom Poker <https://www.phenompoker.com/>`_ for reporting this issue.

0.6.0

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

This version release introduces backward incompatible changes. Please read the below content carefully!

**Added**

- Parsing hands from logs of online poker rooms/research environments. The testing has been limited to old data and is known to fail to parse certain hands. Please open an issue if you find incompatibilities. I would be happy to support them.

- Absolute Poker: ``pokerkit.notation.HandHistory.from_absolute_poker()`` via ``pokerkit.notation.AbsolutePokerParser``.
- Full Tilt Poker: ``pokerkit.notation.HandHistory.from_full_tilt_poker()`` via ``pokerkit.notation.FullTiltPokerParser``.
- iPoker Network: ``pokerkit.notation.HandHistory.from_ipoker_network()`` via ``pokerkit.notation.IPokerNetworkParser``.
- Ongame Network: ``pokerkit.notation.HandHistory.from_ongame_network()`` via ``pokerkit.notation.OngameNetworkParser``.
- PartyPoker: ``pokerkit.notation.HandHistory.from_partypoker()`` via ``pokerkit.notation.PartyPokerParser``.
- PokerStars: ``pokerkit.notation.HandHistory.from_pokerstars()`` via ``pokerkit.notation.PokerStarsParser``.
- Annual Computer Poker Competition: ``pokerkit.notation.HandHistory.from_acpc_protocol()`` via ``pokerkit.notation.ACPCProtocolParser``.

- Base classes for hand history log parser using regular expressions like ``pokerkit.notation.Parser`` and ``pokerkit.notation.REParser``.

- ``pokerkit.utilities.Card.UNKNOWN`` static variable as a constant for a card with unknown rank and suit.
- Pending additions of the PHH specification are also added in ``pokerkit.notation.HandHistory``. Namely, the new fields ``pokerkit.notation.HandHistory.venue``, ``pokerkit.notation.HandHistory.time_zone_abbreviation``, ``pokerkit.notation.HandHistory.winnings``, and ``pokerkit.notation.HandHistory.currency_symbol``.
- A helper unmatchable regular expression pattern ``pokerkit.utilities.UNMATCHABLE_PATTERN``.
- Helper methods ``pokerkit.utilities.rotated``, ``pokerkit.utilities.parse_time``, and ``pokerkit.utilities.parse_month``.

**Changed**

- ``pokerkit.state.ChipsPushing``'s ``board_index`` and ``hand_index`` attributes will be ``None`` when the hands terminate due to every player except one folding. Previously, ``-1`` was used to denote as such.
- Automatic repair of broken hand histories during iteration.
- Allow non-standard folds (i.e. folding even when you don't need to) in a cash-game mode.
- Allow showing the hole cards of the last remaining player after everyone folds around.
- Allow only showing a part of a player's hand.

- Only available in the cash-game mode.
- A player may want to keep cards face-down (even in all-in situations or final showdown).
- Simply pass in something like ``??As`` or an empty iterable to ``pokerkit.state.State.show_or_muck_hole_cards()``.

- If an empty iterable is passed in or all passed cards are unknown (i.e. ``??``), all hole cards of the current showdown player will stay face down.
- If known cards are among the passed cards, the known cards will become face-up while all others will stay face-down.

- ``pokerkit.utilities.Card`` instances are truthy or falsy depending on the Boolean value of ``pokerkit.utilities.Card.unknown_status``.
- Pending additions of the PHH specification is also added in ``pokerkit.notation.HandHistory``. Namely, the widening of types for ``pokerkit.notation.HandHistory.hand`` and ``pokerkit.notation.HandHistory.table``.
- Commas are handled ``pokerkit.utilities.Card.parse`` and ``pokerkit.utilities.parse_value``.
- ``"10"`` is now a valid way to express the rank of 10 for cards in ``pokerkit.utilities.Card.parse``.
- ``pokerkit.utilities.parse_value`` returns ``decimal.Decimal`` for decimal values instead of ``float``, as it used to. If integral, it returns ``int`` as it used to.
- Cleaned up docstrings or fixed docstring inaccuracies.
- Fix inaccurate error messages.
- Fix error raised during equity calculation when no valid hand can be formed.

**Removed**

- The previously deprecated ``pokerkit.notation.HandHistory.iter_state_actions()``. This was deprecated and renamed to ``pokerkit.notation.HandHistory.state_actions`` in Version 0.5.4.

0.5.4

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

**Added**

- Post bet support.

- Post bets are a type of forced bet which a player who just seated must pay to play right away instead of waiting for the button to pass.
- To denote a post bet, it must be passed alongside ``raw_blinds_or_straddles`` variable during state construction.

- For example, say UTG+1 wants to put a post-bet in a 6-max game. Then, ``[1, 2, 0, -2, 0, 0]`` or, equivalently, ``{0: 1, 1: 2, 3: -2}``.

- ``pokerkit.notation.HandHistory.state_actions`` is a new alias for ``pokerkit.notation.HandHistory.iter_state_actions()``.

**Deprecated**

- ``pokerkit.notation.HandHistory.iter_state_actions()`` due to poor naming. It is superceded by ``pokerkit.notation.HandHistory.state_actions`` which behaves identically. This method will be removed in PokerKit Version 0.6.

0.5.3

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

**Changed**

- Fix incorrect implementation of ``pokerkit.hands.StandardBadugi.from_game``.

0.5.2

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

**Changed**

- Allow ``numbers.Number`` like ``decimal.Decimal`` to be used as chip values. While documented as allowed, usage of non-``int`` or non-``float`` used to result in error.
- The main pot is pushed first, followed by side pots (reverse was true previously).
- Chips pushing operation is more fine-grained in that each operation pushes a portion of the main/side pot should there be multiple boards or hand types.
- Removed ``pokerkit.state.ChipsPushing.raked_amount`` attribute.
- Removed ``pokerkit.state.ChipsPushing.unraked_amount`` property.

**Added**

- Added ``pokerkit.state.ChipsPushing.pot_index``, ``pokerkit.state.ChipsPushing.board_index``, and ``pokerkit.state.ChipsPushing.hand_type_index`` attributes to provide information on what portion of the pot was pushed.
- Added ICM calculation ``pokerkit.analysis.calculate_icm`` function.

0.5.1

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

**Added**

- Add standard error property ``pokerkit.analysis.Statistics.payoff_stderr`` to statistics.

Page 1 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.