From 705ca163791c702f44189e8f0db7cb8a48c956c9 Mon Sep 17 00:00:00 2001 From: "w.pomp" Date: Mon, 23 Feb 2026 19:54:58 +0100 Subject: [PATCH] start using semver, fix doc.rs issue --- Cargo.toml | 19 ++++++++++--------- README.md | 2 ++ src/lib.rs | 2 +- src/metadata.rs | 2 +- src/py.rs | 5 +++-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index dc51480..90b75dc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "ndbioimage" -version = "2026.1.2" +version = "0.1.0" edition = "2024" -rust-version = "1.85.1" +rust-version = "1.87.0" authors = ["Wim Pomp "] license = "MIT" description = "Read bio image formats using the bio-formats java package." -homepage = "https://github.com/wimpomp/ndbioimage/tree/rs" -repository = "https://github.com/wimpomp/ndbioimage/tree/rs" +homepage = "https://git.wimpomp.nl/wim/ndbioimage/src/branch/rs" +repository = "https://git.wimpomp.nl/wim/ndbioimage/src/branch/rs" documentation = "https://docs.rs/ndbioimage" readme = "README.md" keywords = ["bioformats", "imread", "ndarray", "metadata"] @@ -21,6 +21,7 @@ crate-type = ["cdylib", "rlib"] [dependencies] clap = { version = "4", features = ["derive"] } +color-eyre = { version = "0.6", optional = true } ffmpeg-sidecar = { version = "2", optional = true } itertools = "0.14" indexmap = { version = "2", features = ["serde"] } @@ -28,21 +29,21 @@ indicatif = { version = "0.18", features = ["rayon"], optional = true } j4rs = "0.24" ndarray = { version = "0.17", features = ["serde"] } num = "0.4" -numpy = { version = "0.27", optional = true } +numpy = { version = "0.28", optional = true } ordered-float = "5" rayon = { version = "1", optional = true } serde = { version = "1", features = ["rc"] } serde_json = { version = "1", optional = true } serde_with = "3" -tiffwrite = { version = "2025.12.0", optional = true} +tiffwrite = { version = ">=2026.1.1, <2026.2.0", optional = true} thread_local = "1" ome-metadata = "0.4" lazy_static = "1" thiserror = "2" [dependencies.pyo3] -version = "0.27" -features = ["extension-module", "abi3-py310", "generate-import-lib", "anyhow"] +version = "0.28" +features = ["extension-module", "abi3-py310", "eyre", "generate-import-lib"] optional = true [dev-dependencies] @@ -60,7 +61,7 @@ retry = "2" # Enables formats for which code in bioformats with a GPL license is needed gpl-formats = [] # Enables python ffi using pyO3 -python = ["dep:pyo3", "dep:numpy", "dep:serde_json"] +python = ["dep:pyo3", "dep:numpy", "dep:serde_json", "dep:color-eyre"] # Enables writing as tiff tiff = ["dep:tiffwrite", "dep:indicatif", "dep:rayon"] # Enables writing as mp4 using ffmpeg diff --git a/README.md b/README.md index 0d6d5e4..88a38f1 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ it on the fly to the image. Currently, it supports imagej tif files, czi files, micromanager tif sequences and anything [bioformats](https://www.openmicroscopy.org/bio-formats/) can handle. +To transition to semver, versions before 0.1.0 were yanked from crates.io. + ## Installation ``` diff --git a/src/lib.rs b/src/lib.rs index da7c4f9..9c56367 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -#![cfg_attr(docsrs, feature(doc_auto_cfg))] +#![cfg_attr(docsrs, feature(doc_cfg))] mod bioformats; diff --git a/src/metadata.rs b/src/metadata.rs index 0e34489..969c126 100644 --- a/src/metadata.rs +++ b/src/metadata.rs @@ -15,7 +15,7 @@ impl Metadata for Ome { fn get_image(&self) -> Option<&Image> { if let Some(image) = &self.image.first() { - Some(&image) + Some(image) } else { None } diff --git a/src/py.rs b/src/py.rs index d469e75..34c3753 100644 --- a/src/py.rs +++ b/src/py.rs @@ -19,7 +19,7 @@ use std::sync::Arc; impl From for PyErr { fn from(err: crate::error::Error) -> PyErr { - PyErr::new::(err.to_string()) + color_eyre::eyre::Report::from(err).into() } } @@ -49,7 +49,7 @@ impl ViewConstructor { } } -#[pyclass(subclass, module = "ndbioimage.ndbioimage_rs")] +#[pyclass(subclass, from_py_object, module = "ndbioimage.ndbioimage_rs")] #[pyo3(name = "View")] #[derive(Clone, Debug, Serialize, Deserialize)] struct PyView { @@ -982,6 +982,7 @@ fn py_download_bioformats(gpl_formats: bool) -> PyResult<()> { #[pymodule] #[pyo3(name = "ndbioimage_rs")] fn ndbioimage_rs(m: &Bound) -> PyResult<()> { + color_eyre::install()?; m.add_class::()?; m.add_class::()?; m.add_function(wrap_pyfunction!(py_download_bioformats, m)?)?;