Artvv's picture
Upload src/persistentpoker_bench/spec.py with huggingface_hub
3973176 verified
from __future__ import annotations
from dataclasses import dataclass
from enum import StrEnum
from persistentpoker_bench.models import DEFAULT_MODEL_PRIORITY, ModelTarget
DEFAULT_PLAYER_COUNT = 4
MIN_PLAYER_COUNT = 3
MAX_PLAYER_COUNT = 6
DEFAULT_STARTING_STACK = 2000
DEFAULT_SMALL_BLIND = 10
DEFAULT_BIG_BLIND = 20
DEFAULT_DETERMINISTIC_SEED = 20260428
class HandCategory(StrEnum):
DOUBLE_ROYAL_FLUSH = "double_royal_flush"
FIVE_OF_A_KIND = "five_of_a_kind"
DOUBLE_STRAIGHT_FLUSH = "double_straight_flush"
ROYAL_FLUSH = "royal_flush"
STRAIGHT_FLUSH = "straight_flush"
FOUR_OF_A_KIND_PLUS_FLUSH = "four_of_a_kind_plus_flush"
FOUR_OF_A_KIND = "four_of_a_kind"
FULL_HOUSE_PLUS_FLUSH = "full_house_plus_flush"
FLUSH = "flush"
STRAIGHT = "straight"
THREE_OF_A_KIND = "three_of_a_kind"
TWO_PAIR = "two_pair"
ONE_PAIR = "one_pair"
HIGH_CARD = "high_card"
@dataclass(frozen=True, slots=True)
class ProjectSpec:
project_name: str
default_player_count: int
min_player_count: int
max_player_count: int
default_starting_stack: int
default_small_blind: int
default_big_blind: int
default_deterministic_seed: int
format_name: str
pool_default_winner_action: str
hand_ranking: tuple[HandCategory, ...]
tie_break_order: tuple[str, ...]
model_priority: tuple[ModelTarget, ...]
def get_project_spec() -> ProjectSpec:
return ProjectSpec(
project_name="PersistentPoker-Bench",
default_player_count=DEFAULT_PLAYER_COUNT,
min_player_count=MIN_PLAYER_COUNT,
max_player_count=MAX_PLAYER_COUNT,
default_starting_stack=DEFAULT_STARTING_STACK,
default_small_blind=DEFAULT_SMALL_BLIND,
default_big_blind=DEFAULT_BIG_BLIND,
default_deterministic_seed=DEFAULT_DETERMINISTIC_SEED,
format_name="No-Limit Texas Hold'em Multiplayer",
pool_default_winner_action="continue",
hand_ranking=tuple(HandCategory),
tie_break_order=("duplicate_count", "card_value", "split"),
model_priority=DEFAULT_MODEL_PRIORITY,
)