portage.util.iterators.MultiIterGroupBy module

class portage.util.iterators.MultiIterGroupBy.MultiIterGroupBy(iterators, key=None)

Bases: object

This class functions similarly to the itertools.groupby function, except that it takes multiple source iterators as input. The source iterators must yield objects in sorted order. A group is yielded as soon as the progress of all iterators reaches a state which guarantees that there can not be any remaining (unseen) elements of the group. This is useful for incremental display of grouped search results.

class portage.util.iterators.MultiIterGroupBy._IteratorTracker(iterator)

Bases: object