From 9fdf0d885c83581bd6520efa40b9b931dcf8ff83 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Fri, 17 Mar 2023 21:02:49 +0000 Subject: [PATCH 1/8] use majority rather than unanimous ray consensus If > 1/2 of rays claim point is inside the mesh, go with that. --- ncollpyde/main.py | 11 +++++++++++ src/utils.rs | 6 ++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ncollpyde/main.py b/ncollpyde/main.py index 0e5f932..6180278 100644 --- a/ncollpyde/main.py +++ b/ncollpyde/main.py @@ -100,6 +100,17 @@ def __init__( ) ray_seed = random.randrange(0, 2**64) + n_rays = max(int(n_rays), 0) + if n_rays < 1: + logger.warning( + "<1 ray used; points will only be considered internal " + "if they lie on the mesh shell" + ) + if not n_rays % 2: + logger.warning( + "Even number of rays used; odd numbers are preferred to break ties" + ) + self._impl = TriMeshWrapper(vert, tri, int(n_rays), ray_seed) def _validate( diff --git a/src/utils.rs b/src/utils.rs index b1e37a3..ebaf33e 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -50,9 +50,11 @@ pub fn mesh_contains_point( if ray_directions.is_empty() { false } else { - ray_directions + let n_containments = ray_directions .iter() - .all(|v| mesh_contains_point_ray(mesh, point, v)) + .filter(|v| mesh_contains_point_ray(mesh, point, v)) + .count(); + n_containments as f64 / ray_directions.len() as f64 > 0.5 } } From 6e6214151668e50cac575bc8c0de382b1c9aa625 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Fri, 17 Mar 2023 21:11:55 +0000 Subject: [PATCH 2/8] bump dependencies --- .github/workflows/ci.yaml | 6 +++++- Cargo.toml | 3 ++- docs/requirements.txt | 2 +- pyproject.toml | 2 +- requirements.txt | 28 ++++++++++++++-------------- setup.cfg | 1 + 6 files changed, 24 insertions(+), 18 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 3571f8c..300f4ea 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -47,7 +47,11 @@ jobs: strategy: fail-fast: false matrix: - python-version: ['3.7', '3.8', '3.9', '3.10'] + python-version: + - '3.8' + - '3.9' + - '3.10' + - '3.11' runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/Cargo.toml b/Cargo.toml index 7982644..75466a8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,9 +16,10 @@ classifier = [ "Natural Language :: English", "Programming Language :: Rust", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", ] provides-extra = ["validate"] diff --git a/docs/requirements.txt b/docs/requirements.txt index 25f55c8..f5988fb 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -1,2 +1,2 @@ -Sphinx==4.2.0 +Sphinx==6.1.3 sphinx-rtd-theme diff --git a/pyproject.toml b/pyproject.toml index ed4805d..ec80b46 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["maturin==0.12", "numpy>=1.21"] +requires = ["maturin==0.13", "numpy>=1.21"] build-backend = "maturin" [tool.isort] diff --git a/requirements.txt b/requirements.txt index 517606d..048f618 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,28 +1,28 @@ # build -maturin==0.12.9 +maturin==0.13 # run -numpy==1.21.4 -trimesh[easy]==3.9.35 +numpy==1.24.2 +trimesh[easy]==3.20.2 # test -meshio==5.0.2 -pytest==6.2.5 -pytest-runner==5.3.1 +meshio==5.3.4 +pytest==7.2.2 +pytest-runner==6.0.0 # bench # pyoctree==0.2.10 -pytest-benchmark==3.4.1 +pytest-benchmark==4.0.0 # develop -isort==5.10.1 +isort==5.12.0 pip -black==22.3.0 -watchdog==2.1.6 -flake8==4.0.1 -coverage==6.1.1 -Sphinx==4.2.0 -mypy==0.910 +black==23.1.0 +watchdog==2.3.1 +flake8==6.0.0 +coverage==7.2.2 +Sphinx==6.1.3 +mypy==1.1.1 # docs -r docs/requirements.txt diff --git a/setup.cfg b/setup.cfg index 42ec5c4..3deda4a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -5,3 +5,4 @@ max-line-length = 88 [mypy] ignore_missing_imports = True plugins = numpy.typing.mypy_plugin +python_version = 3.8 From ccbe515edb8768d0ecea6d7e5aff7c13a3903a21 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Mon, 20 Mar 2023 12:23:21 +0000 Subject: [PATCH 3/8] Configurable ray consensus --- Cargo.lock | 55 +++++++++++++++----- Cargo.toml | 4 +- ncollpyde/main.py | 2 +- ncollpyde/ncollpyde.pyi | 9 +++- src/interface.rs | 24 ++++++++- src/utils.rs | 109 ++++++++++++++++++++++++++++++++++++---- tests/test_ncollpyde.py | 8 +-- 7 files changed, 176 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8bf4cb4..0029d93 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -20,6 +20,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + [[package]] name = "atty" version = "0.2.14" @@ -655,9 +661,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.30.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb2d0de08694bed883320212c18ee3008576bfe8c306f4c3c4a58b4876998be" +checksum = "d68d47bba83f9e2006d117a9a33af1524e655516b8919caac694427a6fb1e511" dependencies = [ "approx", "matrixmultiply", @@ -805,6 +811,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "optional" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978aa494585d3ca4ad74929863093e87cac9790d81fe7aba2b3dc2890643a0fc" + [[package]] name = "os_str_bytes" version = "6.0.0" @@ -841,11 +853,12 @@ dependencies = [ [[package]] name = "parry3d-f64" -version = "0.8.0" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760c93194acb2bda0c4d0696b0350c143da072c8f8dbe01b38fe1d1aa3a154e0" +checksum = "5dd9aeaccbb2bdc6b1ee9b9c7976a54523af68cb88112050b5f4b02935d5a346" dependencies = [ "approx", + "arrayvec", "bitflags", "downcast-rs", "either", @@ -857,6 +870,7 @@ dependencies = [ "simba", "slab", "smallvec", + "spade", ] [[package]] @@ -1051,26 +1065,23 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.5.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ - "autocfg", - "crossbeam-deque", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.9.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", "crossbeam-utils", - "lazy_static", "num_cpus", ] @@ -1116,6 +1127,12 @@ version = "0.6.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +[[package]] +name = "robust" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5864e7ef1a6b7bcf1d6ca3f655e65e724ed3b52546a0d0a663c991522f552ea" + [[package]] name = "rustc-hash" version = "1.1.0" @@ -1194,9 +1211,9 @@ dependencies = [ [[package]] name = "simba" -version = "0.7.1" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13a2609e876d4f77f6ab7ff5254fc39b4f1927ba8e6db3d18be7c32534d3725e" +checksum = "50582927ed6f77e4ac020c057f37a268fc6aebc29225050365aacbb9deeeddc4" dependencies = [ "approx", "libm", @@ -1228,6 +1245,18 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "spade" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1190e0e8f4eb17fc3dbb2d20e1142676e56aaac3daede39f64a3302d687b80f3" +dependencies = [ + "num-traits", + "optional", + "robust", + "smallvec", +] + [[package]] name = "static_assertions" version = "1.1.0" diff --git a/Cargo.toml b/Cargo.toml index 75466a8..e2af205 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,8 +25,8 @@ provides-extra = ["validate"] [dependencies] pyo3 = { version = "0.15", features = ["extension-module", "abi3-py36"] } -parry3d-f64 = { version = "0.8", features = ["dim3", "f64", "enhanced-determinism"] } -rayon = "1.5" +parry3d-f64 = { version = "0.13", features = ["dim3", "f64", "enhanced-determinism"] } +rayon = "1.7" rand = "0.8" rand_pcg = "0.3" numpy = { version = "0.15", features = ["rayon"] } diff --git a/ncollpyde/main.py b/ncollpyde/main.py index 6180278..2bd97e0 100644 --- a/ncollpyde/main.py +++ b/ncollpyde/main.py @@ -111,7 +111,7 @@ def __init__( "Even number of rays used; odd numbers are preferred to break ties" ) - self._impl = TriMeshWrapper(vert, tri, int(n_rays), ray_seed) + self._impl = TriMeshWrapper(vert, tri, int(n_rays), ray_seed, None) def _validate( self, vertices: np.ndarray, triangles: np.ndarray diff --git a/ncollpyde/ncollpyde.pyi b/ncollpyde/ncollpyde.pyi index 785837a..18876b1 100644 --- a/ncollpyde/ncollpyde.pyi +++ b/ncollpyde/ncollpyde.pyi @@ -1,4 +1,4 @@ -from typing import List, Tuple +from typing import List, Optional, Tuple import numpy as np import numpy.typing as npt @@ -13,7 +13,12 @@ Indices = npt.NDArray[np.uint32] class TriMeshWrapper: def __init__( - self, points: Points, indices: Indices, n_rays: int, ray_seed: int + self, + points: Points, + indices: Indices, + n_rays: int, + ray_seed: int, + n_rays_inside: Optional[int], ): ... def contains(self, points: Points, parallel: bool) -> npt.NDArray[np.bool_]: ... def distance( diff --git a/src/interface.rs b/src/interface.rs index 598ec47..892012e 100644 --- a/src/interface.rs +++ b/src/interface.rs @@ -33,6 +33,7 @@ fn vector_to_vec(v: &Vector) -> Vec pub struct TriMeshWrapper { mesh: TriMesh, ray_directions: Vec>, + n_rays_inside: usize, } #[cfg(not(test))] @@ -44,6 +45,7 @@ impl TriMeshWrapper { indices: PyReadonlyArray2, n_rays: usize, ray_seed: u64, + n_rays_inside: Option, ) -> Self { let points2 = points .as_array() @@ -59,6 +61,8 @@ impl TriMeshWrapper { .collect(); let mesh = TriMesh::new(points2, indices2); + let actual_n_rays_inside = n_rays_inside.unwrap_or(n_rays); + if n_rays > 0 { let bsphere = mesh.local_bounding_sphere(); let len = bsphere.radius() * 2.0; @@ -70,11 +74,13 @@ impl TriMeshWrapper { ray_directions: repeat_with(|| random_dir(&mut rng, len)) .take(n_rays) .collect(), + n_rays_inside: actual_n_rays_inside, } } else { Self { mesh, ray_directions: Vec::default(), + n_rays_inside: actual_n_rays_inside, } } } @@ -94,12 +100,24 @@ impl TriMeshWrapper { if parallel { Zip::from(points.as_array().rows()) .par_map_collect(|v| { - dist_from_mesh(&self.mesh, &Point::new(v[0], v[1], v[2]), rays) + dist_from_mesh( + &self.mesh, + &Point::new(v[0], v[1], v[2]), + rays, + self.n_rays_inside, + ) }) .into_pyarray(py) } else { Zip::from(points.as_array().rows()) - .map_collect(|v| dist_from_mesh(&self.mesh, &Point::new(v[0], v[1], v[2]), rays)) + .map_collect(|v| { + dist_from_mesh( + &self.mesh, + &Point::new(v[0], v[1], v[2]), + rays, + self.n_rays_inside, + ) + }) .into_pyarray(py) } } @@ -117,6 +135,7 @@ impl TriMeshWrapper { &self.mesh, &Point::new(r[0], r[1], r[2]), &self.ray_directions, + self.n_rays_inside, ) }) .into_pyarray(py) @@ -127,6 +146,7 @@ impl TriMeshWrapper { &self.mesh, &Point::new(r[0], r[1], r[2]), &self.ray_directions, + self.n_rays_inside, ) }) .into_pyarray(py) diff --git a/src/utils.rs b/src/utils.rs index ebaf33e..cc7bb07 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -5,6 +5,7 @@ use rand::Rng; pub type Precision = f64; +/// Random vector with given length pub fn random_dir(rng: &mut R, length: Precision) -> Vector { let unscaled: Vector = [ rng.gen::() - 0.5, @@ -15,6 +16,61 @@ pub fn random_dir(rng: &mut R, length: Precision) -> Vector { unscaled.normalize() * length } +// /// 3 orthonormal vectors describing a random basis +// pub fn random_basis(rng: &mut R) -> Vec> { +// let rand = random_dir(rng, 1.0); +// let rand2 = random_dir(rng, 1.0); +// let cross1 = rand.cross(&rand2); +// let cross2 = rand.cross(&cross1); + +// vec![rand, cross1, cross2] +// } + +// /// 6 vectors made up of a random orthonormal basis and each of those vectors * -1 +// /// If `interleave`, arranged as A,-A,B,-B,C,-C; otherwise A,B,C,-A,-B,-C. +// pub fn random_compass(rng: &mut R, interleave: bool) -> Vec> { +// let pos = random_basis(rng); + +// if interleave { +// vec![ +// pos[0], +// -pos[0], +// pos[1], +// -pos[1], +// pos[2], +// -pos[2], +// ] +// } else { +// vec![ +// pos[0], +// pos[1], +// pos[2], +// -pos[0], +// -pos[1], +// -pos[2], +// ] +// } +// } + +// /// Any number of random vectors, where 0-6, 6-12, 12-18 etc. are as produced by `random_compass`. +// pub fn random_rays(rng: &mut R, n: usize, interleave: bool) -> Vec> { +// let mut out = Vec::with_capacity(n); +// while n > 0 { +// let mut vecs = random_compass(rng, interleave); + +// if n > vecs.len() { +// out.append(&mut vecs); +// } else { +// out.append(&mut vecs.drain(..n).collect()) +// } +// } +// out +// } + +// pub fn random_rays_with_length(rng: &mut R, n: usize, interleave: bool, length: Precision) -> Vec> { +// random_rays(rng, n, interleave).into_iter().map(|v| v * length).collect() +// } + pub fn mesh_contains_point_ray( mesh: &TriMesh, point: &Point, @@ -37,6 +93,7 @@ pub fn mesh_contains_point( mesh: &TriMesh, point: &Point, ray_directions: &[Vector], + n_rays_inside: usize, ) -> bool { if !mesh.local_aabb().contains_local_point(point) { return false; @@ -47,15 +104,40 @@ pub fn mesh_contains_point( return true; } - if ray_directions.is_empty() { - false - } else { - let n_containments = ray_directions - .iter() - .filter(|v| mesh_contains_point_ray(mesh, point, v)) - .count(); - n_containments as f64 / ray_directions.len() as f64 > 0.5 + if n_rays_inside == 0 { + return true; } + + if ray_directions.len() == 0 { + return false; + } + + if n_rays_inside > ray_directions.len() { + return false; + } + + // counting both hits and misses allows short-circuiting in both directions + let n_rays_outside = ray_directions.len() - n_rays_inside; + let mut in_count = 0; + let mut out_count = 0; + + for ray in ray_directions { + let is_inside = mesh_contains_point_ray(mesh, point, ray); + if is_inside { + in_count += 1; + if in_count >= n_rays_inside { + return true; + } + } else { + out_count += 1; + if out_count >= n_rays_outside { + return false; + } + } + } + + // probably shouldn't happen + false } pub fn points_cross_mesh( @@ -70,10 +152,15 @@ pub fn points_cross_mesh( .map(|i| (ray.point_at(i.toi), mesh.is_backface(i.feature))) } -pub fn dist_from_mesh(mesh: &TriMesh, point: &Point, rays: Option<&[Vector]>) -> f64 { +pub fn dist_from_mesh( + mesh: &TriMesh, + point: &Point, + rays: Option<&[Vector]>, + n_rays_inside: usize, +) -> f64 { let mut dist = mesh.distance_to_point(&Isometry::identity(), point, true); if let Some(r) = rays { - if mesh_contains_point(mesh, point, r) { + if mesh_contains_point(mesh, point, r, n_rays_inside) { dist = -dist; } } @@ -281,7 +368,7 @@ mod tests { rays: Option<&[Vector]>, expected: Precision, ) { - assert_eq!(dist_from_mesh(mesh, point, rays), expected) + assert_eq!(dist_from_mesh(mesh, point, rays, 2), expected) } #[test] diff --git a/tests/test_ncollpyde.py b/tests/test_ncollpyde.py index 5fea1ee..88d3b1c 100644 --- a/tests/test_ncollpyde.py +++ b/tests/test_ncollpyde.py @@ -46,10 +46,10 @@ def test_many(mesh, threads): assert np.array_equal(vol.contains(points, threads=threads), expected) -def test_0_rays(mesh): - vol = Volume.from_meshio(mesh, n_rays=0) - points = [p for p, _ in points_expected] - assert np.array_equal(vol.contains(points), [False] * len(points)) +# def test_0_rays(mesh): +# vol = Volume.from_meshio(mesh, n_rays=0) +# points = [p for p, _ in points_expected] +# assert np.array_equal(vol.contains(points), [False] * len(points)) def test_no_validation(mesh): From 2d8f1ba54ff2912ab8b6a166eebbd0f3e4c1cffd Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Mon, 20 Mar 2023 12:35:02 +0000 Subject: [PATCH 4/8] Minor fixes around N_THREADS --- ncollpyde/__init__.py | 3 +-- ncollpyde/main.py | 8 ++++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ncollpyde/__init__.py b/ncollpyde/__init__.py index 3c793bb..287e1e4 100644 --- a/ncollpyde/__init__.py +++ b/ncollpyde/__init__.py @@ -9,10 +9,9 @@ from .main import DEFAULT_SEED # noqa: F401 from .main import DEFAULT_THREADS # noqa: F401 from .main import INDEX # noqa: F401 -from .main import N_CPUS # noqa: F401 +from .main import N_THREADS # noqa: F401 from .main import PRECISION # noqa: F401 from .main import Volume # noqa: F401 -from .ncollpyde import n_threads # noqa: F401 from .ncollpyde import _version __version__ = _version() diff --git a/ncollpyde/main.py b/ncollpyde/main.py index 2bd97e0..1be3a0c 100644 --- a/ncollpyde/main.py +++ b/ncollpyde/main.py @@ -12,7 +12,7 @@ except ImportError: trimesh = None -from .ncollpyde import TriMeshWrapper, _index, _precision +from .ncollpyde import TriMeshWrapper, _index, _precision, n_threads if TYPE_CHECKING: import meshio @@ -20,7 +20,7 @@ logger = logging.getLogger(__name__) -N_CPUS = cpu_count() +N_THREADS = n_threads() DEFAULT_THREADS = True DEFAULT_RAYS = 3 DEFAULT_SEED = 1991 @@ -85,6 +85,10 @@ def __init__( - one ray reports that the point is external. :param ray_seed: int >=0 (default {DEFAULT_SEED}), used for generating rays. If None, use a random seed. + :param n_rays_inside: optional int (default None), used for ray consensus. + Number of rays which must hit mesh backfaces + for point to be considered internal. + If None, use n_rays. """ vert = np.asarray(vertices, self.dtype) if len(vert) > np.iinfo(INDEX).max: From fbb8efc3a4f670abf361cb497ce15b113d50cd13 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Mon, 20 Mar 2023 12:37:28 +0000 Subject: [PATCH 5/8] fix lint --- ncollpyde/main.py | 1 - src/utils.rs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ncollpyde/main.py b/ncollpyde/main.py index 1be3a0c..8b63cb6 100644 --- a/ncollpyde/main.py +++ b/ncollpyde/main.py @@ -1,7 +1,6 @@ import logging import random import warnings -from multiprocessing import cpu_count from typing import TYPE_CHECKING, Optional, Tuple, Union import numpy as np diff --git a/src/utils.rs b/src/utils.rs index cc7bb07..ab58f2f 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -108,7 +108,7 @@ pub fn mesh_contains_point( return true; } - if ray_directions.len() == 0 { + if ray_directions.is_empty() { return false; } From 1148b8a0205ef4ed57ea76efcb686d5759ff1ae3 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Wed, 29 Mar 2023 17:37:03 +0100 Subject: [PATCH 6/8] Switch from flake8+isort to ruff --- .github/workflows/ci.yaml | 2 +- Makefile | 5 ++--- pyproject.toml | 11 ++++++++--- requirements.txt | 3 +-- setup.cfg | 8 -------- 5 files changed, 12 insertions(+), 17 deletions(-) delete mode 100644 setup.cfg diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 300f4ea..867c726 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -30,7 +30,7 @@ jobs: - uses: actions/setup-python@v2 with: python-version: '3.x' - - run: pip install $(grep -E '^(black|flake8|mypy|isort|numpy)' requirements.txt) + - run: pip install $(grep -E '^(black|ruff|mypy|numpy)' requirements.txt) - run: make lint-python test-rust: diff --git a/Makefile b/Makefile index a975d0b..75fbb43 100644 --- a/Makefile +++ b/Makefile @@ -54,14 +54,13 @@ clean-test: ## remove test and coverage artifacts rm -fr .pytest_cache fmt: - isort $(PY_PATHS) \ + ruff check --fix-only $(PY_PATHS) \ && black $(PY_PATHS) cargo fmt lint-python: black --check $(PY_PATHS) - isort --check $(PY_PATHS) - flake8 $(PY_PATHS) + ruff check $(PY_PATHS) mypy $(PY_PATHS) lint-rust: diff --git a/pyproject.toml b/pyproject.toml index ec80b46..4ec90e8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,6 +2,11 @@ requires = ["maturin==0.13", "numpy>=1.21"] build-backend = "maturin" -[tool.isort] -profile = "black" -multi_line_output = 3 +[tool.mypy] +ignore_missing_imports = true +plugins = ["numpy.typing.mypy_plugin"] +python_version = "3.8" + +[tool.ruff] +extend-exclude = ["docs"] +target-version = "py38" diff --git a/requirements.txt b/requirements.txt index 048f618..f5ca4f4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,11 +15,10 @@ pytest-runner==6.0.0 pytest-benchmark==4.0.0 # develop -isort==5.12.0 pip black==23.1.0 watchdog==2.3.1 -flake8==6.0.0 +ruff coverage==7.2.2 Sphinx==6.1.3 mypy==1.1.1 diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 3deda4a..0000000 --- a/setup.cfg +++ /dev/null @@ -1,8 +0,0 @@ -[flake8] -exclude = docs -max-line-length = 88 - -[mypy] -ignore_missing_imports = True -plugins = numpy.typing.mypy_plugin -python_version = 3.8 From 3ae3ac12c4e863ddd7359d2e8c22886dfb682b59 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Wed, 29 Mar 2023 17:48:18 +0100 Subject: [PATCH 7/8] Upgrade to maturin 0.14 --- Cargo.lock | 699 ++++++++++++++++++++++++++--------------------- Cargo.toml | 33 +-- pyproject.toml | 37 ++- requirements.txt | 2 +- 4 files changed, 437 insertions(+), 334 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0029d93..425ee01 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" dependencies = [ "memchr", ] @@ -32,7 +32,7 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" dependencies = [ - "hermit-abi", + "hermit-abi 0.1.19", "libc", "winapi", ] @@ -60,11 +60,21 @@ dependencies = [ "regex-automata", ] +[[package]] +name = "bstr" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +dependencies = [ + "memchr", + "serde", +] + [[package]] name = "bytemuck" -version = "1.7.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439989e6b8c38d1b6570a384ef1e49c8848128f5a97f3914baef02920842712f" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" [[package]] name = "byteorder" @@ -74,15 +84,15 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "camino" -version = "1.0.7" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3132262930b0522068049f5870a856ab8affc80c70d08b6ecb785771a6fc23" +checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" dependencies = [ "serde", ] @@ -98,11 +108,11 @@ dependencies = [ [[package]] name = "cargo-release" -version = "0.20.2" +version = "0.20.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "165c2128796c2c607a47846247181752ff2224a31e3f57810e707ff38dbe0565" +checksum = "e663fe9e3bdc9b639c25b5a6ca103c981545f680852aae2f05e7c50b88a5418b" dependencies = [ - "bstr", + "bstr 0.2.17", "cargo_metadata", "clap", "clap-cargo", @@ -141,19 +151,13 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.73" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" dependencies = [ "jobserver", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -162,16 +166,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "clap" -version = "3.1.1" +version = "3.2.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d76c22c9b9b215eeb8d016ad3a90417bd13cb24cf8142756e6472445876cab7" +checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" dependencies = [ "atty", "bitflags", "clap_derive", + "clap_lex", "indexmap", - "lazy_static", - "os_str_bytes", + "once_cell", "strsim", "termcolor", "textwrap", @@ -190,22 +194,31 @@ dependencies = [ [[package]] name = "clap_derive" -version = "3.1.0" +version = "3.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd1122e63869df2cb309f449da1ad54a7c6dfeb7c7e6ccd8e0825d9eb93bb72" +checksum = "ea0c8bce528c4be4da13ea6fead8965e95b6073585a2f05204bd8f4119f82a65" dependencies = [ "heck", "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", ] [[package]] name = "combine" -version = "4.6.3" +version = "4.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50b727aacc797f9fc28e355d21f34709ac4fc9adecfe470ad07b8f4464f53062" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" dependencies = [ "bytes", "memchr", @@ -213,9 +226,9 @@ dependencies = [ [[package]] name = "crates-index" -version = "0.18.5" +version = "0.18.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00c338c128681bf06772e2a188f7937293620478bb7781e453e996266686e806" +checksum = "599f67b56f40863598cb30450427049935d05de2e36c61d33c050f04d7ec8cf2" dependencies = [ "git2", "hex", @@ -229,50 +242,50 @@ dependencies = [ "serde_derive", "serde_json", "smartstring", + "toml", ] [[package]] name = "crossbeam-channel" -version = "0.5.2" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" +checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-deque" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-epoch", "crossbeam-utils", ] [[package]] name = "crossbeam-epoch" -version = "0.9.7" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ - "cfg-if 1.0.0", + "autocfg", + "cfg-if", "crossbeam-utils", - "lazy_static", "memoffset", "scopeguard", ] [[package]] name = "crossbeam-utils" -version = "0.8.7" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ - "cfg-if 1.0.0", - "lazy_static", + "cfg-if", ] [[package]] @@ -287,7 +300,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "dirs-sys-next", ] @@ -316,15 +329,15 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "either" -version = "1.6.1" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "env_logger" -version = "0.9.0" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" dependencies = [ "atty", "humantime", @@ -350,30 +363,29 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" dependencies = [ - "matches", "percent-encoding", ] [[package]] name = "getrandom" -version = "0.2.5" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi", ] [[package]] name = "git2" -version = "0.13.25" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29229cc1b24c0e6062f6e742aa3e256492a5323365e5ed3413599f8a5eff7d6" +checksum = "d0155506aab710a86160ddb504a480d2964d7ab5b9e62419be69e0032bc5931c" dependencies = [ "bitflags", "libc", @@ -386,12 +398,12 @@ dependencies = [ [[package]] name = "globset" -version = "0.4.8" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10463d9ff00a2a068db14231982f5132edebad0d7660cd956a1c30292dbcbfbd" +checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ "aho-corasick", - "bstr", + "bstr 1.4.0", "fnv", "log", "regex", @@ -399,15 +411,15 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -418,6 +430,15 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + [[package]] name = "hex" version = "0.4.3" @@ -429,9 +450,9 @@ dependencies = [ [[package]] name = "home" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" dependencies = [ "winapi", ] @@ -444,22 +465,20 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "idna" -version = "0.2.3" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" dependencies = [ - "matches", "unicode-bidi", "unicode-normalization", ] [[package]] name = "ignore" -version = "0.4.18" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713f1b139373f96a2e0ce3ac931cd01ee973c3c5dd7c40c0c2efe96ad2b6751d" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" dependencies = [ - "crossbeam-utils", "globset", "lazy_static", "log", @@ -473,9 +492,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.8.0" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown", @@ -484,69 +503,34 @@ dependencies = [ [[package]] name = "indoc" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47741a8bc60fb26eb8d6e0238bbb26d8575ff623fdc97b1a2c00c050b9684ed8" -dependencies = [ - "indoc-impl", - "proc-macro-hack", -] - -[[package]] -name = "indoc-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce046d161f000fffde5f432a0d034d0341dc152643b2598ed5bfce44c4f3a8f0" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", - "unindent", -] - -[[package]] -name = "instant" -version = "0.1.12" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] +checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306" [[package]] name = "itertools" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a9d19fa1e79b6215ff29b9d6880b706147f16e9b1dbb1e4e5947b5b02bc5e3" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.1" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "jobserver" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af25a77299a7f711a01975c35a6a424eb6862092cc2d6c72c4ed6cbc56dfc1fa" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] -[[package]] -name = "kstring" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b310ccceade8121d7d77fee406160e457c2f4e7c7982d589da3499bc7ea4526" -dependencies = [ - "serde", -] - [[package]] name = "lazy_static" version = "1.4.0" @@ -555,15 +539,15 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.119" +version = "0.2.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" +checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" [[package]] name = "libgit2-sys" -version = "0.12.26+1.3.0" +version = "0.13.5+1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e1c899248e606fbfe68dcb31d8b0176ebab833b103824af31bddf4b7457494" +checksum = "51e5ea06c26926f1002dd553fded6cfcdc9784c1f60feeb58368b4d9b07b6dba" dependencies = [ "cc", "libc", @@ -575,9 +559,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.2" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libssh2-sys" @@ -595,9 +579,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.3" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5435b8549c16d423ed0c03dbaafe57cf6c3344744f1242520d59c9d8ecec66" +checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" dependencies = [ "cc", "libc", @@ -607,20 +591,21 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ + "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.14" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -629,12 +614,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d" -[[package]] -name = "matches" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" - [[package]] name = "matrixmultiply" version = "0.3.2" @@ -646,15 +625,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memoffset" -version = "0.6.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" dependencies = [ "autocfg", ] @@ -679,6 +658,7 @@ name = "ncollpyde" version = "0.19.0" dependencies = [ "cargo-release", + "ndarray", "numpy", "parry3d-f64", "pyo3", @@ -690,9 +670,9 @@ dependencies = [ [[package]] name = "ndarray" -version = "0.15.4" +version = "0.15.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec23e6762830658d2b3d385a75aa212af2f67a4586d4442907144f3bb6a1ca8" +checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" dependencies = [ "matrixmultiply", "num-complex", @@ -704,9 +684,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26873667bbbb7c5182d4a37c1add32cdf09f841af72da53318fdb81543c15085" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" dependencies = [ "num-traits", ] @@ -719,14 +699,14 @@ checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "num-integer" -version = "0.1.44" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ "autocfg", "num-traits", @@ -734,9 +714,9 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ "autocfg", "num-integer", @@ -745,9 +725,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", "libm", @@ -755,42 +735,34 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.3" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ba99ba6393e2c3734791401b66902d981cb03bf190af674ca69949b6d5fb15" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" dependencies = [ + "hermit-abi 0.2.6", "libc", ] [[package]] name = "numpy" -version = "0.15.1" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f3a190dd1aa88ee0de91e59e970d5b85cfa079a9ff6531b69f811ccd0c2a6e1" +checksum = "96b0fee4571867d318651c24f4a570c3f18408cf95f16ccb576b3ce85496a46e" dependencies = [ - "cfg-if 0.1.10", "libc", "ndarray", "num-complex", + "num-integer", "num-traits", "pyo3", + "rustc-hash", ] [[package]] name = "once_cell" -version = "1.9.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "openssl-probe" @@ -800,9 +772,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.72" +version = "0.9.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e46109c383602735fa0a2e48dd2b7c892b048e1bf69e5c3b1d804b7d9c203cb" +checksum = "666416d899cf077260dac8698d60a60b435a46d57e82acb1be3d0dad87284e5b" dependencies = [ "autocfg", "cc", @@ -819,36 +791,31 @@ checksum = "978aa494585d3ca4ad74929863093e87cac9790d81fe7aba2b3dc2890643a0fc" [[package]] name = "os_str_bytes" -version = "6.0.0" +version = "6.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" -dependencies = [ - "memchr", -] +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" [[package]] name = "parking_lot" -version = "0.11.2" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ - "instant", "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ - "cfg-if 1.0.0", - "instant", + "cfg-if", "libc", "redox_syscall", "smallvec", - "winapi", + "windows-sys", ] [[package]] @@ -875,46 +842,27 @@ dependencies = [ [[package]] name = "paste" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" -dependencies = [ - "paste-impl", - "proc-macro-hack", -] - -[[package]] -name = "paste" -version = "1.0.6" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" - -[[package]] -name = "paste-impl" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" -dependencies = [ - "proc-macro-hack", -] +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pkg-config" -version = "0.3.24" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58893f751c9b0412871a09abd62ecd2a00298c6c83befa223ef98c52aef40cbe" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro-error" @@ -925,7 +873,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "version_check", ] @@ -940,67 +888,73 @@ dependencies = [ "version_check", ] -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "e472a104799c74b514a57226160104aa483546de37e839ec50e3c2e41dd87534" dependencies = [ - "unicode-xid", + "unicode-ident", ] [[package]] name = "pyo3" -version = "0.15.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cf01dbf1c05af0a14c7779ed6f3aa9deac9c3419606ac9de537a2d649005720" +checksum = "cfb848f80438f926a9ebddf0a539ed6065434fd7aae03a89312a9821f81b8501" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "indoc", "libc", + "memoffset", "parking_lot", - "paste 0.1.18", "pyo3-build-config", + "pyo3-ffi", "pyo3-macros", "unindent", ] [[package]] name = "pyo3-build-config" -version = "0.15.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf9e4d128bfbddc898ad3409900080d8d5095c379632fbbfbb9c8cfb1fb852b" +checksum = "98a42e7f42e917ce6664c832d5eee481ad514c98250c49e0b03b20593e2c7ed0" dependencies = [ "once_cell", + "target-lexicon", +] + +[[package]] +name = "pyo3-ffi" +version = "0.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0707f0ab26826fe4ccd59b69106e9df5e12d097457c7b8f9c0fd1d2743eec4d" +dependencies = [ + "libc", + "pyo3-build-config", ] [[package]] name = "pyo3-macros" -version = "0.15.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67701eb32b1f9a9722b4bc54b548ff9d7ebfded011c12daece7b9063be1fd755" +checksum = "978d18e61465ecd389e1f235ff5a467146dc4e3c3968b90d274fe73a5dd4a438" dependencies = [ + "proc-macro2", "pyo3-macros-backend", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "pyo3-macros-backend" -version = "0.15.1" +version = "0.18.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f44f09e825ee49a105f2c7b23ebee50886a9aee0746f4dd5a704138a64b0218a" +checksum = "8e0e1128f85ce3fca66e435e08aa2089a2689c1c48ce97803e13f63124058462" dependencies = [ "proc-macro2", - "pyo3-build-config", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1011,9 +965,9 @@ checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" [[package]] name = "quote" -version = "1.0.15" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" dependencies = [ "proc-macro2", ] @@ -1041,9 +995,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] @@ -1087,28 +1041,29 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.10" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ "bitflags", ] [[package]] name = "redox_users" -version = "0.4.0" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528532f3d801c87aec9def2add9ca802fe569e44a544afe633765267840abe64" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ "getrandom", "redox_syscall", + "thiserror", ] [[package]] name = "regex" -version = "1.5.4" +version = "1.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461" +checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d" dependencies = [ "aho-corasick", "memchr", @@ -1123,9 +1078,9 @@ checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" [[package]] name = "regex-syntax" -version = "0.6.25" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "robust" @@ -1141,9 +1096,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "ryu" -version = "1.0.9" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safe_arch" @@ -1171,38 +1126,38 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "semver" -version = "1.0.6" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a3381e03edd24287172047536f20cabde766e2cd3e65e6b00fb3af51c4f38d" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.136" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.11", ] [[package]] name = "serde_json" -version = "1.0.79" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" +checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744" dependencies = [ "itoa", "ryu", @@ -1219,30 +1174,35 @@ dependencies = [ "libm", "num-complex", "num-traits", - "paste 1.0.6", + "paste", "wide", ] [[package]] name = "slab" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" [[package]] name = "smartstring" -version = "0.2.10" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e714dff2b33f2321fdcd475b71cec79781a692d846f37f415fb395a1d2bcd48e" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" dependencies = [ + "autocfg", "serde", "static_assertions", + "version_check", ] [[package]] @@ -1281,127 +1241,181 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "syn" -version = "1.0.86" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b" +checksum = "21e3787bb71465627110e7d87ed4faaa36c1f61042ee67badb9e2ef173accc40" dependencies = [ "proc-macro2", "quote", - "unicode-xid", + "unicode-ident", ] +[[package]] +name = "target-lexicon" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" + [[package]] name = "termcolor" -version = "1.1.2" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] name = "textwrap" -version = "0.14.2" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.11", +] [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] [[package]] name = "time" -version = "0.3.7" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" dependencies = [ "itoa", - "libc", - "num_threads", + "serde", + "time-core", "time-macros", ] +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + [[package]] name = "time-macros" -version = "0.2.3" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25eb0ca3468fc0acc11828786797f6ef9aa1555e4a211a60d64cc8e4d1be47d6" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +dependencies = [ + "time-core", +] [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" -version = "0.13.4" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744e9ed5b352340aa47ce033716991b5589e23781acb97cad37d4ea70560f55b" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" dependencies = [ "combine", "indexmap", "itertools", - "kstring", "serde", ] [[package]] name = "typenum" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "unicode-bidi" -version = "0.3.7" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" -version = "0.1.19" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54590932941a9e9266f0832deed84ebe1bf2e4c9e4a3554d393d18f5e854bf9" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-xid" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" - [[package]] name = "unindent" -version = "0.1.8" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "514672a55d7380da379785a4d70ca8386c8883ff7eaae877be4d2081cebe73d8" +checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c" [[package]] name = "url" -version = "2.2.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507c383b2d33b5fc35d1861e77e6b383d158b2da5e14fe51b83dfedf6fd578c" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" dependencies = [ "form_urlencoded", "idna", - "matches", "percent-encoding", ] @@ -1419,26 +1433,25 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] [[package]] name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wide" -version = "0.7.4" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3aba2d1dac31ac7cae82847ac5b8be822aee8f99a4e100f279605016b185c5f" +checksum = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223" dependencies = [ "bytemuck", "safe_arch", @@ -1474,3 +1487,69 @@ name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" diff --git a/Cargo.toml b/Cargo.toml index e2af205..d7ba3ef 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,35 +1,24 @@ [package] -authors = ["Chris L. Barnes "] name = "ncollpyde" version = "0.19.0" -description = "A python wrapper around a subset of the ncollide rust library" -readme = "README.rst" edition = "2018" -[package.metadata.maturin] -requires-dist = ["numpy>=1.21.0", "trimesh[easy]>=3.7.7; extra == 'validate'"] -requires-python = ">=3.6" -classifier = [ - "Development Status :: 2 - Pre-Alpha", - "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", - "Natural Language :: English", - "Programming Language :: Rust", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", -] -provides-extra = ["validate"] - [dependencies] -pyo3 = { version = "0.15", features = ["extension-module", "abi3-py36"] } +pyo3 = { version = "0.18", features = ["extension-module", "abi3-py37"] } parry3d-f64 = { version = "0.13", features = ["dim3", "f64", "enhanced-determinism"] } rayon = "1.7" rand = "0.8" rand_pcg = "0.3" -numpy = { version = "0.15", features = ["rayon"] } +numpy = "0.18" + +# ndarray is a dependency of numpy. +# There is currently no way to directly specify sub-dependency features; +# this addresses that. +# However, it raises a cargo warning and may be an error in future. +# At that point, we will need to rely directly on ndarray, +# ensuring that it is the same version as numpy uses. +[dependencies.ndarray] +features = ["rayon"] [dev-dependencies] stl_io = "0.6" diff --git a/pyproject.toml b/pyproject.toml index 4ec90e8..75aab58 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,40 @@ +[project] +name = "ncollpyde" +# version = "0.19.0" +description = "Point/line-mesh intersection queries in python" +readme = "README.rst" +requires-python = ">=3.7" +license = {file = "LICENSE"} +authors = [ + {name = "Chris L. Barnes", email = "chrislloydbarnes@gmail.com"}, +] +classifiers = [ + "Development Status :: 2 - Pre-Alpha", + "Intended Audience :: Developers", + "License :: OSI Approved :: MIT License", + "Natural Language :: English", + "Programming Language :: Rust", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.8", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", +] + +dependencies = [ + "numpy>=1.21.0", +] + +[project.optional-dependencies] +validate = ["trimesh[easy]>=3.7.7"] + +[project.urls] +homepage = "https://pypi.org/project/ncollpyde/" +documentation = "https://ncollpyde.readthedocs.io/" +repository = "https://github.com/clbarnes/ncollpyde/" + [build-system] -requires = ["maturin==0.13", "numpy>=1.21"] +requires = ["maturin==0.14", "numpy>=1.21"] build-backend = "maturin" [tool.mypy] diff --git a/requirements.txt b/requirements.txt index f5ca4f4..bdb07f7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ # build -maturin==0.13 +maturin==0.14 # run numpy==1.24.2 From 7d910e19ef929870e15c44d6602694b6c4294aca Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Wed, 29 Mar 2023 17:51:03 +0100 Subject: [PATCH 8/8] remove flake8 precommit --- .pre-commit-config.yaml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index aab9631..d150dc7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,12 +7,6 @@ repos: - id: black language_version: python3.7 args: ["ncollpyde", "tests"] -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v2.2.1 - hooks: - - id: check-yaml - - id: check-added-large-files - - id: flake8 - repo: https://github.com/doublify/pre-commit-rust rev: master hooks: