def get_last(model: Gtk.TreeStore) -> Optional[Gtk.TreeIter]: """Return an TreeIter pointing to the last element in the model""" current = model.get_iter_first() iter = None while current is not None: iter = current current = model.iter_next(current) return iter
def children_generator(store: Gtk.TreeStore, parent_iter: Gtk.TreeIter): child_iter = store.iter_children(parent_iter) while child_iter is not None: next_iter = store.iter_next(child_iter) # get next iterator before yield to protect against item removal yield child_iter child_iter = next_iter