[INFO] fetching crate optimal-transport 0.2.0...
[INFO] testing optimal-transport-0.2.0 against 1.91.0 for beta-1.92-2
[INFO] extracting crate optimal-transport 0.2.0 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate optimal-transport 0.2.0
[INFO] finished tweaking crates.io crate optimal-transport 0.2.0
[INFO] tweaked toml for crates.io crate optimal-transport 0.2.0 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate optimal-transport 0.2.0 on toolchain 1.91.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 48 packages to latest compatible versions
[INFO] [stderr]       Adding float-ord v0.2.0 (available: v0.3.2)
[INFO] [stderr]       Adding indoc-impl v0.3.6 (available: v0.3.7)
[INFO] [stderr]       Adding ndarray v0.13.1 (available: v0.17.1)
[INFO] [stderr]       Adding numpy v0.11.0 (available: v0.27.0)
[INFO] [stderr]       Adding pyo3 v0.11.1 (available: v0.27.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.91.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded inventory-impl v0.1.11
[INFO] [stderr]   Downloaded pyo3cls v0.11.1
[INFO] [stderr]   Downloaded paste v0.1.18
[INFO] [stderr]   Downloaded paste-impl v0.1.18
[INFO] [stderr]   Downloaded indoc v0.3.6
[INFO] [stderr]   Downloaded indoc-impl v0.3.6
[INFO] [stderr]   Downloaded pyo3-derive-backend v0.11.1
[INFO] [stderr]   Downloaded ghost v0.1.20
[INFO] [stderr]   Downloaded inventory v0.1.11
[INFO] [stderr]   Downloaded numpy v0.11.0
[INFO] [stderr]   Downloaded pyo3 v0.11.1
[INFO] [stderr]   Downloaded mcmf v2.0.0
[INFO] [stderr]   Downloaded ndarray v0.13.1
[INFO] [stderr]   Downloaded ndarray v0.17.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ae59106abc9c3702b510bcbcd594fd7c360e51b8fd00d00a9add9fe4575438ba
[INFO] running `Command { std: "docker" "start" "-a" "ae59106abc9c3702b510bcbcd594fd7c360e51b8fd00d00a9add9fe4575438ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ae59106abc9c3702b510bcbcd594fd7c360e51b8fd00d00a9add9fe4575438ba", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ae59106abc9c3702b510bcbcd594fd7c360e51b8fd00d00a9add9fe4575438ba", kill_on_drop: false }`
[INFO] [stdout] ae59106abc9c3702b510bcbcd594fd7c360e51b8fd00d00a9add9fe4575438ba
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,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" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+1.91.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 351a47817b7a3161d5b17ca115ecf85ac5c5aea615e3b13645f529a0181b7a80
[INFO] running `Command { std: "docker" "start" "-a" "351a47817b7a3161d5b17ca115ecf85ac5c5aea615e3b13645f529a0181b7a80", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling parking_lot_core v0.8.6
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling inventory v0.1.11
[INFO] [stderr]    Compiling unindent v0.1.11
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling paste-impl v0.1.18
[INFO] [stderr]    Compiling gcc v0.3.55
[INFO] [stderr]    Compiling pyo3 v0.11.1
[INFO] [stderr]    Compiling parking_lot v0.11.2
[INFO] [stderr]    Compiling paste v0.1.18
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling ndarray v0.13.1
[INFO] [stderr]    Compiling matrixmultiply v0.2.4
[INFO] [stderr]    Compiling float-ord v0.2.0
[INFO] [stderr]    Compiling mcmf v2.0.0
[INFO] [stderr]    Compiling ndarray v0.17.1
[INFO] [stderr]    Compiling ghost v0.1.20
[INFO] [stderr]    Compiling pyo3-derive-backend v0.11.1
[INFO] [stderr]    Compiling inventory-impl v0.1.11
[INFO] [stderr]    Compiling indoc-impl v0.3.6
[INFO] [stderr]    Compiling ctor v0.1.26
[INFO] [stderr]    Compiling indoc v0.3.6
[INFO] [stderr]    Compiling pyo3cls v0.11.1
[INFO] [stderr]    Compiling numpy v0.11.0
[INFO] [stderr]    Compiling optimal-transport v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `array`
[INFO] [stdout]  --> src/lp_solver.rs:1:38
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ndarray::{Array, Array1, Array2, array};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]     --> src/lib.rs:13:33
[INFO] [stdout]      |
[INFO] [stdout]   13 |    let (cost, transport_plan) = impl_calculate_1D_ot(&a.to_owned_array(), &b.to_owned_array(), &cost.to_owned_array());
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: expected `&ArrayBase<OwnedRepr<i32>, ...>`, found `&ArrayBase<OwnedRepr<i32>, ..., i32>`
[INFO] [stdout]     --> src/lib.rs:13:54
[INFO] [stdout]      |
[INFO] [stdout]   13 |    let (cost, transport_plan) = impl_calculate_1D_ot(&a.to_owned_array(), &b.to_owned_array(), &cost.to_owned_array());
[INFO] [stdout]      |                                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: two different versions of crate `ndarray` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.13.1/src/lib.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 | pub struct ArrayBase<S, D>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.1/src/lib.rs:1297:1
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub struct ArrayBase<S, D, A = <S as RawData>::Elem>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `ndarray::ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/sinkhorn.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use ndarray::{Array1, Array2, Axis};
[INFO] [stdout]      |     ------- one version of crate `ndarray` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use numpy::{PyArray1, PyArray2};
[INFO] [stdout]      |     ----- one version of crate `ndarray` used here, as a dependency of crate `numpy`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: expected `&ArrayBase<OwnedRepr<i32>, ...>`, found `&ArrayBase<OwnedRepr<i32>, ..., i32>`
[INFO] [stdout]     --> src/lib.rs:13:75
[INFO] [stdout]      |
[INFO] [stdout]   13 |    let (cost, transport_plan) = impl_calculate_1D_ot(&a.to_owned_array(), &b.to_owned_array(), &cost.to_owned_array());
[INFO] [stdout]      |                                                                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: two different versions of crate `ndarray` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.13.1/src/lib.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 | pub struct ArrayBase<S, D>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.1/src/lib.rs:1297:1
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub struct ArrayBase<S, D, A = <S as RawData>::Elem>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `ndarray::ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/sinkhorn.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use ndarray::{Array1, Array2, Axis};
[INFO] [stdout]      |     ------- one version of crate `ndarray` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use numpy::{PyArray1, PyArray2};
[INFO] [stdout]      |     ----- one version of crate `ndarray` used here, as a dependency of crate `numpy`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: expected `&ArrayBase<OwnedRepr<i32>, ...>`, found `&ArrayBase<OwnedRepr<i32>, ..., i32>`
[INFO] [stdout]     --> src/lib.rs:13:96
[INFO] [stdout]      |
[INFO] [stdout]   13 |    let (cost, transport_plan) = impl_calculate_1D_ot(&a.to_owned_array(), &b.to_owned_array(), &cost.to_owned_array());
[INFO] [stdout]      |                                                                                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: two different versions of crate `ndarray` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.13.1/src/lib.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 | pub struct ArrayBase<S, D>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.1/src/lib.rs:1297:1
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub struct ArrayBase<S, D, A = <S as RawData>::Elem>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `ndarray::ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/sinkhorn.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use ndarray::{Array1, Array2, Axis};
[INFO] [stdout]      |     ------- one version of crate `ndarray` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use numpy::{PyArray1, PyArray2};
[INFO] [stdout]      |     ----- one version of crate `ndarray` used here, as a dependency of crate `numpy`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/lp_solver.rs:4:8
[INFO] [stdout]      |
[INFO] [stdout]    4 | pub fn calculate_1D_ot(a: &Array1::<i32>, b: &Array1::<i32>, cost: &Array2::<i32>) -> (i32, Array2::<u32>) {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^ -----------------  -----------------  --------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_pyarray` found for struct `ArrayBase<S, D>` in the current scope
[INFO] [stdout]   --> src/lib.rs:14:29
[INFO] [stdout]    |
[INFO] [stdout] 14 |    Ok((cost, transport_plan.into_pyarray(py).to_owned()))
[INFO] [stdout]    |                             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `into_py` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 14 -    Ok((cost, transport_plan.into_pyarray(py).to_owned()))
[INFO] [stdout] 14 +    Ok((cost, transport_plan.into_py(py).to_owned()))
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]     --> src/lib.rs:19:25
[INFO] [stdout]      |
[INFO] [stdout]   19 |    let transport_plan = impl_sinkhorn(a.to_owned_array(), b.to_owned_array(), cost.to_owned_array(), reg);
[INFO] [stdout]      |                         ^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: expected `ArrayBase<OwnedRepr<f32>, ...>`, found `ArrayBase<OwnedRepr<f32>, ..., f32>`
[INFO] [stdout]     --> src/lib.rs:19:39
[INFO] [stdout]      |
[INFO] [stdout]   19 |    let transport_plan = impl_sinkhorn(a.to_owned_array(), b.to_owned_array(), cost.to_owned_array(), reg);
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: two different versions of crate `ndarray` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.13.1/src/lib.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 | pub struct ArrayBase<S, D>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.1/src/lib.rs:1297:1
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub struct ArrayBase<S, D, A = <S as RawData>::Elem>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `ndarray::ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/sinkhorn.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use ndarray::{Array1, Array2, Axis};
[INFO] [stdout]      |     ------- one version of crate `ndarray` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use numpy::{PyArray1, PyArray2};
[INFO] [stdout]      |     ----- one version of crate `ndarray` used here, as a dependency of crate `numpy`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: expected `ArrayBase<OwnedRepr<f32>, ...>`, found `ArrayBase<OwnedRepr<f32>, ..., f32>`
[INFO] [stdout]     --> src/lib.rs:19:59
[INFO] [stdout]      |
[INFO] [stdout]   19 |    let transport_plan = impl_sinkhorn(a.to_owned_array(), b.to_owned_array(), cost.to_owned_array(), reg);
[INFO] [stdout]      |                                                           ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: two different versions of crate `ndarray` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.13.1/src/lib.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 | pub struct ArrayBase<S, D>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.1/src/lib.rs:1297:1
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub struct ArrayBase<S, D, A = <S as RawData>::Elem>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `ndarray::ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/sinkhorn.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use ndarray::{Array1, Array2, Axis};
[INFO] [stdout]      |     ------- one version of crate `ndarray` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use numpy::{PyArray1, PyArray2};
[INFO] [stdout]      |     ----- one version of crate `ndarray` used here, as a dependency of crate `numpy`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: expected `ArrayBase<OwnedRepr<f32>, ...>`, found `ArrayBase<OwnedRepr<f32>, ..., f32>`
[INFO] [stdout]     --> src/lib.rs:19:79
[INFO] [stdout]      |
[INFO] [stdout]   19 |    let transport_plan = impl_sinkhorn(a.to_owned_array(), b.to_owned_array(), cost.to_owned_array(), reg);
[INFO] [stdout]      |                                                                               ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: two different versions of crate `ndarray` are being used; two types coming from two different versions of the same crate are different types even if they look the same
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.13.1/src/lib.rs:1221:1
[INFO] [stdout]      |
[INFO] [stdout] 1221 | pub struct ArrayBase<S, D>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the expected type `ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/ndarray-0.17.1/src/lib.rs:1297:1
[INFO] [stdout]      |
[INFO] [stdout] 1297 | pub struct ArrayBase<S, D, A = <S as RawData>::Elem>
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this is the found type `ndarray::ArrayBase`
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/sinkhorn.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use ndarray::{Array1, Array2, Axis};
[INFO] [stdout]      |     ------- one version of crate `ndarray` used here, as a direct dependency of the current crate
[INFO] [stdout]      |
[INFO] [stdout]     ::: src/lib.rs:1:5
[INFO] [stdout]      |
[INFO] [stdout]    1 | use numpy::{PyArray1, PyArray2};
[INFO] [stdout]      |     ----- one version of crate `ndarray` used here, as a dependency of crate `numpy`
[INFO] [stdout]      = help: you can use `cargo tree` to explore your dependency tree
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> src/sinkhorn.rs:4:8
[INFO] [stdout]      |
[INFO] [stdout]    4 | pub fn sinkhorn(a: Array1< f32 >, b: Array1< f32 >, cost: Array2< f32 >, reg: f32) -> Array2< f32 >
[INFO] [stdout]      |        ^^^^^^^^ ----------------  ----------------  -------------------
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `into_pyarray` found for struct `ArrayBase<S, D>` in the current scope
[INFO] [stdout]   --> src/lib.rs:20:22
[INFO] [stdout]    |
[INFO] [stdout] 20 |    Ok(transport_plan.into_pyarray(py).to_owned())
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: there is a method `into_py` with a similar name
[INFO] [stdout]    |
[INFO] [stdout] 20 -    Ok(transport_plan.into_pyarray(py).to_owned())
[INFO] [stdout] 20 +    Ok(transport_plan.into_py(py).to_owned())
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0308, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0308`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `optimal-transport` (lib) due to 4 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "351a47817b7a3161d5b17ca115ecf85ac5c5aea615e3b13645f529a0181b7a80", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "351a47817b7a3161d5b17ca115ecf85ac5c5aea615e3b13645f529a0181b7a80", kill_on_drop: false }`
[INFO] [stdout] 351a47817b7a3161d5b17ca115ecf85ac5c5aea615e3b13645f529a0181b7a80
