Skip to content

Commit 5f94b1f

Browse files
committed
chore: bump rand to 0.10.1, rand_distr to 0.5, getrandom to 0.3
- Update rand 0.8.5 → 0.10.1 - Update rand_distr 0.4 → 0.5 - Update getrandom 0.2.8 → 0.3 - Add rand/thread_rng to std_rand feature (required in 0.9+) - Rename getrandom/js feature → getrandom/wasm_js (getrandom 0.3) - Replace deprecated thread_rng() → rng() (rand_custom, generator, io_testing) - Replace deprecated gen() → random() (floatnum, realnum, kmeans) - Replace deprecated gen_range() → random_range() (kmeans, base_forest_regressor, random_forest_classifier, base_tree_regressor) - Replace distributions:: → distr:: module path (generator, io_testing) - Replace DistString → SampleString trait (io_testing) - Replace Uniform::from(range) → Uniform::new(a, b) (generator) - Remove infallible .unwrap() from SmallRng::from_rng() (realnum)
1 parent 4c275d7 commit 5f94b1f

8 files changed

Lines changed: 23 additions & 26 deletions

File tree

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ cfg-if = "1.0.0"
2525
ndarray = { version = "0.15", optional = true }
2626
num-traits = "0.2.12"
2727
num = "0.4"
28-
rand = { version = "0.8.5", default-features = false, features = ["small_rng"] }
29-
rand_distr = { version = "0.4", optional = true }
28+
rand = { version = "0.10.1", default-features = false, features = ["small_rng"] }
29+
rand_distr = { version = "0.5", optional = true }
3030
serde = { version = "1", features = ["derive"], optional = true }
3131
ordered-float = "5.1.0"
3232

@@ -38,12 +38,12 @@ default = []
3838
serde = ["dep:serde", "dep:typetag"]
3939
ndarray-bindings = ["dep:ndarray"]
4040
datasets = ["dep:rand_distr", "std_rand", "serde"]
41-
std_rand = ["rand/std_rng", "rand/std"]
41+
std_rand = ["rand/std_rng", "rand/std", "rand/thread_rng"]
4242
# used by wasm32-unknown-unknown for in-browser usage
43-
js = ["getrandom/js"]
43+
js = ["getrandom/wasm_js"]
4444

4545
[target.'cfg(target_arch = "wasm32")'.dependencies]
46-
getrandom = { version = "0.2.8", optional = true }
46+
getrandom = { version = "0.3", optional = true }
4747

4848
[target.'cfg(all(target_arch = "wasm32", not(target_os = "wasi")))'.dev-dependencies]
4949
wasm-bindgen-test = "0.3"

