import inspect from demoparser.entities import BaseEntity class Team(BaseEntity): def __init__(self, parser, index, class_id, serial, props): self.parser = parser self.index = index self.class_id = class_id self.serial = serial self.props = props @property def tid(self): """Team id.""" return self.get_prop('DT_Team', 'm_iTeamNum') @property def name(self): """Team name. Either 'T' or 'CT'.""" return self.get_prop('DT_Team', 'm_szTeamname') @property def clan(self): """Clan name.""" return self.get_prop('DT_Team', 'm_szClanTeamname') @property def score(self): """Final team score.""" return self.get_prop('DT_Team', 'm_scoreTotal') @property def score_first_half(self): """Score for first half of match.""" return self.get_prop('DT_Team', 'm_scoreFirstHalf') @property def score_second_half(self): """Score for second half of match.""" return self.get_prop('DT_Team', 'm_scoreSecondHalf') def properties(self): result = { 'index': self.index, 'class_id': self.class_id, 'serial': self.serial, } for name, value in inspect.getmembers(self): prop_attr = getattr(self.__class__, name, None) if inspect.isdatadescriptor(prop_attr): attr = getattr(self, name, None) if not isinstance(attr, BaseEntity): result[name] = value return result