Skip to content

Commit abfd85e

Browse files
Making ordered set reversible (#395)
* made ordered set reversible * style(pre-commit.ci): auto fixes [...] --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 250f703 commit abfd85e

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/psygnal/containers/_evented_set.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,10 @@ def __repr__(self) -> str:
228228
inner = ", ".join(str(x) for x in self._data)
229229
return f"{self.__class__.__name__}(({inner}))"
230230

231+
def __reversed__(self) -> Iterator[_T]:
232+
"""Implement reversed(self)."""
233+
return reversed(self._data.keys())
234+
231235

232236
class SetEvents(SignalGroup):
233237
"""Events available on [EventedSet][psygnal.containers.EventedSet].

tests/containers/test_evented_set.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,16 @@ def test_ordering():
121121
assert tuple(os_tup) == (24, 16, 4, 5, 6, 8)
122122

123123

124+
def test_iterator():
125+
tup = (24, 16, 8, 4, 5, 6)
126+
os_tup = OrderedSet(tup)
127+
es_tup = EventedOrderedSet(tup)
128+
assert tuple(iter(os_tup)) == tup
129+
assert tuple(reversed(os_tup)) == tuple(reversed(tup))
130+
assert tuple(iter(es_tup)) == tup
131+
assert tuple(reversed(es_tup)) == tuple(reversed(tup))
132+
133+
124134
def test_copy(test_set):
125135
from copy import copy
126136

0 commit comments

Comments
 (0)