from dataclasses import dataclass from functools import total_ordering @total_ordering @dataclass class PrioritizedItem: __slots__ = ('priority', 'item') priority: 'int' item: 'typing.Any' def __lt__(self, other): return self.priority < other.priority def __eq__(self, other): return self.priority == other.priority