diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 3f27656f..35f95c60 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -4,6 +4,13 @@ Changelog All notable changes to this project will be documented in this file. +Version 0.3.2 (December 4, 2023) +------------------------------- + +**Changed** + +- When saving state configuration, ``player_count`` is not saved. + Version 0.3.1 (December 4, 2023) ------------------------------- diff --git a/docs/conf.py b/docs/conf.py index 8bf59824..b6b7052f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,7 @@ project = 'PokerKit' copyright = '2023, University of Toronto Computer Poker Research Group' author = 'University of Toronto Computer Poker Research Group' -release = '0.3.1' +release = '0.3.2' # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration diff --git a/pokerkit/games.py b/pokerkit/games.py index d69056a5..ac156471 100644 --- a/pokerkit/games.py +++ b/pokerkit/games.py @@ -17,7 +17,7 @@ StandardLowHand, ) from pokerkit.state import BettingStructure, Opening, Automation, State, Street -from pokerkit.utilities import clean_values, Deck, RankOrder, ValuesLike +from pokerkit.utilities import Deck, RankOrder, ValuesLike class Poker(ABC): @@ -29,7 +29,6 @@ class Poker(ABC): :param raw_antes: The raw antes. :param raw_blinds_or_straddles: The raw blinds or straddles. :param bring_in: The bring-in. - :param player_count: The number of players. """ deck: ClassVar[Deck] @@ -47,7 +46,6 @@ def __init__( raw_antes: ValuesLike, raw_blinds_or_straddles: ValuesLike, bring_in: int, - player_count: int, ) -> None: self.automations: tuple[Automation, ...] = automations """The automations.""" @@ -60,19 +58,18 @@ def __init__( If you want non-uniform antes like big blind antes, set this to ``False``. """ - self.antes: tuple[int, ...] = clean_values(raw_antes, player_count) - """The antes.""" - self.blinds_or_straddles: tuple[int, ...] = clean_values( - raw_blinds_or_straddles, - player_count, - ) - """The blinds or straddles.""" + self.raw_antes: ValuesLike = raw_antes + """The raw antes.""" + self.raw_blinds_or_straddles: ValuesLike = raw_blinds_or_straddles + """The raw blinds or straddles.""" self.bring_in: int = bring_in """The bring-in.""" - self.player_count: int = player_count - """The number of players.""" - def __call__(self, raw_starting_stacks: ValuesLike) -> State: + def __call__( + self, + raw_starting_stacks: ValuesLike, + player_count: int, + ) -> State: return State( self.automations, self.deck, @@ -80,11 +77,11 @@ def __call__(self, raw_starting_stacks: ValuesLike) -> State: self.streets, self.betting_structure, self.ante_trimming_status, - self.antes, - self.blinds_or_straddles, + self.raw_antes, + self.raw_blinds_or_straddles, self.bring_in, raw_starting_stacks, - self.player_count, + player_count, ) @property @@ -180,7 +177,6 @@ class Holdem(Poker, ABC): :param raw_blinds_or_straddles: The raw blinds or straddles. :param small_bet: The small bet. :param big_bet: The big bet. - :param player_count: The number of players. """ hole_dealing_count: ClassVar[int] @@ -196,7 +192,6 @@ def __init__( raw_blinds_or_straddles: ValuesLike, small_bet: int, big_bet: int, - player_count: int, ) -> None: super().__init__( automations, @@ -242,7 +237,6 @@ def __init__( raw_antes, raw_blinds_or_straddles, 0, - player_count, ) @@ -254,7 +248,6 @@ class UnfixedLimitHoldem(Holdem, ABC): :param raw_antes: The raw antes. :param raw_blinds_or_straddles: The raw blinds or straddles. :param min_bet: The minimum bet. - :param player_count: The number of players. """ max_completion_betting_or_raising_count: ClassVar[int | None] = None @@ -266,7 +259,6 @@ def __init__( raw_antes: ValuesLike, raw_blinds_or_straddles: ValuesLike, min_bet: int, - player_count: int, ) -> None: super().__init__( automations, @@ -275,7 +267,6 @@ def __init__( raw_blinds_or_straddles, min_bet, min_bet, - player_count, ) @@ -362,8 +353,7 @@ def create_state( raw_blinds_or_straddles, small_bet, big_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class NoLimitTexasHoldem( @@ -477,8 +467,7 @@ def create_state( raw_antes, raw_blinds_or_straddles, min_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class NoLimitShortDeckHoldem(NoLimitPokerMixin, UnfixedLimitHoldem): @@ -593,8 +582,7 @@ def create_state( raw_antes, raw_blinds_or_straddles, min_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class OmahaHoldemMixin: @@ -712,8 +700,7 @@ def create_state( raw_antes, raw_blinds_or_straddles, min_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class FixedLimitOmahaHoldemHighLowSplitEightOrBetter( @@ -762,8 +749,7 @@ def create_state( raw_blinds_or_straddles, small_bet, big_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class SevenCardStud(Poker, ABC): @@ -775,7 +761,6 @@ class SevenCardStud(Poker, ABC): :param bring_in: The bring-in. :param small_bet: The small bet. :param big_bet: The big bet. - :param player_count: The number of players. """ max_completion_betting_or_raising_count: ClassVar[int | None] @@ -791,7 +776,6 @@ def __init__( bring_in: int, small_bet: int, big_bet: int, - player_count: int, ) -> None: super().__init__( automations, @@ -846,7 +830,6 @@ def __init__( raw_antes, None, bring_in, - player_count, ) @@ -888,8 +871,7 @@ def create_state( bring_in, small_bet, big_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class FixedLimitSevenCardStudHighLowSplitEightOrBetter( @@ -939,8 +921,7 @@ def create_state( bring_in, small_bet, big_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class FixedLimitRazz(FixedLimitPokerMixin, SevenCardStud): @@ -981,8 +962,7 @@ def create_state( bring_in, small_bet, big_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class Draw(Poker, ABC): @@ -1002,7 +982,6 @@ class SingleDraw(Draw, ABC): :param raw_antes: The raw antes. :param raw_blinds_or_straddles: The raw blinds or straddles. :param min_bet: The min bet. - :param player_count: The number of players. """ def __init__( @@ -1012,7 +991,6 @@ def __init__( raw_antes: ValuesLike, raw_blinds_or_straddles: ValuesLike, min_bet: int, - player_count: int, ) -> None: super().__init__( automations, @@ -1040,7 +1018,6 @@ def __init__( raw_antes, raw_blinds_or_straddles, 0, - player_count, ) @@ -1053,7 +1030,6 @@ class TripleDraw(Draw, ABC): :param raw_blinds_or_straddles: The raw blinds or straddles. :param small_bet: The small bet. :param big_bet: The big bet. - :param player_count: The number of players. """ def __init__( @@ -1064,7 +1040,6 @@ def __init__( raw_blinds_or_straddles: ValuesLike, small_bet: int, big_bet: int, - player_count: int, ) -> None: super().__init__( automations, @@ -1110,7 +1085,6 @@ def __init__( raw_antes, raw_blinds_or_straddles, 0, - player_count, ) @@ -1158,8 +1132,7 @@ def create_state( raw_antes, raw_blinds_or_straddles, min_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class FixedLimitDeuceToSevenLowballTripleDraw( @@ -1295,8 +1268,7 @@ def create_state( raw_blinds_or_straddles, small_bet, big_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) class FixedLimitBadugi(FixedLimitPokerMixin, TripleDraw): @@ -1450,5 +1422,4 @@ def create_state( raw_blinds_or_straddles, small_bet, big_bet, - player_count, - )(raw_starting_stacks) + )(raw_starting_stacks, player_count) diff --git a/setup.py b/setup.py index 4244fb02..b615dcac 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name='pokerkit', - version='0.3.1', + version='0.3.2', description='An open-source Python library for poker simulations and hand evaluations', long_description=open('README.rst').read(), long_description_content_type='text/x-rst',