[INFO] cloning repository https://github.com/franciscoparrao/smelt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/franciscoparrao/smelt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffranciscoparrao%2Fsmelt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffranciscoparrao%2Fsmelt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 5e93c3fb6327a0de31fa408fc40afe251101b21b
[INFO] checking franciscoparrao/smelt against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffranciscoparrao%2Fsmelt" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/franciscoparrao/smelt
[INFO] finished tweaking git repo https://github.com/franciscoparrao/smelt
[INFO] tweaked toml for git repo https://github.com/franciscoparrao/smelt written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/franciscoparrao/smelt on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/franciscoparrao/smelt already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071
[INFO] running `Command { std: "docker" "start" "2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking rand_core v0.9.5
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]    Compiling target-lexicon v0.13.5
[INFO] [stderr]     Checking inventory v0.3.24
[INFO] [stderr]     Checking unindent v0.2.4
[INFO] [stderr]     Checking rustc-hash v2.1.2
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]    Compiling pyo3-build-config v0.24.2
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking clap v4.6.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling pyo3-ffi v0.24.2
[INFO] [stderr]    Compiling pyo3-macros-backend v0.24.2
[INFO] [stderr]    Compiling pyo3 v0.24.2
[INFO] [stderr]    Compiling numpy v0.24.0
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]    Compiling zerocopy-derive v0.8.47
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]    Compiling pyo3-macros v0.24.2
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking smelt-ml v3.2.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking smelt-py v0.8.1 (/opt/rustwide/workdir/smelt-py)
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:198:10
[INFO] [stdout]     |
[INFO] [stdout] 198 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:256:10
[INFO] [stdout]     |
[INFO] [stdout] 256 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:290:35
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:309:69
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/causal.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 |     ) -> PyResult<PyObject> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/causal.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/causal.rs:82:69
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:132:10
[INFO] [stdout]     |
[INFO] [stdout] 132 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:146:45
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:153:69
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:223:10
[INFO] [stdout]     |
[INFO] [stdout] 223 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:258:45
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:270:69
[INFO] [stdout]     |
[INFO] [stdout] 270 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:367:10
[INFO] [stdout]     |
[INFO] [stdout] 367 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:395:45
[INFO] [stdout]     |
[INFO] [stdout] 395 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:407:69
[INFO] [stdout]     |
[INFO] [stdout] 407 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:492:10
[INFO] [stdout]     |
[INFO] [stdout] 492 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:524:45
[INFO] [stdout]     |
[INFO] [stdout] 524 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:537:69
[INFO] [stdout]     |
[INFO] [stdout] 537 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/cluster.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 |     ) -> PyResult<(Vec<i32>, Bound<'py, PyArray2<f64>>)> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/cluster.rs:71:10
[INFO] [stdout]    |
[INFO] [stdout] 71 |     ) -> PyResult<f64> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/cluster.rs:116:76
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn fit_predict(&self, py: Python<'_>, x: PyReadonlyArray2<'_, f64>) -> PyResult<Vec<i32>> {
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/cluster.rs:155:10
[INFO] [stdout]     |
[INFO] [stdout] 155 |     ) -> PyResult<(Vec<f64>, Vec<i32>)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/conformal.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:104:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ) -> PyResult<(Bound<'py, PyArray1<f64>>, Bound<'py, PyArray1<f64>>)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:228:10
[INFO] [stdout]     |
[INFO] [stdout] 228 |     ) -> PyResult<(Bound<'py, PyArray1<f64>>, Bound<'py, PyArray1<f64>>)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:243:10
[INFO] [stdout]     |
[INFO] [stdout] 243 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/data.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 |       ) -> PyResult<(
[INFO] [stdout]    |  __________^
[INFO] [stdout] 52 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 53 | |         Bound<'py, PyArray1<i64>>,
[INFO] [stdout] 54 | |         Vec<String>,
[INFO] [stdout] 55 | |     )> {
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/data.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 |       ) -> PyResult<(
[INFO] [stdout]    |  __________^
[INFO] [stdout] 74 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 75 | |         Bound<'py, PyArray1<f64>>,
[INFO] [stdout] 76 | |         Vec<String>,
[INFO] [stdout] 77 | |     )> {
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/feature_selection.rs:43:6
[INFO] [stdout]    |
[INFO] [stdout] 43 | ) -> PyResult<PyObject> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:178:10
[INFO] [stdout]     |
[INFO] [stdout] 178 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:186:10
[INFO] [stdout]     |
[INFO] [stdout] 186 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:244:10
[INFO] [stdout]     |
[INFO] [stdout] 244 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:277:10
[INFO] [stdout]     |
[INFO] [stdout] 277 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:285:10
[INFO] [stdout]     |
[INFO] [stdout] 285 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:364:10
[INFO] [stdout]     |
[INFO] [stdout] 364 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:401:10
[INFO] [stdout]     |
[INFO] [stdout] 401 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:409:10
[INFO] [stdout]     |
[INFO] [stdout] 409 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:478:10
[INFO] [stdout]     |
[INFO] [stdout] 478 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:534:10
[INFO] [stdout]     |
[INFO] [stdout] 534 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:588:10
[INFO] [stdout]     |
[INFO] [stdout] 588 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:634:66
[INFO] [stdout]     |
[INFO] [stdout] 634 |     fn local_feature_importances<'py>(&self, py: Python<'py>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:683:10
[INFO] [stdout]     |
[INFO] [stdout] 683 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:699:10
[INFO] [stdout]     |
[INFO] [stdout] 699 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:730:10
[INFO] [stdout]     |
[INFO] [stdout] 730 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:792:10
[INFO] [stdout]     |
[INFO] [stdout] 792 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:832:10
[INFO] [stdout]     |
[INFO] [stdout] 832 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:914:45
[INFO] [stdout]     |
[INFO] [stdout] 914 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:934:82
[INFO] [stdout]     |
[INFO] [stdout] 934 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1015:45
[INFO] [stdout]      |
[INFO] [stdout] 1015 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1025:82
[INFO] [stdout]      |
[INFO] [stdout] 1025 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]      |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1056:36
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     fn save(&self, _path: &str) -> PyResult<()> {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1061:29
[INFO] [stdout]      |
[INFO] [stdout] 1061 |     fn load(_path: &str) -> PyResult<Self> {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1071:36
[INFO] [stdout]      |
[INFO] [stdout] 1071 |     fn save(&self, _path: &str) -> PyResult<()> {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1076:29
[INFO] [stdout]      |
[INFO] [stdout] 1076 |     fn load(_path: &str) -> PyResult<Self> {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/ensemble.rs:54:63
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub(crate) fn learner_properties(py: Python<'_>, id: &str) -> PyResult<PyObject> {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:101:10
[INFO] [stdout]     |
[INFO] [stdout] 101 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:118:10
[INFO] [stdout]     |
[INFO] [stdout] 118 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 126 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:177:10
[INFO] [stdout]     |
[INFO] [stdout] 177 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:197:10
[INFO] [stdout]     |
[INFO] [stdout] 197 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:280:10
[INFO] [stdout]     |
[INFO] [stdout] 280 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:304:10
[INFO] [stdout]     |
[INFO] [stdout] 304 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:402:10
[INFO] [stdout]     |
[INFO] [stdout] 402 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:424:10
[INFO] [stdout]     |
[INFO] [stdout] 424 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:432:10
[INFO] [stdout]     |
[INFO] [stdout] 432 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:445:45
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:455:69
[INFO] [stdout]     |
[INFO] [stdout] 455 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:543:10
[INFO] [stdout]     |
[INFO] [stdout] 543 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:593:10
[INFO] [stdout]     |
[INFO] [stdout] 593 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:601:10
[INFO] [stdout]     |
[INFO] [stdout] 601 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:614:45
[INFO] [stdout]     |
[INFO] [stdout] 614 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:625:69
[INFO] [stdout]     |
[INFO] [stdout] 625 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:708:10
[INFO] [stdout]     |
[INFO] [stdout] 708 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:739:10
[INFO] [stdout]     |
[INFO] [stdout] 739 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:747:10
[INFO] [stdout]     |
[INFO] [stdout] 747 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:806:10
[INFO] [stdout]     |
[INFO] [stdout] 806 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:836:10
[INFO] [stdout]     |
[INFO] [stdout] 836 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:844:10
[INFO] [stdout]     |
[INFO] [stdout] 844 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:889:45
[INFO] [stdout]     |
[INFO] [stdout] 889 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:898:69
[INFO] [stdout]     |
[INFO] [stdout] 898 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:924:45
[INFO] [stdout]     |
[INFO] [stdout] 924 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:932:69
[INFO] [stdout]     |
[INFO] [stdout] 932 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:957:45
[INFO] [stdout]     |
[INFO] [stdout] 957 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:965:69
[INFO] [stdout]     |
[INFO] [stdout] 965 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:994:45
[INFO] [stdout]     |
[INFO] [stdout] 994 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/ensemble.rs:1004:69
[INFO] [stdout]      |
[INFO] [stdout] 1004 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]      |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/ensemble.rs:1042:45
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/ensemble.rs:1052:69
[INFO] [stdout]      |
[INFO] [stdout] 1052 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]      |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:63:10
[INFO] [stdout]    |
[INFO] [stdout] 63 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/linear.rs:110:10
[INFO] [stdout]     |
[INFO] [stdout] 110 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/linear.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/linear.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:80:10
[INFO] [stdout]    |
[INFO] [stdout] 80 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:85:35
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:97:46
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn load(path: &str, is_classif: bool) -> PyResult<Self> {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:153:10
[INFO] [stdout]     |
[INFO] [stdout] 153 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:224:85
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn fit(&mut self, py: Python<'_>, x: PyReadonlyArray2<'_, f64>, y: Vec<f64>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:247:10
[INFO] [stdout]     |
[INFO] [stdout] 247 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:257:10
[INFO] [stdout]     |
[INFO] [stdout] 257 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:278:10
[INFO] [stdout]     |
[INFO] [stdout] 278 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:308:35
[INFO] [stdout]     |
[INFO] [stdout] 308 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:323:46
[INFO] [stdout]     |
[INFO] [stdout] 323 |     fn load(path: &str, is_classif: bool) -> PyResult<Self> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:351:10
[INFO] [stdout]     |
[INFO] [stdout] 351 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:367:10
[INFO] [stdout]     |
[INFO] [stdout] 367 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:393:10
[INFO] [stdout]     |
[INFO] [stdout] 393 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:442:85
[INFO] [stdout]     |
[INFO] [stdout] 442 |     fn fit(&mut self, py: Python<'_>, x: PyReadonlyArray2<'_, f64>, y: Vec<f64>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:463:10
[INFO] [stdout]     |
[INFO] [stdout] 463 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:477:10
[INFO] [stdout]     |
[INFO] [stdout] 477 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:492:10
[INFO] [stdout]     |
[INFO] [stdout] 492 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:578:10
[INFO] [stdout]     |
[INFO] [stdout] 578 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:603:10
[INFO] [stdout]     |
[INFO] [stdout] 603 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:623:10
[INFO] [stdout]     |
[INFO] [stdout] 623 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:643:45
[INFO] [stdout]     |
[INFO] [stdout] 643 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:655:82
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:733:10
[INFO] [stdout]     |
[INFO] [stdout] 733 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:749:10
[INFO] [stdout]     |
[INFO] [stdout] 749 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:757:10
[INFO] [stdout]     |
[INFO] [stdout] 757 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:761:45
[INFO] [stdout]     |
[INFO] [stdout] 761 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:771:82
[INFO] [stdout]     |
[INFO] [stdout] 771 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/trees.rs:70:10
[INFO] [stdout]    |
[INFO] [stdout] 70 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/trees.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/trees.rs:93:10
[INFO] [stdout]    |
[INFO] [stdout] 93 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:144:10
[INFO] [stdout]     |
[INFO] [stdout] 144 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:159:10
[INFO] [stdout]     |
[INFO] [stdout] 159 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:197:10
[INFO] [stdout]     |
[INFO] [stdout] 197 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:213:10
[INFO] [stdout]     |
[INFO] [stdout] 213 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:45:71
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) fn accuracy_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:53:65
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub(crate) fn rmse_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:60:63
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub(crate) fn r2_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:67:64
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub(crate) fn mae_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:77:65
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub(crate) fn mape_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:88:76
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub(crate) fn logloss_score(y_true: Vec<usize>, y_proba: Vec<Vec<f64>>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:108:65
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) fn f1_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:116:72
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub(crate) fn precision_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:124:69
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub(crate) fn recall_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:132:80
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub(crate) fn balanced_accuracy_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:142:75
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub(crate) fn cohens_kappa_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:152:66
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub(crate) fn mcc_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:194:78
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub(crate) fn brier_score(y_true: Vec<usize>, y_proba: &Bound<'_, PyAny>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:210:80
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub(crate) fn auc_roc_score(y_true: Vec<usize>, y_proba: &Bound<'_, PyAny>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn fit(&mut self, x: PyReadonlyArray2<'_, f64>) -> PyResult<()> {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ) -> PyResult<(Bound<'py, PyArray2<f64>>, Vec<usize>)> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/preprocess.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |       ) -> PyResult<(
[INFO] [stdout]     |  __________^
[INFO] [stdout] 130 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 131 | |         Vec<usize>,
[INFO] [stdout] 132 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 133 | |     )> {
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/py_stats.rs:32:65
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn wilcoxon_signed_rank(a: Vec<f64>, b: Vec<f64>) -> PyResult<TestResult> {
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/py_stats.rs:49:6
[INFO] [stdout]    |
[INFO] [stdout] 49 | ) -> PyResult<(f64, f64, f64)> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/py_stats.rs:56:54
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub(crate) fn sign_test(a: Vec<f64>, b: Vec<f64>) -> PyResult<TestResult> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/resample.rs:25:43
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/resample.rs:51:43
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/resample.rs:75:43
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:102:43
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:133:43
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:170:59
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn splits(&self, py: Python<'_>, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:196:43
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:221:43
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:265:43
[INFO] [stdout]     |
[INFO] [stdout] 265 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/tuning.rs:354:10
[INFO] [stdout]     |
[INFO] [stdout] 354 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 | filter_fn!(filter_variance, "variance");
[INFO] [stdout]     | --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 | filter_fn!(filter_correlation, "correlation");
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 | filter_fn!(filter_anova_f, "anova_f");
[INFO] [stdout]     | ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 | filter_fn!(filter_information_gain, "information_gain");
[INFO] [stdout]     | ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 | filter_fn!(filter_mutual_information, "mutual_information");
[INFO] [stdout]     | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 | filter_fn!(filter_mrmr, "mrmr");
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 | filter_fn!(filter_jmi, "jmi");
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 | filter_fn!(filter_jmim, "jmim");
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 | filter_fn!(filter_cmim, "cmim");
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 | filter_fn!(filter_relief, "relief");
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:968:1
[INFO] [stdout]     |
[INFO] [stdout] 968 | / declare_params!(CatBoost, {
[INFO] [stdout] 969 | |     n_estimators => "n_estimators",
[INFO] [stdout] 970 | |     depth => "depth",
[INFO] [stdout] 971 | |     learning_rate => "learning_rate",
[INFO] [stdout] 972 | |     lambda => "lambda_",
[INFO] [stdout] 973 | |     seed => "seed",
[INFO] [stdout] 974 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:968:1
[INFO] [stdout]     |
[INFO] [stdout] 968 | / declare_params!(CatBoost, {
[INFO] [stdout] 969 | |     n_estimators => "n_estimators",
[INFO] [stdout] 970 | |     depth => "depth",
[INFO] [stdout] 971 | |     learning_rate => "learning_rate",
[INFO] [stdout] 972 | |     lambda => "lambda_",
[INFO] [stdout] 973 | |     seed => "seed",
[INFO] [stdout] 974 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:976:1
[INFO] [stdout]     |
[INFO] [stdout] 976 | / declare_params!(LightGBM, {
[INFO] [stdout] 977 | |     n_estimators => "n_estimators",
[INFO] [stdout] 978 | |     num_leaves => "num_leaves",
[INFO] [stdout] 979 | |     learning_rate => "learning_rate",
[INFO] [stdout] ...   |
[INFO] [stdout] 983 | |     seed => "seed",
[INFO] [stdout] 984 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:976:1
[INFO] [stdout]     |
[INFO] [stdout] 976 | / declare_params!(LightGBM, {
[INFO] [stdout] 977 | |     n_estimators => "n_estimators",
[INFO] [stdout] 978 | |     num_leaves => "num_leaves",
[INFO] [stdout] 979 | |     learning_rate => "learning_rate",
[INFO] [stdout] ...   |
[INFO] [stdout] 983 | |     seed => "seed",
[INFO] [stdout] 984 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/common.rs:932:59
[INFO] [stdout]      |
[INFO] [stdout]  927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout]  932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]      |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: smelt-py/src/learners/boosting.rs:998:1
[INFO] [stdout]      |
[INFO] [stdout]  998 | / declare_params!(GeoXGBoost, {
[INFO] [stdout]  999 | |     bandwidth => "bandwidth",
[INFO] [stdout] 1000 | |     n_estimators => "n_estimators",
[INFO] [stdout] 1001 | |     max_depth => "max_depth",
[INFO] [stdout] ...    |
[INFO] [stdout] 1005 | |     seed => "seed",
[INFO] [stdout] 1006 | | });
[INFO] [stdout]      | |__- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/common.rs:942:96
[INFO] [stdout]      |
[INFO] [stdout]  927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout]  942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]      |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: smelt-py/src/learners/boosting.rs:998:1
[INFO] [stdout]      |
[INFO] [stdout]  998 | / declare_params!(GeoXGBoost, {
[INFO] [stdout]  999 | |     bandwidth => "bandwidth",
[INFO] [stdout] 1000 | |     n_estimators => "n_estimators",
[INFO] [stdout] 1001 | |     max_depth => "max_depth",
[INFO] [stdout] ...    |
[INFO] [stdout] 1005 | |     seed => "seed",
[INFO] [stdout] 1006 | | });
[INFO] [stdout]      | |__- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | declare_params!(LogisticRegression, {});
[INFO] [stdout]     | --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | declare_params!(LogisticRegression, {});
[INFO] [stdout]     | --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:219:1
[INFO] [stdout]     |
[INFO] [stdout] 219 | declare_params!(LinearRegression, {});
[INFO] [stdout]     | ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:219:1
[INFO] [stdout]     |
[INFO] [stdout] 219 | declare_params!(LinearRegression, {});
[INFO] [stdout]     | ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:220:1
[INFO] [stdout]     |
[INFO] [stdout] 220 | declare_params!(Ridge,              { alpha => "alpha" });
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:220:1
[INFO] [stdout]     |
[INFO] [stdout] 220 | declare_params!(Ridge,              { alpha => "alpha" });
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:399:1
[INFO] [stdout]     |
[INFO] [stdout] 399 | / declare_params!(QuantileForest, {
[INFO] [stdout] 400 | |     n_estimators => "n_estimators",
[INFO] [stdout] 401 | |     max_depth => "max_depth",
[INFO] [stdout] 402 | |     min_samples_leaf => "min_samples_leaf",
[INFO] [stdout] 403 | |     seed => "seed",
[INFO] [stdout] 404 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:399:1
[INFO] [stdout]     |
[INFO] [stdout] 399 | / declare_params!(QuantileForest, {
[INFO] [stdout] 400 | |     n_estimators => "n_estimators",
[INFO] [stdout] 401 | |     max_depth => "max_depth",
[INFO] [stdout] 402 | |     min_samples_leaf => "min_samples_leaf",
[INFO] [stdout] 403 | |     seed => "seed",
[INFO] [stdout] 404 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:505:1
[INFO] [stdout]     |
[INFO] [stdout] 505 | / declare_params!(GaussianProcess, {
[INFO] [stdout] 506 | |     length_scale => "length_scale",
[INFO] [stdout] 507 | |     signal_variance => "signal_variance",
[INFO] [stdout] 508 | |     alpha => "alpha",
[INFO] [stdout] 509 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:505:1
[INFO] [stdout]     |
[INFO] [stdout] 505 | / declare_params!(GaussianProcess, {
[INFO] [stdout] 506 | |     length_scale => "length_scale",
[INFO] [stdout] 507 | |     signal_variance => "signal_variance",
[INFO] [stdout] 508 | |     alpha => "alpha",
[INFO] [stdout] 509 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:823:1
[INFO] [stdout]     |
[INFO] [stdout] 823 | declare_params!(KNearestNeighbors, { k => "k" });
[INFO] [stdout]     | ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:823:1
[INFO] [stdout]     |
[INFO] [stdout] 823 | declare_params!(KNearestNeighbors, { k => "k" });
[INFO] [stdout]     | ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:824:1
[INFO] [stdout]     |
[INFO] [stdout] 824 | declare_params!(GaussianNB, {});
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:824:1
[INFO] [stdout]     |
[INFO] [stdout] 824 | declare_params!(GaussianNB, {});
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:377:1
[INFO] [stdout]     |
[INFO] [stdout] 377 | declare_params!(RandomForest, { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:377:1
[INFO] [stdout]     |
[INFO] [stdout] 377 | declare_params!(RandomForest, { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:378:1
[INFO] [stdout]     |
[INFO] [stdout] 378 | declare_params!(ExtraTrees,   { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:378:1
[INFO] [stdout]     |
[INFO] [stdout] 378 | declare_params!(ExtraTrees,   { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:379:1
[INFO] [stdout]     |
[INFO] [stdout] 379 | declare_params!(DecisionTree, { max_depth => "max_depth" });
[INFO] [stdout]     | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:379:1
[INFO] [stdout]     |
[INFO] [stdout] 379 | declare_params!(DecisionTree, { max_depth => "max_depth" });
[INFO] [stdout]     | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:198:10
[INFO] [stdout]     |
[INFO] [stdout] 198 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:248:10
[INFO] [stdout]     |
[INFO] [stdout] 248 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:256:10
[INFO] [stdout]     |
[INFO] [stdout] 256 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:290:35
[INFO] [stdout]     |
[INFO] [stdout] 290 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/auto_tuner.rs:309:69
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/causal.rs:54:10
[INFO] [stdout]    |
[INFO] [stdout] 54 |     ) -> PyResult<PyObject> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/causal.rs:74:45
[INFO] [stdout]    |
[INFO] [stdout] 74 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/causal.rs:82:69
[INFO] [stdout]    |
[INFO] [stdout] 82 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]    |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:132:10
[INFO] [stdout]     |
[INFO] [stdout] 132 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:146:45
[INFO] [stdout]     |
[INFO] [stdout] 146 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:153:69
[INFO] [stdout]     |
[INFO] [stdout] 153 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:223:10
[INFO] [stdout]     |
[INFO] [stdout] 223 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:258:45
[INFO] [stdout]     |
[INFO] [stdout] 258 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:270:69
[INFO] [stdout]     |
[INFO] [stdout] 270 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:367:10
[INFO] [stdout]     |
[INFO] [stdout] 367 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:395:45
[INFO] [stdout]     |
[INFO] [stdout] 395 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:407:69
[INFO] [stdout]     |
[INFO] [stdout] 407 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:492:10
[INFO] [stdout]     |
[INFO] [stdout] 492 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:524:45
[INFO] [stdout]     |
[INFO] [stdout] 524 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/causal.rs:537:69
[INFO] [stdout]     |
[INFO] [stdout] 537 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/cluster.rs:49:10
[INFO] [stdout]    |
[INFO] [stdout] 49 |     ) -> PyResult<(Vec<i32>, Bound<'py, PyArray2<f64>>)> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/cluster.rs:71:10
[INFO] [stdout]    |
[INFO] [stdout] 71 |     ) -> PyResult<f64> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/cluster.rs:116:76
[INFO] [stdout]     |
[INFO] [stdout] 116 |     fn fit_predict(&self, py: Python<'_>, x: PyReadonlyArray2<'_, f64>) -> PyResult<Vec<i32>> {
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/cluster.rs:155:10
[INFO] [stdout]     |
[INFO] [stdout] 155 |     ) -> PyResult<(Vec<f64>, Vec<i32>)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/conformal.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:104:10
[INFO] [stdout]     |
[INFO] [stdout] 104 |     ) -> PyResult<(Bound<'py, PyArray1<f64>>, Bound<'py, PyArray1<f64>>)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:228:10
[INFO] [stdout]     |
[INFO] [stdout] 228 |     ) -> PyResult<(Bound<'py, PyArray1<f64>>, Bound<'py, PyArray1<f64>>)> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/conformal.rs:243:10
[INFO] [stdout]     |
[INFO] [stdout] 243 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/data.rs:51:10
[INFO] [stdout]    |
[INFO] [stdout] 51 |       ) -> PyResult<(
[INFO] [stdout]    |  __________^
[INFO] [stdout] 52 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 53 | |         Bound<'py, PyArray1<i64>>,
[INFO] [stdout] 54 | |         Vec<String>,
[INFO] [stdout] 55 | |     )> {
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/data.rs:73:10
[INFO] [stdout]    |
[INFO] [stdout] 73 |       ) -> PyResult<(
[INFO] [stdout]    |  __________^
[INFO] [stdout] 74 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 75 | |         Bound<'py, PyArray1<f64>>,
[INFO] [stdout] 76 | |         Vec<String>,
[INFO] [stdout] 77 | |     )> {
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/feature_selection.rs:43:6
[INFO] [stdout]    |
[INFO] [stdout] 43 | ) -> PyResult<PyObject> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:178:10
[INFO] [stdout]     |
[INFO] [stdout] 178 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:186:10
[INFO] [stdout]     |
[INFO] [stdout] 186 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:244:10
[INFO] [stdout]     |
[INFO] [stdout] 244 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:277:10
[INFO] [stdout]     |
[INFO] [stdout] 277 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:285:10
[INFO] [stdout]     |
[INFO] [stdout] 285 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:364:10
[INFO] [stdout]     |
[INFO] [stdout] 364 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:401:10
[INFO] [stdout]     |
[INFO] [stdout] 401 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:409:10
[INFO] [stdout]     |
[INFO] [stdout] 409 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:478:10
[INFO] [stdout]     |
[INFO] [stdout] 478 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:534:10
[INFO] [stdout]     |
[INFO] [stdout] 534 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:588:10
[INFO] [stdout]     |
[INFO] [stdout] 588 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:634:66
[INFO] [stdout]     |
[INFO] [stdout] 634 |     fn local_feature_importances<'py>(&self, py: Python<'py>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:683:10
[INFO] [stdout]     |
[INFO] [stdout] 683 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:699:10
[INFO] [stdout]     |
[INFO] [stdout] 699 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:730:10
[INFO] [stdout]     |
[INFO] [stdout] 730 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:792:10
[INFO] [stdout]     |
[INFO] [stdout] 792 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:832:10
[INFO] [stdout]     |
[INFO] [stdout] 832 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:914:45
[INFO] [stdout]     |
[INFO] [stdout] 914 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/boosting.rs:934:82
[INFO] [stdout]     |
[INFO] [stdout] 934 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1015:45
[INFO] [stdout]      |
[INFO] [stdout] 1015 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1025:82
[INFO] [stdout]      |
[INFO] [stdout] 1025 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]      |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1056:36
[INFO] [stdout]      |
[INFO] [stdout] 1056 |     fn save(&self, _path: &str) -> PyResult<()> {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1061:29
[INFO] [stdout]      |
[INFO] [stdout] 1061 |     fn load(_path: &str) -> PyResult<Self> {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1071:36
[INFO] [stdout]      |
[INFO] [stdout] 1071 |     fn save(&self, _path: &str) -> PyResult<()> {
[INFO] [stdout]      |                                    ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/boosting.rs:1076:29
[INFO] [stdout]      |
[INFO] [stdout] 1076 |     fn load(_path: &str) -> PyResult<Self> {
[INFO] [stdout]      |                             ^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/ensemble.rs:54:63
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub(crate) fn learner_properties(py: Python<'_>, id: &str) -> PyResult<PyObject> {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:101:10
[INFO] [stdout]     |
[INFO] [stdout] 101 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:118:10
[INFO] [stdout]     |
[INFO] [stdout] 118 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:126:10
[INFO] [stdout]     |
[INFO] [stdout] 126 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:177:10
[INFO] [stdout]     |
[INFO] [stdout] 177 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:197:10
[INFO] [stdout]     |
[INFO] [stdout] 197 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:280:10
[INFO] [stdout]     |
[INFO] [stdout] 280 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:304:10
[INFO] [stdout]     |
[INFO] [stdout] 304 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:402:10
[INFO] [stdout]     |
[INFO] [stdout] 402 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:424:10
[INFO] [stdout]     |
[INFO] [stdout] 424 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:432:10
[INFO] [stdout]     |
[INFO] [stdout] 432 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:445:45
[INFO] [stdout]     |
[INFO] [stdout] 445 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:455:69
[INFO] [stdout]     |
[INFO] [stdout] 455 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:543:10
[INFO] [stdout]     |
[INFO] [stdout] 543 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:593:10
[INFO] [stdout]     |
[INFO] [stdout] 593 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:601:10
[INFO] [stdout]     |
[INFO] [stdout] 601 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:614:45
[INFO] [stdout]     |
[INFO] [stdout] 614 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:625:69
[INFO] [stdout]     |
[INFO] [stdout] 625 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:708:10
[INFO] [stdout]     |
[INFO] [stdout] 708 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:739:10
[INFO] [stdout]     |
[INFO] [stdout] 739 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:747:10
[INFO] [stdout]     |
[INFO] [stdout] 747 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:806:10
[INFO] [stdout]     |
[INFO] [stdout] 806 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:836:10
[INFO] [stdout]     |
[INFO] [stdout] 836 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:844:10
[INFO] [stdout]     |
[INFO] [stdout] 844 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:889:45
[INFO] [stdout]     |
[INFO] [stdout] 889 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:898:69
[INFO] [stdout]     |
[INFO] [stdout] 898 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:924:45
[INFO] [stdout]     |
[INFO] [stdout] 924 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:932:69
[INFO] [stdout]     |
[INFO] [stdout] 932 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:957:45
[INFO] [stdout]     |
[INFO] [stdout] 957 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:965:69
[INFO] [stdout]     |
[INFO] [stdout] 965 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/ensemble.rs:994:45
[INFO] [stdout]     |
[INFO] [stdout] 994 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/ensemble.rs:1004:69
[INFO] [stdout]      |
[INFO] [stdout] 1004 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]      |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/ensemble.rs:1042:45
[INFO] [stdout]      |
[INFO] [stdout] 1042 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]      |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/learners/ensemble.rs:1052:69
[INFO] [stdout]      |
[INFO] [stdout] 1052 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, PyDict>>) -> PyResult<()> {
[INFO] [stdout]      |                                                                     ^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:55:10
[INFO] [stdout]    |
[INFO] [stdout] 55 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:63:10
[INFO] [stdout]    |
[INFO] [stdout] 63 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/linear.rs:98:10
[INFO] [stdout]    |
[INFO] [stdout] 98 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/linear.rs:110:10
[INFO] [stdout]     |
[INFO] [stdout] 110 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/linear.rs:148:10
[INFO] [stdout]     |
[INFO] [stdout] 148 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `smelt-py` (lib) due to 295 previous errors
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/linear.rs:160:10
[INFO] [stdout]     |
[INFO] [stdout] 160 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:60:10
[INFO] [stdout]    |
[INFO] [stdout] 60 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:72:10
[INFO] [stdout]    |
[INFO] [stdout] 72 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:80:10
[INFO] [stdout]    |
[INFO] [stdout] 80 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:85:35
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/misc.rs:97:46
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn load(path: &str, is_classif: bool) -> PyResult<Self> {
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:141:10
[INFO] [stdout]     |
[INFO] [stdout] 141 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:153:10
[INFO] [stdout]     |
[INFO] [stdout] 153 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:161:10
[INFO] [stdout]     |
[INFO] [stdout] 161 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:224:85
[INFO] [stdout]     |
[INFO] [stdout] 224 |     fn fit(&mut self, py: Python<'_>, x: PyReadonlyArray2<'_, f64>, y: Vec<f64>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:247:10
[INFO] [stdout]     |
[INFO] [stdout] 247 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:257:10
[INFO] [stdout]     |
[INFO] [stdout] 257 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:278:10
[INFO] [stdout]     |
[INFO] [stdout] 278 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:308:35
[INFO] [stdout]     |
[INFO] [stdout] 308 |     fn save(&self, path: &str) -> PyResult<()> {
[INFO] [stdout]     |                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:323:46
[INFO] [stdout]     |
[INFO] [stdout] 323 |     fn load(path: &str, is_classif: bool) -> PyResult<Self> {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:351:10
[INFO] [stdout]     |
[INFO] [stdout] 351 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:367:10
[INFO] [stdout]     |
[INFO] [stdout] 367 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:393:10
[INFO] [stdout]     |
[INFO] [stdout] 393 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:442:85
[INFO] [stdout]     |
[INFO] [stdout] 442 |     fn fit(&mut self, py: Python<'_>, x: PyReadonlyArray2<'_, f64>, y: Vec<f64>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:463:10
[INFO] [stdout]     |
[INFO] [stdout] 463 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:477:10
[INFO] [stdout]     |
[INFO] [stdout] 477 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:492:10
[INFO] [stdout]     |
[INFO] [stdout] 492 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:578:10
[INFO] [stdout]     |
[INFO] [stdout] 578 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:603:10
[INFO] [stdout]     |
[INFO] [stdout] 603 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:623:10
[INFO] [stdout]     |
[INFO] [stdout] 623 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:643:45
[INFO] [stdout]     |
[INFO] [stdout] 643 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:655:82
[INFO] [stdout]     |
[INFO] [stdout] 655 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:733:10
[INFO] [stdout]     |
[INFO] [stdout] 733 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:749:10
[INFO] [stdout]     |
[INFO] [stdout] 749 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:757:10
[INFO] [stdout]     |
[INFO] [stdout] 757 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:761:45
[INFO] [stdout]     |
[INFO] [stdout] 761 |     fn get_params(&self, py: Python<'_>) -> PyResult<PyObject> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/misc.rs:771:82
[INFO] [stdout]     |
[INFO] [stdout] 771 |     fn set_params(&mut self, kwargs: Option<&Bound<'_, pyo3::types::PyDict>>) -> PyResult<()> {
[INFO] [stdout]     |                                                                                  ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/trees.rs:70:10
[INFO] [stdout]    |
[INFO] [stdout] 70 |     ) -> PyResult<()> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/trees.rs:85:10
[INFO] [stdout]    |
[INFO] [stdout] 85 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/learners/trees.rs:93:10
[INFO] [stdout]    |
[INFO] [stdout] 93 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:144:10
[INFO] [stdout]     |
[INFO] [stdout] 144 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:159:10
[INFO] [stdout]     |
[INFO] [stdout] 159 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:197:10
[INFO] [stdout]     |
[INFO] [stdout] 197 |     ) -> PyResult<()> {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/learners/trees.rs:213:10
[INFO] [stdout]     |
[INFO] [stdout] 213 |     ) -> PyResult<Bound<'py, PyArray1<f64>>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:45:71
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub(crate) fn accuracy_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                       ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:53:65
[INFO] [stdout]    |
[INFO] [stdout] 53 | pub(crate) fn rmse_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:60:63
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub(crate) fn r2_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:67:64
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub(crate) fn mae_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:77:65
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub(crate) fn mape_score(y_true: Vec<f64>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/measures.rs:88:76
[INFO] [stdout]    |
[INFO] [stdout] 88 | pub(crate) fn logloss_score(y_true: Vec<usize>, y_proba: Vec<Vec<f64>>) -> PyResult<f64> {
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:108:65
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub(crate) fn f1_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:116:72
[INFO] [stdout]     |
[INFO] [stdout] 116 | pub(crate) fn precision_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:124:69
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub(crate) fn recall_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                     ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:132:80
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub(crate) fn balanced_accuracy_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:142:75
[INFO] [stdout]     |
[INFO] [stdout] 142 | pub(crate) fn cohens_kappa_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:152:66
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub(crate) fn mcc_score(y_true: Vec<usize>, y_pred: Vec<f64>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                  ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:194:78
[INFO] [stdout]     |
[INFO] [stdout] 194 | pub(crate) fn brier_score(y_true: Vec<usize>, y_proba: &Bound<'_, PyAny>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                              ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/measures.rs:210:80
[INFO] [stdout]     |
[INFO] [stdout] 210 | pub(crate) fn auc_roc_score(y_true: Vec<usize>, y_proba: &Bound<'_, PyAny>) -> PyResult<f64> {
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn fit(&mut self, x: PyReadonlyArray2<'_, f64>) -> PyResult<()> {
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:33:10
[INFO] [stdout]    |
[INFO] [stdout] 33 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 |     ) -> PyResult<Bound<'py, PyArray2<f64>>> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/preprocess.rs:74:10
[INFO] [stdout]    |
[INFO] [stdout] 74 |     ) -> PyResult<(Bound<'py, PyArray2<f64>>, Vec<usize>)> {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/preprocess.rs:129:10
[INFO] [stdout]     |
[INFO] [stdout] 129 |       ) -> PyResult<(
[INFO] [stdout]     |  __________^
[INFO] [stdout] 130 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 131 | |         Vec<usize>,
[INFO] [stdout] 132 | |         Bound<'py, PyArray2<f64>>,
[INFO] [stdout] 133 | |     )> {
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/py_stats.rs:32:65
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub(crate) fn wilcoxon_signed_rank(a: Vec<f64>, b: Vec<f64>) -> PyResult<TestResult> {
[INFO] [stdout]    |                                                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/py_stats.rs:49:6
[INFO] [stdout]    |
[INFO] [stdout] 49 | ) -> PyResult<(f64, f64, f64)> {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/py_stats.rs:56:54
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub(crate) fn sign_test(a: Vec<f64>, b: Vec<f64>) -> PyResult<TestResult> {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/resample.rs:25:43
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/resample.rs:51:43
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]   --> smelt-py/src/resample.rs:75:43
[INFO] [stdout]    |
[INFO] [stdout] 75 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:102:43
[INFO] [stdout]     |
[INFO] [stdout] 102 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:133:43
[INFO] [stdout]     |
[INFO] [stdout] 133 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:170:59
[INFO] [stdout]     |
[INFO] [stdout] 170 |     fn splits(&self, py: Python<'_>, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:196:43
[INFO] [stdout]     |
[INFO] [stdout] 196 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:221:43
[INFO] [stdout]     |
[INFO] [stdout] 221 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/resample.rs:265:43
[INFO] [stdout]     |
[INFO] [stdout] 265 |     fn splits(&self, n_samples: usize) -> PyResult<Vec<(Vec<usize>, Vec<usize>)>> {
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/tuning.rs:354:10
[INFO] [stdout]     |
[INFO] [stdout] 354 |     ) -> PyResult<PyObject> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 173 | filter_fn!(filter_variance, "variance");
[INFO] [stdout]     | --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 | filter_fn!(filter_correlation, "correlation");
[INFO] [stdout]     | --------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 | filter_fn!(filter_anova_f, "anova_f");
[INFO] [stdout]     | ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 | filter_fn!(filter_information_gain, "information_gain");
[INFO] [stdout]     | ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 177 | filter_fn!(filter_mutual_information, "mutual_information");
[INFO] [stdout]     | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 | filter_fn!(filter_mrmr, "mrmr");
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 179 | filter_fn!(filter_jmi, "jmi");
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 180 | filter_fn!(filter_jmim, "jmim");
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 181 | filter_fn!(filter_cmim, "cmim");
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/feature_selection.rs:167:14
[INFO] [stdout]     |
[INFO] [stdout] 157 | macro_rules! filter_fn {
[INFO] [stdout] ...
[INFO] [stdout] 167 |         ) -> PyResult<PyObject> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 182 | filter_fn!(filter_relief, "relief");
[INFO] [stdout]     | ----------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:968:1
[INFO] [stdout]     |
[INFO] [stdout] 968 | / declare_params!(CatBoost, {
[INFO] [stdout] 969 | |     n_estimators => "n_estimators",
[INFO] [stdout] 970 | |     depth => "depth",
[INFO] [stdout] 971 | |     learning_rate => "learning_rate",
[INFO] [stdout] 972 | |     lambda => "lambda_",
[INFO] [stdout] 973 | |     seed => "seed",
[INFO] [stdout] 974 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:968:1
[INFO] [stdout]     |
[INFO] [stdout] 968 | / declare_params!(CatBoost, {
[INFO] [stdout] 969 | |     n_estimators => "n_estimators",
[INFO] [stdout] 970 | |     depth => "depth",
[INFO] [stdout] 971 | |     learning_rate => "learning_rate",
[INFO] [stdout] 972 | |     lambda => "lambda_",
[INFO] [stdout] 973 | |     seed => "seed",
[INFO] [stdout] 974 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:976:1
[INFO] [stdout]     |
[INFO] [stdout] 976 | / declare_params!(LightGBM, {
[INFO] [stdout] 977 | |     n_estimators => "n_estimators",
[INFO] [stdout] 978 | |     num_leaves => "num_leaves",
[INFO] [stdout] 979 | |     learning_rate => "learning_rate",
[INFO] [stdout] ...   |
[INFO] [stdout] 983 | |     seed => "seed",
[INFO] [stdout] 984 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/boosting.rs:976:1
[INFO] [stdout]     |
[INFO] [stdout] 976 | / declare_params!(LightGBM, {
[INFO] [stdout] 977 | |     n_estimators => "n_estimators",
[INFO] [stdout] 978 | |     num_leaves => "num_leaves",
[INFO] [stdout] 979 | |     learning_rate => "learning_rate",
[INFO] [stdout] ...   |
[INFO] [stdout] 983 | |     seed => "seed",
[INFO] [stdout] 984 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/common.rs:932:59
[INFO] [stdout]      |
[INFO] [stdout]  927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout]  932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]      |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: smelt-py/src/learners/boosting.rs:998:1
[INFO] [stdout]      |
[INFO] [stdout]  998 | / declare_params!(GeoXGBoost, {
[INFO] [stdout]  999 | |     bandwidth => "bandwidth",
[INFO] [stdout] 1000 | |     n_estimators => "n_estimators",
[INFO] [stdout] 1001 | |     max_depth => "max_depth",
[INFO] [stdout] ...    |
[INFO] [stdout] 1005 | |     seed => "seed",
[INFO] [stdout] 1006 | | });
[INFO] [stdout]      | |__- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]     --> smelt-py/src/common.rs:942:96
[INFO] [stdout]      |
[INFO] [stdout]  927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout]  942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]      |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]     ::: smelt-py/src/learners/boosting.rs:998:1
[INFO] [stdout]      |
[INFO] [stdout]  998 | / declare_params!(GeoXGBoost, {
[INFO] [stdout]  999 | |     bandwidth => "bandwidth",
[INFO] [stdout] 1000 | |     n_estimators => "n_estimators",
[INFO] [stdout] 1001 | |     max_depth => "max_depth",
[INFO] [stdout] ...    |
[INFO] [stdout] 1005 | |     seed => "seed",
[INFO] [stdout] 1006 | | });
[INFO] [stdout]      | |__- in this macro invocation
[INFO] [stdout]      |
[INFO] [stdout]      = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]      = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | declare_params!(LogisticRegression, {});
[INFO] [stdout]     | --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | declare_params!(LogisticRegression, {});
[INFO] [stdout]     | --------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:219:1
[INFO] [stdout]     |
[INFO] [stdout] 219 | declare_params!(LinearRegression, {});
[INFO] [stdout]     | ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:219:1
[INFO] [stdout]     |
[INFO] [stdout] 219 | declare_params!(LinearRegression, {});
[INFO] [stdout]     | ------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:220:1
[INFO] [stdout]     |
[INFO] [stdout] 220 | declare_params!(Ridge,              { alpha => "alpha" });
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:220:1
[INFO] [stdout]     |
[INFO] [stdout] 220 | declare_params!(Ridge,              { alpha => "alpha" });
[INFO] [stdout]     | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:399:1
[INFO] [stdout]     |
[INFO] [stdout] 399 | / declare_params!(QuantileForest, {
[INFO] [stdout] 400 | |     n_estimators => "n_estimators",
[INFO] [stdout] 401 | |     max_depth => "max_depth",
[INFO] [stdout] 402 | |     min_samples_leaf => "min_samples_leaf",
[INFO] [stdout] 403 | |     seed => "seed",
[INFO] [stdout] 404 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:399:1
[INFO] [stdout]     |
[INFO] [stdout] 399 | / declare_params!(QuantileForest, {
[INFO] [stdout] 400 | |     n_estimators => "n_estimators",
[INFO] [stdout] 401 | |     max_depth => "max_depth",
[INFO] [stdout] 402 | |     min_samples_leaf => "min_samples_leaf",
[INFO] [stdout] 403 | |     seed => "seed",
[INFO] [stdout] 404 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:505:1
[INFO] [stdout]     |
[INFO] [stdout] 505 | / declare_params!(GaussianProcess, {
[INFO] [stdout] 506 | |     length_scale => "length_scale",
[INFO] [stdout] 507 | |     signal_variance => "signal_variance",
[INFO] [stdout] 508 | |     alpha => "alpha",
[INFO] [stdout] 509 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 |   macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:505:1
[INFO] [stdout]     |
[INFO] [stdout] 505 | / declare_params!(GaussianProcess, {
[INFO] [stdout] 506 | |     length_scale => "length_scale",
[INFO] [stdout] 507 | |     signal_variance => "signal_variance",
[INFO] [stdout] 508 | |     alpha => "alpha",
[INFO] [stdout] 509 | | });
[INFO] [stdout]     | |__- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:823:1
[INFO] [stdout]     |
[INFO] [stdout] 823 | declare_params!(KNearestNeighbors, { k => "k" });
[INFO] [stdout]     | ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:823:1
[INFO] [stdout]     |
[INFO] [stdout] 823 | declare_params!(KNearestNeighbors, { k => "k" });
[INFO] [stdout]     | ------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:824:1
[INFO] [stdout]     |
[INFO] [stdout] 824 | declare_params!(GaussianNB, {});
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:824:1
[INFO] [stdout]     |
[INFO] [stdout] 824 | declare_params!(GaussianNB, {});
[INFO] [stdout]     | ------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:377:1
[INFO] [stdout]     |
[INFO] [stdout] 377 | declare_params!(RandomForest, { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:377:1
[INFO] [stdout]     |
[INFO] [stdout] 377 | declare_params!(RandomForest, { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:378:1
[INFO] [stdout]     |
[INFO] [stdout] 378 | declare_params!(ExtraTrees,   { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:378:1
[INFO] [stdout]     |
[INFO] [stdout] 378 | declare_params!(ExtraTrees,   { n_estimators => "n_estimators", max_depth => "max_depth", seed => "seed" });
[INFO] [stdout]     | ----------------------------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:932:59
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 932 |             fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:379:1
[INFO] [stdout]     |
[INFO] [stdout] 379 | declare_params!(DecisionTree, { max_depth => "max_depth" });
[INFO] [stdout]     | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:942:96
[INFO] [stdout]     |
[INFO] [stdout] 927 | macro_rules! declare_params {
[INFO] [stdout] ...
[INFO] [stdout] 942 |             fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:379:1
[INFO] [stdout]     |
[INFO] [stdout] 379 | declare_params!(DecisionTree, { max_depth => "max_depth" });
[INFO] [stdout]     | ----------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:165:1
[INFO] [stdout]     |
[INFO] [stdout] 165 | / define_learner! {
[INFO] [stdout] 166 | |     name = Lasso,
[INFO] [stdout] 167 | |     params = { alpha: f64 = 1.0 },
[INFO] [stdout] 168 | |     ctor = |slf| smelt_ml::prelude::Lasso::new(slf.alpha),
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = ElasticNet,
[INFO] [stdout] 178 | |     params = { alpha: f64 = 1.0, l1_ratio: f64 = 0.5 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::ElasticNet::new(slf.alpha, slf.l1_ratio),
[INFO] [stdout] 180 | |     proba = false,
[INFO] [stdout] 181 | |     serial_as = "RegularizedRegression",
[INFO] [stdout] 182 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/linear.rs:184:1
[INFO] [stdout]     |
[INFO] [stdout] 184 | / define_learner! {
[INFO] [stdout] 185 | |     name = LinearSVM,
[INFO] [stdout] 186 | |     params = { c: f64 = 1.0, max_iter: usize = 1000, learning_rate: f64 = 0.01, seed: u64 = 42 },
[INFO] [stdout] 187 | |     ctor = |slf| smelt_ml::prelude::LinearSVM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 193 | |     serial_as = "LinearSVM",
[INFO] [stdout] 194 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:166:1
[INFO] [stdout]     |
[INFO] [stdout] 166 | / define_learner! {
[INFO] [stdout] 167 | |     name = AdaBoost,
[INFO] [stdout] 168 | |     params = { n_estimators: usize = 50, learning_rate: f64 = 1.0 },
[INFO] [stdout] 169 | |     ctor = |slf| smelt_ml::prelude::AdaBoost::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |     serial_as = "AdaBoost",
[INFO] [stdout] 174 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:176:1
[INFO] [stdout]     |
[INFO] [stdout] 176 | / define_learner! {
[INFO] [stdout] 177 | |     name = EBM,
[INFO] [stdout] 178 | |     params = { n_rounds: usize = 100, learning_rate: f64 = 0.01, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 179 | |     ctor = |slf| smelt_ml::prelude::EBM::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |     serial_as = "EBM",
[INFO] [stdout] 186 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/misc.rs:683:1
[INFO] [stdout]     |
[INFO] [stdout] 683 | / define_learner! {
[INFO] [stdout] 684 | |     name = QuantileGB,
[INFO] [stdout] 685 | |     params = { quantile: f64 = 0.5, n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 686 | |     ctor = |slf| smelt_ml::prelude::QuantileGB::new(slf.quantile)
[INFO] [stdout] ...   |
[INFO] [stdout] 692 | |     serial_as = "QuantileGB",
[INFO] [stdout] 693 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:218:1
[INFO] [stdout]     |
[INFO] [stdout] 218 | / define_learner! {
[INFO] [stdout] 219 | |     name = GradientBoosting,
[INFO] [stdout] 220 | |     params = { n_estimators: usize = 100, learning_rate: f64 = 0.1, max_depth: usize = 3, seed: u64 = 42 },
[INFO] [stdout] 221 | |     ctor = |slf| smelt_ml::prelude::GradientBoosting::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 227 | |     serial_as = "GradientBoosting",
[INFO] [stdout] 228 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:230:1
[INFO] [stdout]     |
[INFO] [stdout] 230 | / define_learner! {
[INFO] [stdout] 231 | |     name = HoeffdingTree,
[INFO] [stdout] 232 | |     params = { grace_period: usize = 200, max_depth: usize = 10 },
[INFO] [stdout] 233 | |     ctor = |slf| smelt_ml::prelude::HoeffdingTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 246 | |         RandomForest/ExtraTrees for non-streaming use cases.",
[INFO] [stdout] 247 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:249:1
[INFO] [stdout]     |
[INFO] [stdout] 249 | / define_learner! {
[INFO] [stdout] 250 | |     name = AdaptiveRandomForest,
[INFO] [stdout] ...   |
[INFO] [stdout] 282 | |         10)), or prefer RandomForest/ExtraTrees.",
[INFO] [stdout] 283 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:285:1
[INFO] [stdout]     |
[INFO] [stdout] 285 | / define_learner! {
[INFO] [stdout] 286 | |     name = DeepForest,
[INFO] [stdout] 287 | |     params = {
[INFO] [stdout] 288 | |         n_forests_per_type: usize = 2,
[INFO] [stdout] ...   |
[INFO] [stdout] 310 | |     serial_as = "DeepForest",
[INFO] [stdout] 311 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | / define_learner! {
[INFO] [stdout] 314 | |     name = MondrianForest,
[INFO] [stdout] 315 | |     params = { n_trees: usize = 10, lifetime: f64 = f64::INFINITY, seed: u64 = 42 },
[INFO] [stdout] 316 | |     ctor = |slf| smelt_ml::prelude::MondrianForest::new()
[INFO] [stdout] ...   |
[INFO] [stdout] 321 | |     serial_as = "MondrianForest",
[INFO] [stdout] 322 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:324:1
[INFO] [stdout]     |
[INFO] [stdout] 324 | / define_learner! {
[INFO] [stdout] 325 | |     name = ObliqueTree,
[INFO] [stdout] 326 | |     params = { max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 327 | |     ctor = |slf| smelt_ml::prelude::ObliqueTree::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 332 | |     serial_as = "ObliqueTree",
[INFO] [stdout] 333 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:679:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 679 |               ) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:711:18
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 711 |               ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray1<f64>>> {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:721:59
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 721 |               fn get_params(&self, py: pyo3::Python<'_>) -> pyo3::PyResult<pyo3::PyObject> {
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:730:96
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 730 |               fn set_params(&mut self, kwargs: Option<&pyo3::Bound<'_, pyo3::types::PyDict>>) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                                                                                  ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:749:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 749 |               fn save(&self, path: &str) -> pyo3::PyResult<()> {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:762:54
[INFO] [stdout]     |
[INFO] [stdout] 642 |   macro_rules! define_learner {
[INFO] [stdout] ...
[INFO] [stdout] 762 |               fn load(path: &str, is_classif: bool) -> pyo3::PyResult<Self> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `pyo3::PyErr`
[INFO] [stdout]    --> smelt-py/src/common.rs:782:18
[INFO] [stdout]     |
[INFO] [stdout] 642 | / macro_rules! define_learner {
[INFO] [stdout] 643 | |     (
[INFO] [stdout] 644 | |         name = $name:ident,
[INFO] [stdout] 645 | |         params = { $( $field:ident : $ty:ty = $default:expr ),* $(,)? },
[INFO] [stdout] ...   |
[INFO] [stdout] 782 | |             ) -> pyo3::PyResult<pyo3::Bound<'py, numpy::PyArray2<f64>>> {
[INFO] [stdout]     | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...   |
[INFO] [stdout] 787 | |     (@proba $name:ident, false) => {};
[INFO] [stdout] 788 | | }
[INFO] [stdout]     | |_- this error originates in the macro `crate::common::define_learner` which comes from the expansion of the macro `define_learner`
[INFO] [stdout]     |
[INFO] [stdout]    ::: smelt-py/src/learners/trees.rs:335:1
[INFO] [stdout]     |
[INFO] [stdout] 335 | / define_learner! {
[INFO] [stdout] 336 | |     name = ObliqueForest,
[INFO] [stdout] 337 | |     params = { n_estimators: usize = 100, max_depth: usize = 10, n_projections: usize = 10, seed: u64 = 42 },
[INFO] [stdout] 338 | |     ctor = |slf| smelt_ml::prelude::ObliqueForest::default()
[INFO] [stdout] ...   |
[INFO] [stdout] 344 | |     serial_as = "ObliqueForest",
[INFO] [stdout] 345 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: you can instead use the fully-qualified path `<pyo3::PyErr as Into<pyo3::PyErr>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `smelt-py` (lib test) due to 295 previous errors
[INFO] running `Command { std: "docker" "inspect" "2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071", kill_on_drop: false }`
[INFO] [stdout] 2e59c26ac4b3799cc1de5a883346be245b155cede4b48c0deddb767d34635071
