Esempio n. 1
0
class Game(object):
  
  # add constructor argument for json source
  def __init__(self, game_key = None, extractors = {}, cum_stats = {}):
    
    self.game_key = game_key
    
    self.toi = TOI(game_key)
    self.rosters = Rosters(game_key)
    #self.summary = GameSummary(game_key)
    self.play_by_play = PlayByPlay(game_key, extractors, cum_stats)
  
    
  
  def load_all(self):
    """Force all reports to be loaded and parsed instead of lazy loading on demand."""
    try:
      self.toi.load_all()
      self.rosters.load_all()
      self.summary.load_all()
      self.play_by_play.load_all()
      return True
    except:
      return False
  
  
  #########################################
  ##
  ## convenience wrapper properties
  ##
  #########################################
  @property
  def matchup(self):
    if self.play_by_play.matchup:
      return self.play_by_play.matchup
    elif self.rosters.matchup:
      return self.rosters.matchup
    else:
      return self.toi.matchup
  
  
  #
  # play related
  #
  @property
  def plays(self):
    return self.play_by_play.plays()
  
  @property
  def extractors(self):
    return self.play_by_play.extractors
    
  @property
  def cum_stats(self):
    self.play_by_play.compute_stats()
    return self.play_by_play.cum_stats
  
  
  #
  # personnel related
  #
  @property
  def home_skaters(self):
    return self.rosters.home_skaters()
    
  @property
  def home_coach(self):
    return self.rosters.home_coach()
    
  @property
  def away_skaters(self):
    return self.rosters.away_skaters()
  
  @property
  def away_coach(self):
    return self.rosters.away_coach()
    
  @property
  def refs(self):
    return self.rosters.refs()
    
  @property
  def linesman(self):
    return self.rosters.linesman()
  
  
  #
  # toi related
  #
  @property
  def home_toi(self):
    return self.toi.home_shift_summ()
    
  @property
  def away_toi(self):
    return self.toi.away_shift_summ()