def process_queue()

in polymetis/python/scripts/viz.py [0:0]


    def process_queue(self):
        dataframes = {}
        while not self.state_queue.empty():
            step, robot_state = self.state_queue.get()
            if self.stream_live_data:
                write_protobuf(self.logfile, robot_state)
            curr_datetime = robot_state.timestamp.ToDatetime()
            for field, values in robot_state.ListFields():
                if field.name in self.log_keys:
                    try:
                        values_dim = len(values)
                    except TypeError:
                        values_dim = 1

                    if field.name not in dataframes:
                        df = pd.DataFrame(
                            columns=["datetime"] + list(range(values_dim))
                        ).set_index("datetime")
                        dataframes[field.name] = df

                    df = dataframes[field.name]
                    value_dict = {x[0]: x[1] for x in enumerate(values)}
                    df.loc[curr_datetime] = value_dict
        return dataframes