From a7ced8113bc0ad229a3dbb979cb785f2940ce448 Mon Sep 17 00:00:00 2001 From: Jeong Yunwon Date: Sun, 24 Apr 2022 10:13:17 +0900 Subject: [PATCH] random.seed with unwrap_or_default --- stdlib/src/random.rs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/stdlib/src/random.rs b/stdlib/src/random.rs index b644f7a7d..412f80c0e 100644 --- a/stdlib/src/random.rs +++ b/stdlib/src/random.rs @@ -88,9 +88,9 @@ mod _random { #[pymethod] fn seed(&self, n: OptionalOption, vm: &VirtualMachine) -> PyResult<()> { - let new_rng = match n.flatten() { - None => PyRng::default(), - Some(n) => { + let new_rng = n + .flatten() + .map(|n| { // Fallback to using hash if object isn't Int-like. let (_, mut key) = match n.downcast::() { Ok(n) => n.as_bigint().abs(), @@ -101,9 +101,12 @@ mod _random { key.reverse(); } let key = if key.is_empty() { &[0] } else { key.as_slice() }; - PyRng::MT(Box::new(mt19937::MT19937::new_with_slice_seed(key))) - } - }; + Ok(PyRng::MT(Box::new(mt19937::MT19937::new_with_slice_seed( + key, + )))) + }) + .transpose()? + .unwrap_or_default(); *self.rng.lock() = new_rng; Ok(())