cfb40 / src /tracking /__init__.py
andytaylor-smg's picture
removing dead code
47d79b8
"""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",
]