Source code for pbpstats.resources.enhanced_pbp.enhanced_pbp

"""
The ``EnhancedPbp`` class has some basic properties for handling enhanced pbp data
"""
from pbpstats.resources.base import Base
from pbpstats.resources.enhanced_pbp import FieldGoal, FreeThrow, Rebound, Turnover


[docs]class EnhancedPbp(Base): """ Class for enhanced play-by-play events :param list events: list of :obj:`~pbpstats.resources.enhanced_pbp.enhanced_pbp_item.EnhancedPbpItem` items, typically from a enhanced pbp data loader """ def __init__(self, items): self.items = items @property def data(self): """ returns list of pbp event dicts """ return [item.data for item in self.items] @property def fgas(self): """ returns list of :obj:`~pbpstats.resources.enhanced_pbp.field_goal.FieldGoal` events """ return [item for item in self.items if isinstance(item, FieldGoal)] @property def fgms(self): """ returns list of :obj:`~pbpstats.resources.enhanced_pbp.field_goal.FieldGoal` events with all made FGs """ return [ item for item in self.items if isinstance(item, FieldGoal) and item.is_made ] @property def ftas(self): """ returns list of :obj:`~pbpstats.resources.enhanced_pbp.free_throw.FreeThrow` events """ return [item for item in self.items if isinstance(item, FreeThrow)] @property def rebounds(self): """ returns list of :obj:`~pbpstats.resources.enhanced_pbp.field_goal.Rebound` events """ return [ item for item in self.items if isinstance(item, Rebound) and item.is_real_rebound ] @property def turnovers(self): """ returns list of :obj:`~pbpstats.resources.enhanced_pbp.field_goal.Turnover` events """ return [ item for item in self.items if isinstance(item, Turnover) and not item.is_no_turnover ]