def torrent_model_update(itr, col, new_value): try: # equality check because formatting and cell renderer # functions called on self.torrent_model.set_value() are # expensive if self.torrent_model.get_value(itr, col) != new_value: self.torrent_model.set_value(itr, col, new_value) except: print "ERR", col, type(new_value), new_value .................... if not self.table_paused_unique_ids.get(unique_id): tlist = self.get_list_from_unique_id(unique_id) for i, new_value in enumerate(tlist): torrent_model_update(itr, i, new_value) else: state = self.manager.get_torrent_state(unique_id) queue_pos = state['queue_pos'] torrent_model_update(itr, 1, queue_pos) if not state["is_paused"]: del self.table_paused_unique_ids[unique_id] itr = self.torrent_model.iter_next(itr)