Bases: MutableSet[T]
Ordered set using mutableset. This is necessary for having reproducible
iteration order. This property is useful for getting reproducible
text representation of graphviz graphs, to be used in tests. This is
because in algorith to produce graph many set objects are iterated.
Source code in torchview/utils.py
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 | class OrderedSet(MutableSet[T]):
'''Ordered set using mutableset. This is necessary for having reproducible
iteration order. This property is useful for getting reproducible
text representation of graphviz graphs, to be used in tests. This is
because in algorith to produce graph many set objects are iterated.'''
def __init__(self, iterable: Any | None = None) -> None:
self.map: dict[T, None] = {}
if iterable is not None:
self |= iterable
def __len__(self) -> int:
return len(self.map)
def __contains__(self, value: object) -> bool:
return value in self.map
def add(self, value: T) -> None:
if value not in self.map:
self.map[value] = None
def remove(self, value: T) -> None:
if value in self.map:
_ = self.map.pop(value)
def discard(self, value: T) -> None:
if value in self.map:
_ = self.map.pop(value)
def __iter__(self) -> Generator[T, Any, Any]:
for cur in self.map:
yield cur
def __repr__(self) -> str:
if not self:
return f'{self.__class__.__name__}'
return f'{self.__class__.__name__}({list(self)})'
|