from pbpstats.resources.enhanced_pbp import Foul, JumpBall, Turnover
from pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item import (
StatsEnhancedPbpItem,
)
[docs]class StatsJumpBall(JumpBall, StatsEnhancedPbpItem):
"""
Class for jump ball events
"""
event_type = 10
def __init__(self, *args):
super().__init__(*args)
[docs] def get_offense_team_id(self):
"""
returns team id for team on offense for event
"""
if self.next_event.clock == self.clock and isinstance(
self.next_event, Turnover
):
return self.next_event.team_id
if isinstance(self.next_event, Foul) and self.next_event.clock == self.clock:
next_event = self.next_event.next_event
if (
isinstance(next_event, Turnover)
and not next_event.is_no_turnover
and next_event.clock == self.clock
):
return next_event.team_id
if self.count_as_possession:
team_ids = list(self.current_players.keys())
return team_ids[0] if team_ids[1] == self.team_id else team_ids[1]
return self.team_id