Spaces:
Running
Running
| def __getattr__(name): | |
| pass | |
| def __dir__(): | |
| pass | |
| from typing import Any, TypedDict, cast | |
| class RollEventRow(TypedDict, total=False): | |
| game_turn: Any | |
| step_number: Any | |
| player_id: Any | |
| player_name: str | |
| team_id: Any | |
| dice_roller: Any | |
| player_skills: list[Any] | |
| target_player_id: Any | |
| target_player_name: Any | |
| target_player_skills: list[Any] | |
| step_name: str | |
| step_type: str | |
| result_name: str | |
| payload_type: str | |
| roll_category: str | |
| dice_values: list[Any] | |
| dice_total: Any | |
| difficulty: Any | |
| roll_type: Any | |
| outcome: Any | |
| modifier_values: list[Any] | |
| result_value: int | |
| result_classification: str | |
| report_result_classification: str | |
| armour_holds: Any | |
| probability_success: float | |
| probability_neutral: float | |
| probability_fail: float | |
| raw: dict[str, Any] | |
| exclude_from_surprise: bool | |
| action_type: str | |
| _REQUIRED_ROLL_EVENT_KEYS = { | |
| "game_turn", | |
| "step_number", | |
| "player_id", | |
| "player_name", | |
| "team_id", | |
| "dice_roller", | |
| "result_name", | |
| "payload_type", | |
| "roll_category", | |
| "dice_values", | |
| "dice_total", | |
| "difficulty", | |
| "roll_type", | |
| "outcome", | |
| "modifier_values", | |
| "result_value", | |
| "result_classification", | |
| "report_result_classification", | |
| "probability_success", | |
| "probability_neutral", | |
| "probability_fail", | |
| "raw", | |
| } | |
| def build_roll_event_row(event: dict[str, Any]) -> RollEventRow: | |
| """Validate required roll-event fields and return typed row.""" | |
| missing = sorted(key for key in _REQUIRED_ROLL_EVENT_KEYS if key not in event) | |
| if missing: | |
| raise ValueError(f"Roll event missing required keys: {', '.join(missing)}") | |
| return cast(RollEventRow, event) | |
| class ModeledReportRow(TypedDict, total=False): | |
| step_number: Any | |
| game_turn: Any | |
| team_id: Any | |
| dice_roller: Any | |
| roll_category: str | |
| probability_success: float | |
| probability_neutral: float | |
| probability_fail: float | |
| result_value: int | |
| report_result_classification: str | |
| payload_type: str | |
| class ModeledRowsPayload(TypedDict): | |
| rows: list[ModeledReportRow] | |
| kickoff_rows: list[ModeledReportRow] | |
| sections: list[dict[str, Any]] | |
| class UsableSurpriseRow(TypedDict): | |
| turn: int | |
| team_id: int | |
| surprise: float | |
| p_success: float | |
| p_fail: float | |
| class CumulativeTurnRow(TypedDict): | |
| turn: int | |
| usable_event_count: int | |
| usable_event_count_turn: int | |
| team0_event_count: int | |
| team1_event_count: int | |
| team0_event_count_turn: int | |
| team1_event_count_turn: int | |
| score_0_turn: float | |
| score_1_turn: float | |
| k1_0_turn: float | |
| k1_1_turn: float | |
| std_0_turn: float | |
| std_1_turn: float | |
| team0_centred_turn: float | |
| team1_centred_turn: float | |
| score_0_n: float | |
| score_1_n: float | |
| k1_0_n: float | |
| k1_1_n: float | |
| std_0_n: float | |
| std_1_n: float | |