src/cluster/kmeans.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ impl<TX: Number, TY: Number, X: Array2<TX>, Y: Array1<TY>> KMeans<TX, TY, X, Y>
356356
let (n, _) = data.shape();
357357
let mut y = vec![0; n];
358358
let mut centroid: Vec<TX> = data
359-
.get_row(rng.gen_range(0..n))
359+
.get_row(rng.random_range(0..n))
360360
.iterator(0)
361361
.cloned()
362362
.collect();
@@ -382,7 +382,7 @@ impl<TX: Number, TY: Number, X: Array2<TX>, Y: Array1<TY>> KMeans<TX, TY, X, Y>
382382
for i in d.iter() {
383383
sum += *i;
384384
}
385-
let cutoff = rng.gen::<f64>() * sum;
385+
let cutoff = rng.random::<f64>() * sum;
386386
let mut cost = 0f64;
387387
let mut index = 0;
388388
while index < n {

src/dataset/generator.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
//! # Dataset Generators
22
//!
3-
use rand::distributions::Uniform;
3+
use rand::distr::Uniform;
44
use rand::prelude::*;
55
use rand_distr::Normal;
66

@@ -12,11 +12,11 @@ pub fn make_blobs(
1212
num_features: usize,
1313
num_centers: usize,
1414
) -> Dataset<f32, f32> {
15-
let center_box = Uniform::from(-10.0..10.0);
15+
let center_box = Uniform::new(-10.0f32, 10.0f32).expect("Invalid uniform range");
1616
let cluster_std = 1.0;
1717
let mut centers: Vec<Vec<Normal<f32>>> = Vec::with_capacity(num_centers);
1818

19-
let mut rng = rand::thread_rng();
19+
let mut rng = rand::rng();
2020
for _ in 0..num_centers {
2121
centers.push(
2222
(0..num_features)
@@ -60,7 +60,7 @@ pub fn make_circles(num_samples: usize, factor: f32, noise: f32) -> Dataset<f32,
6060
let linspace_in = linspace(0.0, 2.0 * std::f32::consts::PI, num_samples_in);
6161

6262
let noise = Normal::new(0.0, noise).unwrap();
63-
let mut rng = rand::thread_rng();
63+
let mut rng = rand::rng();
6464

6565
let mut x: Vec<f32> = Vec::with_capacity(num_samples * 2);
6666
let mut y: Vec<f32> = Vec::with_capacity(num_samples);
@@ -97,7 +97,7 @@ pub fn make_moons(num_samples: usize, noise: f32) -> Dataset<f32, u32> {
9797
let linspace_in = linspace(0.0, std::f32::consts::PI, num_samples_in);
9898

9999
let noise = Normal::new(0.0, noise).unwrap();
100-
let mut rng = rand::thread_rng();
100+
let mut rng = rand::rng();
101101

102102
let mut x: Vec<f32> = Vec::with_capacity(num_samples * 2);
103103
let mut y: Vec<f32> = Vec::with_capacity(num_samples);

src/ensemble/base_forest_regressor.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ impl<TX: Number + FloatNumber + PartialOrd, TY: Number, X: Array2<TX>, Y: Array1
212212
fn sample_with_replacement(nrows: usize, rng: &mut impl Rng) -> Vec<usize> {
213213
let mut samples = vec![0; nrows];
214214
for _ in 0..nrows {
215-
let xi = rng.gen_range(0..nrows);
215+
let xi = rng.random_range(0..nrows);
216216
samples[xi] += 1;
217217
}
218218
samples

src/numbers/floatnum.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ impl FloatNumber for f64 {
5858
fn rand() -> f64 {
5959
use rand::Rng;
6060
let mut rng = get_rng_impl(None);
61-
rng.gen()
61+
rng.random()
6262
}
6363

6464
fn two() -> Self {
@@ -100,7 +100,7 @@ impl FloatNumber for f32 {
100100
fn rand() -> f32 {
101101
use rand::Rng;
102102
let mut rng = get_rng_impl(None);
103-
rng.gen()
103+
rng.random()
104104
}
105105

106106
fn two() -> Self {

src/numbers/realnum.rs

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,8 @@ impl RealNumber for f64 {
6969
fn rand() -> f64 {
7070
let mut small_rng = get_rng_impl(None);
7171

72-
let mut rngs: Vec<SmallRng> = (0..3)
73-
.map(|_| SmallRng::from_rng(&mut small_rng).unwrap())
74-
.collect();
75-
rngs[0].gen::<f64>()
72+
let mut rngs: Vec<SmallRng> = (0..3).map(|_| SmallRng::from_rng(&mut small_rng)).collect();
73+
rngs[0].random::<f64>()
7674
}
7775

7876
fn two() -> Self {
@@ -118,10 +116,8 @@ impl RealNumber for f32 {
118116
fn rand() -> f32 {
119117
let mut small_rng = get_rng_impl(None);
120118

121-
let mut rngs: Vec<SmallRng> = (0..3)
122-
.map(|_| SmallRng::from_rng(&mut small_rng).unwrap())
123-
.collect();
124-
rngs[0].gen::<f32>()
119+
let mut rngs: Vec<SmallRng> = (0..3).map(|_| SmallRng::from_rng(&mut small_rng)).collect();
120+
rngs[0].random::<f32>()
125121
}
126122

127123
fn two() -> Self {

src/rand_custom.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ pub fn get_rng_impl(seed: Option<u64>) -> RngImpl {
1212
cfg_if::cfg_if! {
1313
if #[cfg(feature = "std_rand")] {
1414
use rand::RngCore;
15-
RngImpl::seed_from_u64(rand::thread_rng().next_u64())
15+
// FIX: thread_rng() deprecated in rand 0.9 → use rng()
16+
RngImpl::seed_from_u64(rand::rng().next_u64())
1617
} else {
1718
// no std_random feature build, use getrandom
1819
#[cfg(feature = "js")]

src/readers/io_testing.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! This module contains functionality to test IO. It has both functions that write
22
//! to the file-system for end-to-end tests, but also abstractions to avoid this by
33
//! reading from strings instead.
4-
use rand::distributions::{Alphanumeric, DistString};
4+
use rand::distr::{Alphanumeric, SampleString};
55
use std::fs;
66
use std::io::Bytes;
77
use std::io::Read;
@@ -16,7 +16,7 @@ pub struct TemporaryTextFile {
1616
impl TemporaryTextFile {
1717
pub fn new(contents: &str) -> std::io::Result<Self> {
1818
let test_text_file = TemporaryTextFile {
19-
random_path: Alphanumeric.sample_string(&mut rand::thread_rng(), 16),
19+
random_path: Alphanumeric.sample_string(&mut rand::rng(), 16),
2020
};
2121
string_to_file(contents, &test_text_file.random_path)?;
2222
Ok(test_text_file)

0 commit comments

Comments
 (0)