Spaces:
Sleeping
Sleeping
File size: 2,202 Bytes
6c65498 90c84a5 46f8ebc fbeda03 46f8ebc 90c84a5 46f8ebc fbeda03 90c84a5 fbeda03 90c84a5 fbeda03 46f8ebc 6c65498 46f8ebc fbeda03 46f8ebc fbeda03 46f8ebc fbeda03 46f8ebc 251faa9 46f8ebc fbeda03 251faa9 8abcfef 46f8ebc 6c65498 fbeda03 6c65498 251faa9 46f8ebc fbeda03 46f8ebc fbeda03 46f8ebc 6c65498 46f8ebc fbeda03 251faa9 8abcfef 6c65498 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | """Tracking modules for cross-frame state management.
This package contains components that track state across multiple frames
to identify play boundaries and other temporal events.
Architecture (v2 - Restructured):
- PlayTracker: Parent coordinator that manages sub-trackers
- NormalPlayTracker: Handles standard plays (clock reset to 40, countdown)
- SpecialPlayTracker: Handles 40→25 transitions (timeouts, punts, FGs, XPs)
- FlagTracker: Independently tracks FLAG (penalty) events
Public API:
- TrackPlayState: Main state machine for play tracking (facade, backward compatible)
- PlayTracker: New parent tracker class (can be used directly)
- FlagTracker: Independent FLAG event tracker
- PlayMerger: Merges overlapping plays
- ClockResetIdentifier: Post-hoc analysis of 40→25 clock resets
- Models: PlayEvent, PlayState, TrackerMode, determine_timeout_team, etc.
Internal modules:
- normal_play_tracker: Normal play handling logic
- special_play_tracker: Special play (40→25) handling logic
"""
from .models import (
ClockResetStats,
determine_timeout_team,
FlagInfo,
NormalTrackerState,
PlayEvent,
PlayState,
SpecialPlayHandoff,
SpecialPlayPhase,
SpecialTrackerState,
TimeoutInfo,
TrackerMode,
TrackPlayStateConfig,
)
from .play_state import TrackPlayState
from .play_tracker import PlayTracker
from .flag_tracker import FlagTracker
from .play_merger import PlayMerger
from .clock_reset_identifier import ClockResetIdentifier
from .normal_play_tracker import NormalPlayTracker
from .special_play_tracker import SpecialPlayTracker
__all__ = [
# Models
"ClockResetStats",
"FlagInfo",
"NormalTrackerState",
"PlayEvent",
"PlayState",
"SpecialPlayHandoff",
"SpecialPlayPhase",
"SpecialTrackerState",
"TimeoutInfo",
"TrackerMode",
"TrackPlayStateConfig",
# Utility functions
"determine_timeout_team",
# State machine (backward compatible facade)
"TrackPlayState",
# New tracker architecture
"PlayTracker",
"NormalPlayTracker",
"SpecialPlayTracker",
"FlagTracker",
# Merger
"PlayMerger",
# Clock reset identification
"ClockResetIdentifier",
]
|