def parse_events(self): "Extracts all of the events from the file into an array" # Starting game state in a game game_state = GameState(1, '5v5') line = self.get_line() while (Event.is_event(line, self.version)): new_game_state, event = Event.parse_event(line, game_state) if event: self.events.append(event) game_state = new_game_state line = self.get_line()
def parse_header(self): "Parses the file up to the beginning of the game events." # First line should be version line = self.get_line() if not line: raise IOError("Encountered EOF while reading header.") if line not in Constants.VALID_VERSIONS: raise Exception( "File version not valid, I don't know what to do with this " "file.") self.version = line # Read the rest of the header up to the first event line = self.get_line() while (not Event.is_event(line, self.version)): self.parse_header_line(line) line = self.get_line() # The last line was an event, so put it back on the reader self.unread()