Source code for pbpstats.resources.enhanced_pbp.live.substitution

from pbpstats.resources.enhanced_pbp import Substitution
from pbpstats.resources.enhanced_pbp.live.enhanced_pbp_item import LiveEnhancedPbpItem


[docs]class LiveSubstitution(Substitution, LiveEnhancedPbpItem): """ Class for Substitution events """ action_type = "substitution" def __init__(self, *args): super().__init__(*args) @property def incoming_player_id(self): """ returns player id of player coming in to the game """ if self.sub_type == "out": return None return self.player1_id @property def outgoing_player_id(self): """ returns player id of player coming in to the game """ if self.sub_type == "in": return None return self.player1_id @property def current_players(self): """ returns dict with list of player ids for each team with players on the floor following the sub """ players = {} for team_id, team_players in self.previous_event.current_players.items(): players[team_id] = [player_id for player_id in team_players] if self.player1_id is not None: if self.sub_type == "in": players[self.team_id].append(self.player1_id) elif self.sub_type == "out" and self.player1_id in players[self.team_id]: players[self.team_id].remove(self.player1_id) players[self.team_id] = list(set(players[self.team_id])) return players