Merge pull request #3824 from oow214/fix_itertools_count_repr

Fix itertools count repr
This commit is contained in:
Jeong YunWon
2022-07-01 12:57:08 +09:00
committed by GitHub

View File

@@ -17,7 +17,7 @@ mod decl {
AsObject, Py, PyObjectRef, PyPayload, PyRef, PyResult, PyWeakRef, VirtualMachine,
};
use crossbeam_utils::atomic::AtomicCell;
use num_traits::{Signed, ToPrimitive};
use num_traits::{Signed, ToPrimitive, One};
use std::fmt;
#[pyattr]
@@ -220,10 +220,13 @@ mod decl {
}
#[pymethod(magic)]
fn repr(&self) -> PyResult<String> {
let cur = self.cur.read();
Ok(format!("count({})", cur))
fn repr(&self, vm: &VirtualMachine) -> PyResult<String> {
let cur = format!("{}", self.cur.read().clone().repr(vm)?);
let step = self.step.as_bigint();
if step.is_one() {
return Ok(format!("count({})", cur));
}
Ok(format!("count({}, {})", cur, step.to_string()))
}
}
impl IterNextIterable for PyItertoolsCount {}