stats.nba.com Enhanced PBP

Ejection

class pbpstats.resources.enhanced_pbp.stats_nba.ejection.StatsEjection(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.ejection.Ejection, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for Ejection events

End of Period

class pbpstats.resources.enhanced_pbp.stats_nba.end_of_period.StatsEndOfPeriod(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.end_of_period.EndOfPeriod, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for end of period events

Enhanced PBP Factory

StatsNbaEnhancedPbpFactory can be used to create enhanced pbp event objects from the pbpstats.resources.enhanced_pbp.stats_nba module based on the event type.

The following code will get the event class for event type 1 (which is the event type for a field goal make)

from pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_factory import StatsNbaEnhancedPbpFactory

factory = StatsNbaEnhancedPbpFactory()
event_class = factory.get_event_class(1)
print(event_class)  # prints "<class 'pbpstats.resources.enhanced_pbp.stats_nba.field_goal.StatsFieldGoal'>"
class pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_factory.StatsNbaEnhancedPbpFactory[source]

Bases: object

Class for factory of event type classes. On initialization will load in all event classes in the pbpstats.resources.enhanced_pbp.stats_nba module

get_event_class(event_type)[source]

Gets the class for the event based on the event_type

Parameters

event_type (int) – event action type for the event

Returns

class for event type

Enhanced PBP Item

StatsEnhancedPbpItem is the base class for all stats.nba.com enhanced pbp event types

class pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem(event, order)[source]

Bases: pbpstats.resources.enhanced_pbp.enhanced_pbp_item.EnhancedPbpItem

Base class for enhanced pbp events from stats.nba.com

Parameters
  • event (dict) – dict with event data

  • order (int) – sequential order in which event occurs

property data

returns event as a dict

get_offense_team_id()[source]

returns team id for team on offense for event

property is_possession_ending_event

returns True if event ends a possession, False otherwise

property video_url

returns url for mp4 video of play, if available

Field Goal

class pbpstats.resources.enhanced_pbp.stats_nba.field_goal.StatsFieldGoal(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.field_goal.FieldGoal, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for field goal events

get_offense_team_id()[source]

returns team id that took the shot

property shot_value

returns 3 if shot is a 3 point attempt, 2 otherwise

Foul

class pbpstats.resources.enhanced_pbp.stats_nba.foul.StatsFoul(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.foul.Foul, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for foul events

property number_of_fta_for_foul

returns the number of free throws resulting from the foul

Free Throw

class pbpstats.resources.enhanced_pbp.stats_nba.free_throw.StatsFreeThrow(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.free_throw.FreeThrow, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for free throw events

get_offense_team_id()[source]

returns team id that took the shot

property is_made

returns True if shot was made, False otherwise

Jump Ball

class pbpstats.resources.enhanced_pbp.stats_nba.jump_ball.StatsJumpBall(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.jump_ball.JumpBall, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for jump ball events

get_offense_team_id()[source]

returns team id for team on offense for event

Rebound

class pbpstats.resources.enhanced_pbp.stats_nba.rebound.StatsRebound(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.rebound.Rebound, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for rebound events

get_offense_team_id()[source]

returns team id for team on offense for the shot that was rebounded

Replay

class pbpstats.resources.enhanced_pbp.stats_nba.replay.StatsReplay(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.replay.Replay, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for replay events

Start of Period

class pbpstats.resources.enhanced_pbp.stats_nba.start_of_period.StatsStartOfPeriod(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.start_of_period.StartOfPeriod, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for start of period events

get_period_starters(file_directory=None)[source]

Gets player ids of players who started the period for each team. If players can’t be determined from parsing pbp, will try to find them by making API request to stats.nba.com boxscore filtered by time.

Parameters

file_directory (str) – directory in which overrides subdirectory exists containing period starter overrides when period starters can’t be determined from parsing pbp events

Returns

dict with list of player ids for each team with players on the floor at start of period

Raises

InvalidNumberOfStartersException: If all 5 players that start the period for a team can’t be determined.

property league_url_part

Substitution

class pbpstats.resources.enhanced_pbp.stats_nba.substitution.StatsSubstitution(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.substitution.Substitution, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for Substitution events

Timeout

class pbpstats.resources.enhanced_pbp.stats_nba.timeout.StatsTimeout(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.timeout.Timeout, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for timeout events

Turnover

class pbpstats.resources.enhanced_pbp.stats_nba.turnover.StatsTurnover(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.turnover.Turnover, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for Turnover events

get_offense_team_id()[source]

returns team id for team on offense for event

Violation

class pbpstats.resources.enhanced_pbp.stats_nba.violation.StatsViolation(*args)[source]

Bases: pbpstats.resources.enhanced_pbp.violation.Violation, pbpstats.resources.enhanced_pbp.stats_nba.enhanced_pbp_item.StatsEnhancedPbpItem

Class for violation events