Skip to content

Commit 4f87f87

Browse files
committed
Add filterfalse.__reduce__
1 parent 6165aad commit 4f87f87

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

Lib/test/test_itertools.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -883,8 +883,6 @@ def test_filter(self):
883883
c = filter(isEven, range(6))
884884
self.pickletest(proto, c)
885885

886-
# TODO: RUSTPYTHON
887-
@unittest.expectedFailure
888886
def test_filterfalse(self):
889887
self.assertEqual(list(filterfalse(isEven, range(6))), [1,3,5])
890888
self.assertEqual(list(filterfalse(None, [0,1,0,2,0])), [0,0,0])

vm/src/stdlib/itertools.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -875,7 +875,15 @@ mod decl {
875875
}
876876

877877
#[pyimpl(with(IterNext, Constructor))]
878-
impl PyItertoolsFilterFalse {}
878+
impl PyItertoolsFilterFalse {
879+
#[pymethod(magic)]
880+
fn reduce(zelf: PyRef<Self>) -> (PyTypeRef, (PyObjectRef, PyIter)) {
881+
(
882+
zelf.class().clone(),
883+
(zelf.predicate.clone(), zelf.iterable.clone()),
884+
)
885+
}
886+
}
879887
impl IterNextIterable for PyItertoolsFilterFalse {}
880888
impl IterNext for PyItertoolsFilterFalse {
881889
fn next(zelf: &Py<Self>, vm: &VirtualMachine) -> PyResult<PyIterReturn> {

0 commit comments

Comments
 (0)