MCPcopy Index your code
hub / github.com/pathwaycom/pathway / StableSet

Class StableSet

python/pathway/internals/helpers.py:89–134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87
88
89class StableSet(MutableSet[T]):
90 _inner: dict[T, None]
91
92 def __init__(self, /, iterable: Iterable[T] = ()):
93 self._inner = dict.fromkeys(iterable)
94
95 def __contains__(self, element: object) -> bool:
96 return element in self._inner
97
98 def __iter__(self) -> Iterator[T]:
99 return iter(self._inner.keys())
100
101 def __len__(self) -> int:
102 return len(self._inner)
103
104 def __repr__(self) -> str:
105 type_name = type(self).__name__
106 if self._inner:
107 values = repr(list(self._inner.keys()))
108 else:
109 values = ""
110 return f"{type_name}({values})"
111
112 def add(self, element: T) -> None:
113 self._inner[element] = None
114
115 def discard(self, element: T) -> None:
116 self._inner.pop(element, None)
117
118 def copy(self) -> StableSet[T]:
119 return StableSet(self)
120
121 def __or__(self, other: Iterable[T2]) -> StableSet[T | T2]:
122 return super().__or__(other) # type: ignore
123
124 def __ior__(self, other: Iterable[T2]) -> StableSet[T | T2]:
125 return super().__ior__(other) # type: ignore
126
127 def update(self, *sets: Iterable[T]) -> None:
128 for s in sets:
129 self |= s
130
131 def union(*sets: Iterable[T]) -> StableSet[T]:
132 res: StableSet[T] = StableSet()
133 res.update(*sets)
134 return res

Callers 15

generate_classMethod · 0.90
__init__Method · 0.90
__init__Method · 0.90
_subtablesMethod · 0.90
_table_joinMethod · 0.90
column_dependenciesMethod · 0.90
column_dependenciesMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected