diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..2969a1c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,32 @@ +# Changelog + +See archived changelogs for versions prior to 2.6.0. + +## 2.6.0 2025-10-15 + +Substantial performance improvement for `flux_density_linear_filament` Biot-Savart methods. +This also improves performance in calculations that use these methods, such as linear filament +body force density calcs. + +### Added + +* Rust + * Add `dot3f` and `cross3f` 32-bit float variants + +### Changed + +* Rust + * Use mixed-precision method for `flux_density_linear_filament_scalar` + * High-dynamic-range part of the calc is still done using 64-bit floats + * Low-dynamic-range part of the calc is now done using 32-bit floats + * _All_ addition operations in 32-bit section are done using + fused multiply-add operations, usually chained to defer + roundoff to final operation. As a result, total roundoff error + accumulated in this section is minimal. + * Return is upcast back to 64-bit float to support precise summation downstream + * 1.4-2x speedup without any meaningful loss of precision + * No change to unit test tolerances needed; unlike an all-32-bit implementation, + this mixed-precision method passes all the same tests as the 64-bit-only method +* Python + * Update dep versions + * Use latest rust backend version, which includes 1.4-2x speedup for flux_density_linear_filament Biot-Savart calcs diff --git a/CHANGELOG_PYTHON.md b/CHANGELOG_PYTHON_ARCHIVE.md similarity index 100% rename from CHANGELOG_PYTHON.md rename to CHANGELOG_PYTHON_ARCHIVE.md diff --git a/CHANGELOG_RUST.md b/CHANGELOG_RUST_ARCHIVE.md similarity index 100% rename from CHANGELOG_RUST.md rename to CHANGELOG_RUST_ARCHIVE.md diff --git a/Cargo.lock b/Cargo.lock index 2c11400..157942b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -64,7 +64,7 @@ checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfsem" -version = "2.5.0" +version = "2.6.0" dependencies = [ "criterion", "itertools 0.14.0", @@ -201,6 +201,102 @@ version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +[[package]] +name = "glam" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "333928d5eb103c5d4050533cec0384302db6be8ef7d3cebd30ec6a35350353da" + +[[package]] +name = "glam" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3abb554f8ee44336b72d522e0a7fe86a29e09f839a36022fa869a7dfe941a54b" + +[[package]] +name = "glam" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4126c0479ccf7e8664c36a2d719f5f2c140fbb4f9090008098d2c291fa5b3f16" + +[[package]] +name = "glam" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01732b97afd8508eee3333a541b9f7610f454bb818669e66e90f5f57c93a776" + +[[package]] +name = "glam" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525a3e490ba77b8e326fb67d4b44b4bd2f920f44d4cc73ccec50adc68e3bee34" + +[[package]] +name = "glam" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b8509e6791516e81c1a630d0bd7fbac36d2fa8712a9da8662e716b52d5051ca" + +[[package]] +name = "glam" +version = "0.20.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f" + +[[package]] +name = "glam" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518faa5064866338b013ff9b2350dc318e14cc4fcd6cb8206d7e7c9886c98815" + +[[package]] +name = "glam" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f597d56c1bd55a811a1be189459e8fad2bbc272616375602443bdfb37fa774" + +[[package]] +name = "glam" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e4afd9ad95555081e109fe1d21f2a30c691b5f0919c67dfa690a2e1eb6bd51c" + +[[package]] +name = "glam" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5418c17512bdf42730f9032c74e1ae39afc408745ebb2acf72fbc4691c17945" + +[[package]] +name = "glam" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3" + +[[package]] +name = "glam" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e05e7e6723e3455f4818c7b26e855439f7546cf617ef669d1adedb8669e5cb9" + +[[package]] +name = "glam" +version = "0.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "779ae4bf7e8421cf91c0b3b64e7e8b40b862fba4d393f59150042de7c4965a94" + +[[package]] +name = "glam" +version = "0.29.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" + +[[package]] +name = "glam" +version = "0.30.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e12d847aeb25f41be4c0ec9587d624e9cd631bc007a8fd7ce3f5851e064c6460" + [[package]] name = "half" version = "2.6.0" @@ -319,11 +415,27 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.33.2" +version = "0.34.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b" +checksum = "c4d5b3eff5cd580f93da45e64715e8c20a3996342f1e466599cf7a267a0c2f5f" dependencies = [ "approx", + "glam 0.14.0", + "glam 0.15.2", + "glam 0.16.0", + "glam 0.17.3", + "glam 0.18.0", + "glam 0.19.0", + "glam 0.20.5", + "glam 0.21.3", + "glam 0.22.0", + "glam 0.23.0", + "glam 0.24.2", + "glam 0.25.0", + "glam 0.27.0", + "glam 0.28.0", + "glam 0.29.3", + "glam 0.30.8", "matrixmultiply", "nalgebra-macros", "num-complex", @@ -335,9 +447,9 @@ dependencies = [ [[package]] name = "nalgebra-macros" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "254a5372af8fc138e36684761d3c0cdb758a4410e938babcff1c860ce14ddbfc" +checksum = "973e7178a678cfd059ccec50887658d482ce16b0aa9da3888ddeab5cd5eb4889" dependencies = [ "proc-macro2", "quote", @@ -410,9 +522,9 @@ dependencies = [ [[package]] name = "numpy" -version = "0.25.0" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f1dee9aa8d3f6f8e8b9af3803006101bb3653866ef056d530d53ae68587191" +checksum = "9b2dba356160b54f5371b550575b78130a54718b4c6e46b3f33a6da74a27e78b" dependencies = [ "libc", "ndarray", @@ -496,9 +608,9 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8970a78afe0628a3e3430376fc5fd76b6b45c4d43360ffd6cdd40bdde72b682a" +checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383" dependencies = [ "indoc", "libc", @@ -513,19 +625,18 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458eb0c55e7ece017adeba38f2248ff3ac615e53660d7c71a238d7d2a01c7598" +checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f" dependencies = [ - "once_cell", "target-lexicon", ] [[package]] name = "pyo3-ffi" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7114fe5457c61b276ab77c5055f206295b812608083644a5c5b2640c3102565c" +checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105" dependencies = [ "libc", "pyo3-build-config", @@ -533,9 +644,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8725c0a622b374d6cb051d11a0983786448f7785336139c3c94f5aa6bef7e50" +checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -545,9 +656,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.25.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4109984c22491085343c05b0dbc54ddc405c3cf7b4374fc533f5c3313a572ccc" +checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf" dependencies = [ "heck", "proc-macro2", @@ -573,9 +684,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -583,9 +694,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", diff --git a/Cargo.toml b/Cargo.toml index db0e643..08ad349 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cfsem" -version = "2.5.0" +version = "2.6.0" edition = "2024" authors = ["Commonwealth Fusion Systems "] license = "MIT" @@ -15,11 +15,11 @@ name = "cfsem" crate-type = ["cdylib", "rlib"] [dependencies] -pyo3 = { version="0.25.1", features=["extension-module"], optional=true } -numpy = { version="0.25.0", optional=true } # This must match pyo3 version! +pyo3 = { version="0.26.0", features=["extension-module"], optional=true } +numpy = { version="0.26.0", optional=true } # This must match pyo3 version! -nalgebra = "^0.33.2" -rayon = "^1.10.0" +nalgebra = "^0.34.1" +rayon = "^1.11.0" libm = "^0.2" num-traits = { version = "0.2.19", features = ["libm"] } diff --git a/pyproject.toml b/pyproject.toml index a784f61..4ade699 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "cfsem" -version = "2.5.0" +version = "2.6.0" description = "Quasi-steady electromagnetics including filamentized approximations, Biot-Savart, and Grad-Shafranov." authors = [{name = "Commonwealth Fusion Systems", email = "jlogan@cfs.energy"}] requires-python = ">=3.9, <3.14" @@ -15,7 +15,7 @@ classifiers = [ ] dependencies = [ "numpy >= 2", - "interpn >= 0.2.5", + "interpn >= 0.6.1", "findiff >= 0.12.1", "pydantic >= 2", "pydantic-numpy >= 6" diff --git a/src/lib.rs b/src/lib.rs index e44ad53..af584e8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,5 @@ #![doc=include_str!("../README.md")] -#![allow(non_snake_case)] +#![allow(clippy::doc_overindented_list_items)] #![allow(clippy::needless_range_loop)] #![allow(clippy::needless_late_init)] #![allow(non_snake_case)] diff --git a/src/math.rs b/src/math.rs index b2aafd2..2587816 100644 --- a/src/math.rs +++ b/src/math.rs @@ -45,6 +45,9 @@ pub fn ellipk(m: f64) -> f64 { let mut ellip: f64 = 0.0; let c: f64 = 1.0 - m; let logterm = c.powi(-1).ln(); + + // NOTE: This loop is unrolled at compile-time automatically, + // and the repeated calls to `powi` are de-duplicated by the compiler. for i in 0..5 { ellip = logterm .mul_add(ELLIPK_B[i], ELLIPK_A[i]) @@ -69,6 +72,9 @@ pub fn ellipe(m: f64) -> f64 { let mut ellip: f64 = 0.0; let c: f64 = 1.0 - m; let logterm = c.powi(-1).ln(); + + // NOTE: This loop is unrolled at compile-time automatically, + // and the repeated calls to `powi` are de-duplicated by the compiler. for i in 0..5 { ellip = logterm .mul_add(ELLIPE_B[i], ELLIPE_A[i]) @@ -99,12 +105,35 @@ pub fn cross3(x0: f64, y0: f64, z0: f64, x1: f64, y1: f64, z1: f64) -> (f64, f64 (cx, cy, cz) } +/// Evaluate the cross products for each axis component +/// separately using `mul_add` which would not be assumed usable +/// in a more general implementation. +/// 32-bit float variant. +#[inline] +pub fn cross3f(x0: f32, y0: f32, z0: f32, x1: f32, y1: f32, z1: f32) -> (f32, f32, f32) { + let xy = -x1 * y0; + let yz = -y1 * z0; + let zx = -z1 * x0; + let cx = y0.mul_add(z1, yz); + let cy = z0.mul_add(x1, zx); + let cz = x0.mul_add(y1, xy); + + (cx, cy, cz) +} + /// Scalar dot product using `mul_add`. #[inline] pub fn dot3(x0: f64, y0: f64, z0: f64, x1: f64, y1: f64, z1: f64) -> f64 { x0.mul_add(x1, y0.mul_add(y1, z0 * z1)) } +/// Scalar dot product using `mul_add`. +/// 32-bit float variant. +#[inline] +pub fn dot3f(x0: f32, y0: f32, z0: f32, x1: f32, y1: f32, z1: f32) -> f32 { + x0.mul_add(x1, y0.mul_add(y1, z0 * z1)) +} + /// Convert a point from cartesian to cylindrical coordinates. #[inline] pub fn cartesian_to_cylindrical(x: f64, y: f64, z: f64) -> (f64, f64, f64) { diff --git a/src/physics/circular_filament.rs b/src/physics/circular_filament.rs index a99f43a..4ae9c76 100644 --- a/src/physics/circular_filament.rs +++ b/src/physics/circular_filament.rs @@ -1268,7 +1268,7 @@ mod test { let zfil: Vec = (0..NFIL) .map(|i| (i as f64) - (NFIL as f64) / 2.0) .collect(); - let ifil: Vec = (0..NFIL).map(|i| (i as f64)).collect(); + let ifil: Vec = (0..NFIL).map(|i| i as f64).collect(); // Build a scattering of observation locations let rprime: Vec = (0..NOBS).map(|i| 2.0 * (i as f64).sin() + 2.1).collect(); diff --git a/src/physics/linear_filament.rs b/src/physics/linear_filament.rs index df197e9..7248a3b 100644 --- a/src/physics/linear_filament.rs +++ b/src/physics/linear_filament.rs @@ -7,7 +7,7 @@ use rayon::{ use crate::{ chunksize, - math::{cross3, decompose_filament, dot3, rss3}, + math::{cross3, cross3f, decompose_filament, dot3, dot3f, rss3}, }; use crate::{MU0_OVER_4PI, macros::*}; @@ -260,28 +260,39 @@ pub fn flux_density_linear_filament_scalar( let ((xmid, ymid, zmid), dl) = decompose_filament(xyz0, xyz1); // Get distance from middle of the filament segment to the observation point - let rx = xp - xmid; // [m] + let rx: f64 = xp - xmid; // [m] let ry = yp - ymid; // [m] let rz = zp - zmid; // [m] + // Now that we've resolved the part of the calculation that involves a wide dynamic range, + // which drives the need for 64-bit floats to control roundoff error, + // we can switch to 32-bit floats for the majority of the calculation without incurring + // excessive error, before converting back to 64-bit float so that we maintain + // acceptable error during summation downstream. + let (rx, ry, rz) = (rx as f32, ry as f32, rz as f32); + let dl = (dl.0 as f32, dl.1 as f32, dl.2 as f32); + let ifil = ifil as f32; + // Do 1/r^3 operation with an ordering that improves float error by eliminating // the actual cube operation and using fused multiply-add to reduce roundoff events, // then rolling the result into the factor that is constant between all contributions. - let sumsq = dot3(rx, ry, rz, rx, ry, rz); + let sumsq = dot3f(rx, ry, rz, rx, ry, rz); let rnorm3_inv = sumsq.powf(-1.5); // [m^-3] // This factor is constant across all x, y, and z components - let c = MU0_OVER_4PI * ifil * rnorm3_inv; + let c = (MU0_OVER_4PI as f32) * ifil * rnorm3_inv; // Evaluate the cross products for each axis component // separately using mul_add which would not be assumed usable // in a more general implementation. - let (cx, cy, cz) = cross3(dl.0, dl.1, dl.2, rx, ry, rz); + let (cx, cy, cz) = cross3f(dl.0, dl.1, dl.2, rx, ry, rz); // Assemble final B-field components - let bx = c * cx; // [T] - let by = c * cy; - let bz = c * cz; + // and upcast back to 64-bit float so that summation operations + // downstream do not incur excessive roundoff error. + let bx = (c * cx) as f64; // [T] + let by = (c * cy) as f64; + let bz = (c * cz) as f64; (bx, by, bz) } @@ -849,7 +860,7 @@ mod test { let dlzfil: Vec = (0..=NFIL - 2).map(|i| zfil[i + 1] - zfil[i]).collect(); let dlxyzfil = (&dlxfil[..], &dlyfil[..], &dlzfil[..]); - let ifil: &[f64] = &(0..NFIL - 1).map(|i| (i as f64)).collect::>()[..]; + let ifil: &[f64] = &(0..NFIL - 1).map(|i| i as f64).collect::>()[..]; // Build a scattering of observation locations let xp: Vec = (0..NOBS).map(|i| 2.0 * (i as f64).sin() + 2.1).collect(); diff --git a/uv.lock b/uv.lock index 94edb14..233ac23 100644 --- a/uv.lock +++ b/uv.lock @@ -1,5 +1,5 @@ version = 1 -revision = 2 +revision = 3 requires-python = ">=3.9, <3.14" resolution-markers = [ "python_full_version >= '3.11'", @@ -49,7 +49,7 @@ wheels = [ [[package]] name = "cfsem" -version = "2.5.0" +version = "2.6.0" source = { editable = "." } dependencies = [ { name = "findiff" }, @@ -81,7 +81,7 @@ dev = [ requires-dist = [ { name = "coverage", marker = "extra == 'dev'", specifier = ">=6.5.0" }, { name = "findiff", specifier = ">=0.12.1" }, - { name = "interpn", specifier = ">=0.2.5" }, + { name = "interpn", specifier = ">=0.6.1" }, { name = "matplotlib", marker = "extra == 'dev'", specifier = ">=3.9" }, { name = "mkdocs", marker = "extra == 'dev'", specifier = ">=1.6.0" }, { name = "mkdocs-material", marker = "extra == 'dev'", specifier = ">=9.5.25" }, @@ -603,7 +603,7 @@ wheels = [ [[package]] name = "interpn" -version = "0.2.5" +version = "0.6.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, @@ -611,112 +611,21 @@ dependencies = [ { name = "numpy", version = "2.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "pydantic" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e3/81/89f6b5f0895d4a2f0ddc75205c243229eb1a6bcc7912b488658afb803ba7/interpn-0.2.5.tar.gz", hash = "sha256:f9a4aa8c718518dec78aaff7f4cfaed695ba0a8f99344f9ccb0084ec68c76b41", size = 235447, upload-time = "2025-03-15T20:16:29.918Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/4f/e830a8d25f0393fd2d870ff1756c95d7f7680faa989bc232fe524484f5cb/interpn-0.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6802733432a610d951c8fbcc04c88ad3770f6eb86b63f53df107a60837c4d4ac", size = 296311, upload-time = "2025-03-15T20:13:02.677Z" }, - { url = "https://files.pythonhosted.org/packages/30/cd/46ae48e96e5cb33a2e2153b505b41b8dc7fb780e35342d83d964061295a1/interpn-0.2.5-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf809f40b198d4dc089adc9db7350921abe5f6429582e08da546666b5b205d", size = 310701, upload-time = "2025-03-15T20:13:24.464Z" }, - { url = "https://files.pythonhosted.org/packages/bd/0d/9dc25a6bd4537cccce391dceb0cdf443dff3aec2ee11bbadd7328abc8fa4/interpn-0.2.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d3002360dfa7d52f0d8e5d532abf2994352f955fc65abe01511af1ca9a72d00", size = 331021, upload-time = "2025-03-15T20:13:43.514Z" }, - { url = "https://files.pythonhosted.org/packages/97/34/f8fef7507f13f75d64edc123e76bf0a0f3ccac6a2fb007be732aa570e814/interpn-0.2.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:241443329ac21d6705d6b55b94f5169146ceb25654437c9564288954a7c93c68", size = 401650, upload-time = "2025-03-15T20:14:01.647Z" }, - { url = "https://files.pythonhosted.org/packages/ae/cd/74e98be2d25e8e3be80a10e8da91d0c4b4f6445c2b1bf5a9ec1db7d5c5c1/interpn-0.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adbb92b627a78994e3a82bae052d91f7a3adfade609a7dd1105991657508841a", size = 316192, upload-time = "2025-03-15T20:14:35.91Z" }, - { url = "https://files.pythonhosted.org/packages/ff/dc/fc6bcf9c8e0a3a6f32c5392eb8e92a78fe331bba997f9628b2975cf2cc8e/interpn-0.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b31f4f36d48b83f5d13e432b0dc643db7a2fdeda9904646be65815bf5189f740", size = 330714, upload-time = "2025-03-15T20:14:20.966Z" }, - { url = "https://files.pythonhosted.org/packages/cf/45/57848286a7c5dc0f0c033eadef8af3b90513fab48347a5aac5998cf4a62e/interpn-0.2.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e7cbdf1996290edbb3a5b717260a80a491258d1e0a7c5634dc38b8edc55f4c66", size = 476392, upload-time = "2025-03-15T20:15:08.237Z" }, - { url = "https://files.pythonhosted.org/packages/0d/4d/672453c61a192b23dcd8046ed000f03a9818b1f20d95d40d77ba127db501/interpn-0.2.5-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:8853a4b6b6abe519933590d5cb5f1a2874b7892174cdcfd2945dd2ddb24f1f88", size = 574158, upload-time = "2025-03-15T20:15:27.917Z" }, - { url = "https://files.pythonhosted.org/packages/8e/b7/11a2ec08ce9a9aea96b7cabd19a5ae7a388f7ba11dd10a9af0ac24cb2bbd/interpn-0.2.5-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:84a177c81c6d89a5d8dd2509a295c556ebe289164d60abb031e195f3c24e0b9e", size = 509016, upload-time = "2025-03-15T20:15:49.782Z" }, - { url = "https://files.pythonhosted.org/packages/d9/a2/9b1db8a4ce25f0d81432c4b1a6a7791c405131dbc5199f368f66f792401d/interpn-0.2.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4442ee800221435cadf6ee14b3bbed9add8ef8156aafc97c302103ecb4f998d7", size = 487947, upload-time = "2025-03-15T20:16:10.345Z" }, - { url = "https://files.pythonhosted.org/packages/a1/f3/2c2ee9cd49623591f9b436bb1908014d479ba4cf04ddb80a148ba8d70aac/interpn-0.2.5-cp310-cp310-win32.whl", hash = "sha256:f25ed83c71dc8e908da7267e401e69503d4257d1c59517e26dc2c4dbdc0215e8", size = 219488, upload-time = "2025-03-15T20:16:41.289Z" }, - { url = "https://files.pythonhosted.org/packages/fd/25/d7152b3b73cb5429c7a2eb467f738e05dd8ef46ef55a012078e6186e7ed3/interpn-0.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:d7008714d410dde660a6a2a1419aa3bcbc03d8cecabcf719e8272b7ce09af76c", size = 227243, upload-time = "2025-03-15T20:16:30.838Z" }, - { url = "https://files.pythonhosted.org/packages/ad/fc/afad82634c872e1b1b9c5c05ec33e0e184fa9bbd5694ba632d5c41179bca/interpn-0.2.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:e34b8427ab1923db0488f185c8ddd75f81ee7f166ab80e1c273d150ec0862aab", size = 297567, upload-time = "2025-03-15T20:14:57.86Z" }, - { url = "https://files.pythonhosted.org/packages/6f/0b/1a8a11d069b96b4e36c634464e395386479d9e89dc5e58a5d84c5e395cc3/interpn-0.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4faf5ddb781e781496f6f7b0882ec28e0b4ce8e9622d75eca528527cf88f28a", size = 282106, upload-time = "2025-03-15T20:14:51.272Z" }, - { url = "https://files.pythonhosted.org/packages/5c/37/fb9d88ac4c552729dde43237d22b2c104c3d8ddfd7e51133f2653d9af1eb/interpn-0.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5074317e4d2237327444da917fc2c8f35fc2773255de879f1988b3de0fa1d06", size = 296178, upload-time = "2025-03-15T20:13:04.027Z" }, - { url = "https://files.pythonhosted.org/packages/8f/d6/dec47fabad73c45371c986680099f1fedd47be835e4f76efab7b4b9b4e22/interpn-0.2.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:55784cef0b776fe4d218f6f27612545a79835ce3804ede66b5c23cb5143d8a8d", size = 310590, upload-time = "2025-03-15T20:13:25.739Z" }, - { url = "https://files.pythonhosted.org/packages/da/e7/afbcc9d0fb3c5d8c88eee4f8b4869f06218d18f7ff1b94956e3aa3e3c459/interpn-0.2.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:10fb4a4b6703d2bf243dab0a8f85b70481e6e220570fffc162c13825cbd1f958", size = 330959, upload-time = "2025-03-15T20:13:44.811Z" }, - { url = "https://files.pythonhosted.org/packages/28/94/e8e22382fc805c4de8acd17fbaebdef9e0f2c5303f69df1f02be013096ca/interpn-0.2.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4a6961e1e0888d2e93b891f9ab34a56c1445cf778902620bc8cf16477d4cb79", size = 401244, upload-time = "2025-03-15T20:14:03.11Z" }, - { url = "https://files.pythonhosted.org/packages/a9/0b/706ffd35f383eaf623d9c98aeaabfc56c80acba7962526ec04c3c56caee8/interpn-0.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7574fbbe02a13aca97e8b5b689fbb2189d2e41a995ee802c50e584e7d430b966", size = 316005, upload-time = "2025-03-15T20:14:36.994Z" }, - { url = "https://files.pythonhosted.org/packages/26/07/6eb57eed473398645734f07fdc845aa4a887987da8a6e7d97f0934212bb7/interpn-0.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f4c9250724e7f80e9e61f6d76cce1ba6be91023f906abdb4fe90405e1e97095", size = 330686, upload-time = "2025-03-15T20:14:22.039Z" }, - { url = "https://files.pythonhosted.org/packages/89/1b/e5fe816df7a18b3cf71ca95b4d9defa48b70dcd9bfe4dd8219c13c7fe6bf/interpn-0.2.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1c6518a44fbf47892340d61dcfb1bc621a45aab25e220205f253d89c535b5391", size = 476294, upload-time = "2025-03-15T20:15:09.306Z" }, - { url = "https://files.pythonhosted.org/packages/48/a7/a0c4e5ec3ff8a61c669e6f93b4e0542c31a813429adf1d690693013c6417/interpn-0.2.5-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:ec2d1d4258b38e353649eed884e4f99da728cadd3421a90e9ae08ab167aef688", size = 574039, upload-time = "2025-03-15T20:15:29.388Z" }, - { url = "https://files.pythonhosted.org/packages/09/71/b35d4284005833424f2aa267665a71964b11905fefcc932a978b5fd0a882/interpn-0.2.5-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f7df655a421f58111f8decf4aec364c75a8806f082ecb1f1a1cecd259cf8589c", size = 509023, upload-time = "2025-03-15T20:15:50.925Z" }, - { url = "https://files.pythonhosted.org/packages/96/dd/7a73b8b99d6e699cee7c26f2d7be8f1a131450263babb503be599032580a/interpn-0.2.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:8f127d05da2a65ac60e5a1aeb0be3f7c14367877415f0ceae6c8015306db8d21", size = 487764, upload-time = "2025-03-15T20:16:11.687Z" }, - { url = "https://files.pythonhosted.org/packages/ed/13/ae6457e9298cc988fe0308006be60bb831964342462858a383863578e68a/interpn-0.2.5-cp311-cp311-win32.whl", hash = "sha256:fdd6191275e3cba89803b9a74d48bcc784913d44a2be164031e48fa0c112ec9e", size = 219355, upload-time = "2025-03-15T20:16:42.506Z" }, - { url = "https://files.pythonhosted.org/packages/c3/1a/255bb34e6640f39789c8a480d871a43daadc820e1720c91e8e40fb59350a/interpn-0.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:28b92d524cef4744c47cee626df4b89cb07ac6194dc5d24cd9215c71b990a2dd", size = 227094, upload-time = "2025-03-15T20:16:31.901Z" }, - { url = "https://files.pythonhosted.org/packages/2f/42/ee7a52284bbd7421960ab64fa8e19eb200cfa4f48828a9546a0b8fc76e31/interpn-0.2.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:59a88bbcaf299de42d38faa1d4ed0af1a8bbd4ec7ac028a584186661611015af", size = 294293, upload-time = "2025-03-15T20:14:58.875Z" }, - { url = "https://files.pythonhosted.org/packages/5e/66/a80a1da8543d9ba4c9d2d6ae6686f659ae596fcbae37ca790efceba09e84/interpn-0.2.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:184996a637885df3a525e106c437f7a2b53fd823c964a5490998c2d9e7842b20", size = 278447, upload-time = "2025-03-15T20:14:52.502Z" }, - { url = "https://files.pythonhosted.org/packages/41/2b/f742336fa48866c891b5acc47d1506e558dd18d1b4800965f06796a97f0b/interpn-0.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93ccbb8c75c9b0bb4acc4bbde46b130544f9eb85569fc647c1f3ae90f13a546e", size = 292808, upload-time = "2025-03-15T20:13:05.449Z" }, - { url = "https://files.pythonhosted.org/packages/db/72/aaead82c1b0a08c63f82bef1ca380d8c8be4d792b2490382c0f21ea9bc23/interpn-0.2.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:12a2217d0f8ae53d8a8ecc1aac2f1553dca7daf555a13ec40fe752f2fd6cd255", size = 308966, upload-time = "2025-03-15T20:13:26.928Z" }, - { url = "https://files.pythonhosted.org/packages/f9/c0/9b0b38b535cd1c6e93f40e1ed7ce2025963c94ca4823465f51502a41bff3/interpn-0.2.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c0c2a6deb79404d2ef5178180ad532ce18eb1030788822b20108d5b5d523607", size = 328342, upload-time = "2025-03-15T20:13:46.108Z" }, - { url = "https://files.pythonhosted.org/packages/4d/2c/73b086f58f2b99b565c1cbdee970ca27f6fcafc10872589ec0195cb5f695/interpn-0.2.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cad154fe635eb447ab9329493b73054ee276c30313d2e09ab694ede7a8bf19a0", size = 399622, upload-time = "2025-03-15T20:14:04.194Z" }, - { url = "https://files.pythonhosted.org/packages/8b/a7/6f2939f29d82d47d2b39ed1930dd6313d3a964c015b358488662204e8f31/interpn-0.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31a8ba3e209459c61348e20fdc18f2c9aaca191474cacf76014dcb2005ddeb00", size = 313112, upload-time = "2025-03-15T20:14:38.398Z" }, - { url = "https://files.pythonhosted.org/packages/33/82/b66d485144d19de20ae3fd856fa1efd3ccdea3c00a2deb4687222409524f/interpn-0.2.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5c28dbe71e4b68f68d61123e141ac279b1f7e3b245f9a17145e5c2fe5ad23bb7", size = 328251, upload-time = "2025-03-15T20:14:23.067Z" }, - { url = "https://files.pythonhosted.org/packages/ca/09/508c9f1dc09cb6f64d2a09c8bb0a3aae9e2b6f8c06e448bc192281d7daff/interpn-0.2.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ad9ace41be8db58d4f1c988b3ef3ccfe8d1af36492e70e81175cded7c4688eee", size = 472744, upload-time = "2025-03-15T20:15:10.771Z" }, - { url = "https://files.pythonhosted.org/packages/f6/32/e375fe5eabccfc3096e44f6f1b83ddb4d25a4e0371952e9248eb0eadfe0c/interpn-0.2.5-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:576808bd5183ce1a274e5466cff39935c7cab5642d2c79676fc8a78170c9831c", size = 572362, upload-time = "2025-03-15T20:15:30.692Z" }, - { url = "https://files.pythonhosted.org/packages/29/26/5cad7d7d8b33c293b1ffbcad8924b002ccc110cb3b65a5682f1d80e302bb/interpn-0.2.5-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b425f496f811a033301541ffd44a505760782b41ca7742198525580a1947c7b4", size = 507410, upload-time = "2025-03-15T20:15:52.252Z" }, - { url = "https://files.pythonhosted.org/packages/3a/28/8e0c7927695a274156f4a3cdfa8546f05e6098f5e901783b325cba06b7cf/interpn-0.2.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:403c44258eb3fd560d099e76aa0f79190eb65cd84e97fb9f43aafc4d6980b422", size = 484749, upload-time = "2025-03-15T20:16:12.804Z" }, - { url = "https://files.pythonhosted.org/packages/a9/e4/128daa6924c912b2e16bb6062db1d3e114c7a94966547eeb1d0694cb5d5e/interpn-0.2.5-cp312-cp312-win32.whl", hash = "sha256:845e6bd823b89e6742e56c7ee2b455cf34778699ac4deef00c6f0d28af2e307b", size = 219369, upload-time = "2025-03-15T20:16:43.559Z" }, - { url = "https://files.pythonhosted.org/packages/a4/a7/82f199716e52dbc1c3a1fce4544e89f3b4080518a67a59ee1525ceb0e11e/interpn-0.2.5-cp312-cp312-win_amd64.whl", hash = "sha256:0c0d7475621bfcbb2a53eb1427b43a4b71f58a7a545dc5f6d95e764a37fb04a8", size = 226577, upload-time = "2025-03-15T20:16:33.238Z" }, - { url = "https://files.pythonhosted.org/packages/cf/af/531981c5e91a194a606142aa107ac322c7f07eff47d10f007976d3028538/interpn-0.2.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:ab272f3a5c0dc665b4efe20636060e7be93c0e6e25e8d2621733d7b7a3fc7a37", size = 293849, upload-time = "2025-03-15T20:15:00.125Z" }, - { url = "https://files.pythonhosted.org/packages/d1/66/e5f796bdf15c965301d385da61c6b5a2eeb902b7efe24bbbdd7a6c5dfa18/interpn-0.2.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9836b44ba0a37c52bacbaa1e6b7600b99c07ee863a6dec0b6575daf73b737993", size = 278191, upload-time = "2025-03-15T20:14:53.739Z" }, - { url = "https://files.pythonhosted.org/packages/6c/b8/b14b681be0a52e11f5bdf619bbd2cedf5a49081bf51804b723db2b7e37dd/interpn-0.2.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5b20359b3c34370fd163c67ecd8bfe21d8d6fec088b95157c5c9841d7e79521", size = 292605, upload-time = "2025-03-15T20:13:06.515Z" }, - { url = "https://files.pythonhosted.org/packages/14/b5/8ef468751197ecd52485bfc2031506eae20cc0aa2cdbca95081bb0d9541e/interpn-0.2.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:40ec560b37e448656884b3c4c7d4e8973e88f1c7072e90b1ab7765312151ca47", size = 308249, upload-time = "2025-03-15T20:13:27.914Z" }, - { url = "https://files.pythonhosted.org/packages/d0/15/353089f6a92e3e94a782e259ea4a885631420ae6394ab60440631fafc540/interpn-0.2.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:19b64aae4221a683a5c70482867e689e053e2cda873c621be3e43ef18e755cd8", size = 327946, upload-time = "2025-03-15T20:13:47.461Z" }, - { url = "https://files.pythonhosted.org/packages/bd/0d/ef4e1da319bddb708d4a2ec21af39c9662d69356e4783ee5e8df247e8f98/interpn-0.2.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b12e6a44c419e889c2506042c75aa910513b9a3ebce33ff8d17106cc0817a7cb", size = 399314, upload-time = "2025-03-15T20:14:05.36Z" }, - { url = "https://files.pythonhosted.org/packages/a4/de/8f2df21c5aec1dd155ad1e21719ee0c44e09304ef2fb75b16846a13ba2f2/interpn-0.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3e7c596be4b0c73d4bae815bca20412c33fba509cf707d63ba4a6914322e132", size = 312596, upload-time = "2025-03-15T20:14:39.435Z" }, - { url = "https://files.pythonhosted.org/packages/8f/bd/ae9c36e9d4acc671210d96306d558a5f5617f463bb520e4502d38633ae88/interpn-0.2.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7b0d8c149f07d956037484aef8b97d7645458c6c16456795e0a526b8b87bac78", size = 327700, upload-time = "2025-03-15T20:14:24.136Z" }, - { url = "https://files.pythonhosted.org/packages/10/a0/8f1b31a3ae5de8c1512a7418d98b27e07d5b0cc186f339ec67b0276bc3b9/interpn-0.2.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8c25c42620d384c4b8b0ae6f0728716014086dffe2215c9d26406ab0c207cc6f", size = 472375, upload-time = "2025-03-15T20:15:11.837Z" }, - { url = "https://files.pythonhosted.org/packages/ae/cd/569fdf5be9c267989df47b8724aa35be63cde446da72dad66f15fad11fa8/interpn-0.2.5-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:e5bc7cf19bb84f47f7d800fd51352f2edfe75f7d5eba7a28d673730d550a8c03", size = 571829, upload-time = "2025-03-15T20:15:31.895Z" }, - { url = "https://files.pythonhosted.org/packages/76/2b/6124d801a6fc52f8b25b4f6c71f3f153bae55694e92d34ef285ca76b3b93/interpn-0.2.5-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de4c33418d6ddf8a49b569abf778f3dfe8eeb79692b5d2e3a441e13dbf24449b", size = 506861, upload-time = "2025-03-15T20:15:54.429Z" }, - { url = "https://files.pythonhosted.org/packages/d0/24/674118a204c0990b46f5e6bfadfa83b10553acd40d5afe3f3acfe0d3dcd7/interpn-0.2.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:95f4b3c21ba2a6231529e05f6dddc2398f1f3cb8219dfede6164c8385628594a", size = 484251, upload-time = "2025-03-15T20:16:13.96Z" }, - { url = "https://files.pythonhosted.org/packages/09/ea/3247412be7646ee32453953eab96c671d1494937535c705bd50d7573a5cb/interpn-0.2.5-cp313-cp313-win32.whl", hash = "sha256:2a06420dad23f8de9d1e73f2b5c3cf5663da7f6ac0ddd99fc1ac5eb364e0a0e9", size = 218895, upload-time = "2025-03-15T20:16:44.838Z" }, - { url = "https://files.pythonhosted.org/packages/5a/9d/d515c70ca9b22d6cc8b213567e467553db977de66922f6ef023a9399f194/interpn-0.2.5-cp313-cp313-win_amd64.whl", hash = "sha256:398808233723aa8e2de99f3084e962d936e9f57fc228f5b47325a683480be01d", size = 226254, upload-time = "2025-03-15T20:16:34.51Z" }, - { url = "https://files.pythonhosted.org/packages/21/01/0566d5802c88420f611db5954947d7fd0741298ad270a673dc31479c9944/interpn-0.2.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ef9b4067e3c7bc48b49e3574eafdf56bd0efae1243d41badc43127973c32e26", size = 289083, upload-time = "2025-03-15T20:13:07.541Z" }, - { url = "https://files.pythonhosted.org/packages/9b/72/1b71f34800e1b00d3b2b6b6f07e5a38d2d2ee658b1cff86db5b157f1ae09/interpn-0.2.5-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:73df3179aa5ed384dca499e6e1566c23e7c89fe18524a9d25f771e36866d7f3e", size = 301151, upload-time = "2025-03-15T20:13:29.24Z" }, - { url = "https://files.pythonhosted.org/packages/ed/2b/2871f7b0933de2cdf81bd1e35de608015e43c3e5df1f6ac71c334c7f240c/interpn-0.2.5-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1caa261cdb7134a797b037650853af7e10b1a35e8e73fb4a6421f309838412e9", size = 320178, upload-time = "2025-03-15T20:13:48.462Z" }, - { url = "https://files.pythonhosted.org/packages/fd/78/d5d00524349bfad839937a4fed3c40f55973833fbe69f36c6acdbe3d0110/interpn-0.2.5-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e7a711b18c7a5f64e0e60c47a6d4bd5f5b715f98bd9bdcdae472f57379e9de3a", size = 396541, upload-time = "2025-03-15T20:14:06.375Z" }, - { url = "https://files.pythonhosted.org/packages/9e/7e/d0cfaea8126759c3b637ef18db673b982a5c3c8a503bd0aa42fa0e8a92be/interpn-0.2.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:decbc4d4dbc163d4494e031b8cb253faae617b14b9c2f667eed6c431bd6bfcb7", size = 468927, upload-time = "2025-03-15T20:15:12.928Z" }, - { url = "https://files.pythonhosted.org/packages/28/da/1cd169e8e717738c59e525c3983f302a02d059d2f59eb07fc92da8f6863f/interpn-0.2.5-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:819ba478fb4c229becb796fc5d40e94016981cd362ac889092a1581d8b213908", size = 564556, upload-time = "2025-03-15T20:15:33.491Z" }, - { url = "https://files.pythonhosted.org/packages/ce/49/50b86c2921093e3038d36824f5f4fdfc2316c2853045d1c9f65f106c4ca0/interpn-0.2.5-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:41a42da4dfb36f807c2836e487cee7e23647fc7f4c3a186b90c8ec60690eada9", size = 502096, upload-time = "2025-03-15T20:15:55.537Z" }, - { url = "https://files.pythonhosted.org/packages/c3/8c/e99d20d4f5f990c9b27bff6359681ef85816f110d80c0e0d4222ebb76158/interpn-0.2.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:f366e15c0dc1e98f9eaeecb83fcbc4f37b0a068d76e9e590e1b347afbc8b2338", size = 476889, upload-time = "2025-03-15T20:16:15.188Z" }, - { url = "https://files.pythonhosted.org/packages/20/66/5984a3e847811e00a82df70a44ab4e0a5aa47f928b554acaf6c5053d4be1/interpn-0.2.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e57e26964170405d79a0c5d1323a566d4834b34c7f146e64246500958c6cd4", size = 296365, upload-time = "2025-03-15T20:13:08.646Z" }, - { url = "https://files.pythonhosted.org/packages/6c/f6/93329f678e855d9a518507c8fb8eef9b819a5a6fb20b062677be99656254/interpn-0.2.5-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8022cee135d1ae80986d8a890d3001c10d1fc0662e517b2dcb924f257a57564e", size = 310976, upload-time = "2025-03-15T20:13:30.509Z" }, - { url = "https://files.pythonhosted.org/packages/c8/5b/d0704551de26fd4ee3c454cdedde62eeed261a6fc3396c3144e9a4e84769/interpn-0.2.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e8148c422d8219a58407208800487ebcd85baeb0613c68e77d61386a5fad9c66", size = 331053, upload-time = "2025-03-15T20:13:49.69Z" }, - { url = "https://files.pythonhosted.org/packages/79/c4/9d834be9be0ad05e26ea887dcd29a544874d9c38c90a1c7e17fab1a67c7c/interpn-0.2.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cac53be82d53a97099ca238c95c7f13748ce2d6402ae96f38621618260a3d78e", size = 401969, upload-time = "2025-03-15T20:14:07.469Z" }, - { url = "https://files.pythonhosted.org/packages/d4/aa/119176d365e6e25062a331ebff079a9a8c82b2b8f141bbb164a9a508df68/interpn-0.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21647a0f26fe2c17148125093c93c667354e7578f1c09e812baea39e3d123379", size = 316282, upload-time = "2025-03-15T20:14:40.845Z" }, - { url = "https://files.pythonhosted.org/packages/ab/d2/a7dec1e10f17bc27a1471454b947ad3d02d046a7e16de2998f9fcdd4fd4e/interpn-0.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:96dd5ca5f1d8ae1923419c0c2b89df0c93103b2bbf4e4dc369781a6767c4ee1e", size = 330949, upload-time = "2025-03-15T20:14:25.484Z" }, - { url = "https://files.pythonhosted.org/packages/7d/0b/ea5bafa7a94dbb49419e21db329927eb79b2f55be84f37e511535b308d6f/interpn-0.2.5-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4ba65a3b7f5f586274c374c6570fa64344922c73f7c2185de1df88bed44cfce9", size = 476460, upload-time = "2025-03-15T20:15:14.505Z" }, - { url = "https://files.pythonhosted.org/packages/3e/76/33243e1af9b4ea27d53d0ab5e63b6ea288a88a1b58024927cf3917928bda/interpn-0.2.5-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:aeacfc24db65a20126953a3a0827165ef990f2351b5417c5a61bea96f7421df0", size = 574416, upload-time = "2025-03-15T20:15:34.849Z" }, - { url = "https://files.pythonhosted.org/packages/99/3d/a0696fa6cb74da44276752d61297ed0dfd87c2e1ea554de057e953cc8c47/interpn-0.2.5-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0a50cea873deb64dbfdb00ea0ceaac3b844aab04c3934d001044ae0fe9d7ade2", size = 509231, upload-time = "2025-03-15T20:15:56.686Z" }, - { url = "https://files.pythonhosted.org/packages/48/14/0b45ff7262ea09f0f3bb3ad6b51404ab4947b55180f2edc31e8c5ad1e14c/interpn-0.2.5-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:48d80adee516547dbcb1678174a158ab63276eb678d4d9e166e69ad42849f210", size = 488015, upload-time = "2025-03-15T20:16:16.643Z" }, - { url = "https://files.pythonhosted.org/packages/38/4f/210be6a14f9002ac6ebea5f7b0f022b93a0b8d5df8b83036093c4181e3a6/interpn-0.2.5-cp39-cp39-win32.whl", hash = "sha256:cc062d6c0d946294aed2778cf3c4742c6f6d926b70e1fc1b3fae41c7a8eb34df", size = 219807, upload-time = "2025-03-15T20:16:46.079Z" }, - { url = "https://files.pythonhosted.org/packages/f2/dd/056e4c39ebf43ac01527c2a4d2251d6cf8051c17cde0c47e6318716e1f52/interpn-0.2.5-cp39-cp39-win_amd64.whl", hash = "sha256:1357f5d9f8c4e31832d5254375631870fe9b4441af55281212e15bc37106dd81", size = 227458, upload-time = "2025-03-15T20:16:35.662Z" }, - { url = "https://files.pythonhosted.org/packages/bc/4e/e113d0403e35cd380c78f9b3680011f594d860da61c91516d5729e817696/interpn-0.2.5-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f366c9cd7cd353eaf6c633f6edb37842743121a6d162c72c888138b8f5bb6e54", size = 298793, upload-time = "2025-03-15T20:15:01.438Z" }, - { url = "https://files.pythonhosted.org/packages/23/da/4179ab27d62a7e3b79b4cfe6c97b8f9554a65bf06ce3895f803b5e89de17/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:efa80c0a8b4f9f9d42ca58d2c09ee77d07a425a8a80169c08d78dd1c26c77395", size = 297204, upload-time = "2025-03-15T20:13:10.306Z" }, - { url = "https://files.pythonhosted.org/packages/e0/07/f530f545922cdfc98dd3299686062ee6cc1904996b65a48cd847968c5772/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ad9cbb8f89e47edf609342dda40fd8638c75a93709e18f6e0dfe1bb9e93d85a", size = 311973, upload-time = "2025-03-15T20:13:31.903Z" }, - { url = "https://files.pythonhosted.org/packages/5b/87/d2aec9ad6c402dfc41cdb08d5715c5ad8830dde6d05f4ee809c5ee2ac0dc/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa4acb96a239819eb39818ffe7d82d313306485a75a07e6249752c7e366f87af", size = 331829, upload-time = "2025-03-15T20:13:50.759Z" }, - { url = "https://files.pythonhosted.org/packages/08/1b/2ddd4f4aa1403b489b2c0b7f92b7ed68aefff3f91248d98de9d46ba1065f/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4074bd754aaf1e7714267ac1fc129daa171ed296554ea4cd7104fdb14f451770", size = 402681, upload-time = "2025-03-15T20:14:08.6Z" }, - { url = "https://files.pythonhosted.org/packages/48/b5/c4db8a1c2c3be7a052eb732109e964ceb45ed143bc131d07e915a884e79e/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc66f157ecdc778c6a6b7377becbed55f7391da7ca44899c878ec3d1d2c4ccb2", size = 317149, upload-time = "2025-03-15T20:14:42.008Z" }, - { url = "https://files.pythonhosted.org/packages/71/d9/da5a2bf88225905dfb12757c41d014b54e9fb18d71b4fd3953678750b317/interpn-0.2.5-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e6c14c706d6ad2e3ad2ef6cb20f52fab9506a042df9c1b8e2eb7e97a2ab59165", size = 331646, upload-time = "2025-03-15T20:14:26.947Z" }, - { url = "https://files.pythonhosted.org/packages/93/25/f45e72cae13bfefcf351716bb4f9bbc8af0ec1d541240a25aae5815480ed/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:b19afc8131d0d076a5e61570def4003b1e99d84bfa816c0eeb37a2493f9232da", size = 477238, upload-time = "2025-03-15T20:15:15.875Z" }, - { url = "https://files.pythonhosted.org/packages/67/5a/11231a1dff52ecc555bcde40b3e0e1b78b2596b126fa04b3737dc26f2efb/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:00661beee381f518b3f6ff53a5dbf33317c5a4da73bbc85a05fca02a3580021a", size = 575445, upload-time = "2025-03-15T20:15:35.976Z" }, - { url = "https://files.pythonhosted.org/packages/a4/f2/316dfb94e7f411b5745add23d1cf2240bcf2cd91bedb14a6983f8a853dd7/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:868b6259b737cf0ccfb2d4e5ebc4b1f06fd15731586450359ea693ce830bf99b", size = 510046, upload-time = "2025-03-15T20:15:57.836Z" }, - { url = "https://files.pythonhosted.org/packages/ef/1e/7689759ad6f870d993c7c0154a0fbbd7a401ad96fc4a9538bc9d21fc226e/interpn-0.2.5-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:21bf77a6ba27313ca436b15b3f420901fa85a22c105c58b6bad6b219ab235a26", size = 488971, upload-time = "2025-03-15T20:16:17.847Z" }, - { url = "https://files.pythonhosted.org/packages/14/5e/8e2e50e8662af4ce24cf5b651f65d348ce47d1ab4bb2fbaf758da4865224/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c15b4d79b9f5f789355d10656b88aaa93659269385e92c481bb95a15294ad5", size = 297019, upload-time = "2025-03-15T20:13:11.909Z" }, - { url = "https://files.pythonhosted.org/packages/61/04/cdfd7fdb865fd17f88e766cb19bd989fe866923ddc36bad2c883ce337834/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b61915f7dd5350e6d6bb6d875519753acd3bca9c4df50ea93c2d7912f58227", size = 311997, upload-time = "2025-03-15T20:13:32.889Z" }, - { url = "https://files.pythonhosted.org/packages/3c/c0/0b023f22a773794e574e1fce45d34476ed61a01d6c4b713784e91ba7d5ed/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d6072633c19580d206966cdfc864ad7f915bd14b10861f98bdc2cef211f0772a", size = 331792, upload-time = "2025-03-15T20:13:51.793Z" }, - { url = "https://files.pythonhosted.org/packages/c9/b1/60ccae13ef89e30fd82eb4c0be3429e2697c78d7e31c7477d4ae157bee5d/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8cd3e2ad62dda365f1e9a9f9427f611a9f8cc47ce94adba57260e38db7269823", size = 402369, upload-time = "2025-03-15T20:14:09.814Z" }, - { url = "https://files.pythonhosted.org/packages/d0/29/59d2f2682d1cf7a4158de9018427e27b03569527709504e9aedc7b450231/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac56d3d7d6bbf64103a446e617c172df57a8ee818c919711a00af77a64ae4194", size = 316947, upload-time = "2025-03-15T20:14:43.051Z" }, - { url = "https://files.pythonhosted.org/packages/0f/cf/3a050d8bd0b98e1463709a42c8f53451a30d489e4ff6db8aed3d12206a8a/interpn-0.2.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6dc8a4fc4bf7fce2718f093745821e81c983d1596bd051d80479fdaf60b00026", size = 331731, upload-time = "2025-03-15T20:14:28.001Z" }, - { url = "https://files.pythonhosted.org/packages/79/d7/bbf08dcce8c46c33dfb7ad0664304b9f8a072e36928a66710924a579f3e0/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:1c8b226405d129daf9c69c2476cc8c3baedcccb1e045b15f28e298ca5267a9d3", size = 477113, upload-time = "2025-03-15T20:15:16.939Z" }, - { url = "https://files.pythonhosted.org/packages/22/ff/9700d72748ab0d8216b695fe312d9d7843cc517e9cd25a3137e0df19fb8e/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:2acd17ea0a2b2761ba79d0519a9bc43b241259a338bebfc9ae267232e1c691d6", size = 575417, upload-time = "2025-03-15T20:15:37.107Z" }, - { url = "https://files.pythonhosted.org/packages/cb/f7/05d8ff645041d8b1e255cec937e0492046ecae097bfa8c353d68e5389c5b/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:dbefb8d4c20e2821b89b987ed98ee29b536f2c467cb8347e1a0cf0a7d6d807c2", size = 509959, upload-time = "2025-03-15T20:15:58.958Z" }, - { url = "https://files.pythonhosted.org/packages/92/80/ae23ab2f09b8af4afef3542c85f2284114a6f2dde6b0aff44716d4c601aa/interpn-0.2.5-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:44153189517d3d9d8d9dfc76c5e413350157b5bf54d5c4bdfd3c4bb4d1593cb7", size = 488692, upload-time = "2025-03-15T20:16:18.97Z" }, - { url = "https://files.pythonhosted.org/packages/8c/89/6c03eb2edc99078bbcdb70674786672b9ea37a2ddda86ea9df0f66db3fe1/interpn-0.2.5-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b4551ae49394d8e0f64e352389ef5fa4a8e131e8c87c9d92c4280f9374ffa489", size = 299007, upload-time = "2025-03-15T20:15:02.719Z" }, - { url = "https://files.pythonhosted.org/packages/41/b3/25f2f30ddadf3bb3cf261ed4bc17e563b4b08d38400296bf8859799d9e5a/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:927c9017871e68f548206c3408db3bbb49ed9227fadc7893382a715e9163d4ae", size = 297265, upload-time = "2025-03-15T20:13:12.949Z" }, - { url = "https://files.pythonhosted.org/packages/0a/b5/f6c78fdb90314849d1054f8165a12fb5795da119007a5ca424e51292349a/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e9f2d73ad48d282a918ee012d1706e30117011315a56f45e09487fa09f8a3baa", size = 312240, upload-time = "2025-03-15T20:13:34.12Z" }, - { url = "https://files.pythonhosted.org/packages/f2/d5/7990c58b9e2e616f998c2f125fa43fd401bedf8819ef37edd1c75b6a95be/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1fb4acbfd75c811639da792437630d6b2bc0e52c1fc61bf1ceff7782dbc1af59", size = 331858, upload-time = "2025-03-15T20:13:52.796Z" }, - { url = "https://files.pythonhosted.org/packages/06/90/8dc7dfc82ba55505566ae86ce15f9926de104b8cc443da855f86e18aeec7/interpn-0.2.5-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:66940619faeebfe2bc797e94733ce657db171d3d3688f8343faca12ee36e4d52", size = 403018, upload-time = "2025-03-15T20:14:10.94Z" }, - { url = "https://files.pythonhosted.org/packages/09/51/4badf7f6ef14c0440e1291693b7e8158128b37a30ec9cf454e0a592d49d7/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:c469ef6b62da860dd52b3906fff2540bc8a7607d95f74bfda811d56ba5ef1a60", size = 477319, upload-time = "2025-03-15T20:15:18.05Z" }, - { url = "https://files.pythonhosted.org/packages/cd/d2/a6e87a64d7f0cea3eebd972bd118d03633d3dd85b45ab062e485196e8187/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl", hash = "sha256:1195aa4a7f7e46ef998f55755a4a002a7cc515a3648e4ad4ba0240c3f9f7fc3c", size = 575699, upload-time = "2025-03-15T20:15:38.676Z" }, - { url = "https://files.pythonhosted.org/packages/9f/ba/e8e0d454898a1110cb9702d9efb6854d72511e8f06af0b1c612517cebfa6/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:83b846b635113822adda5ea62edc0e7f08167e05d5857cc1a4d913cbb4c8a957", size = 510217, upload-time = "2025-03-15T20:16:00.493Z" }, - { url = "https://files.pythonhosted.org/packages/a2/59/fd7fe1e0cba677d3312813c564c62df54785a94a4131e71b8c09b8b620f8/interpn-0.2.5-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:bbe0d1fd5037ac678dc5acd1fa3311f3a64663ad1fdaf161275c24e68079e6e4", size = 488993, upload-time = "2025-03-15T20:16:20.077Z" }, +sdist = { url = "https://files.pythonhosted.org/packages/13/1a/bd5359bef76e20b5157d8b5292606513f7237451ffb91b9d1cdf6bd06804/interpn-0.6.1.tar.gz", hash = "sha256:747ce648e8bb158ea14771c5e8499944e98a29f2c3d5c45385c9a03747f28cfe", size = 428165, upload-time = "2025-10-11T15:51:04.669Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d5/cec7f100e900309550427889720e40a2119c58f18c26fb0afd427376a0c9/interpn-0.6.1-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:b7953b51307c9fdf32f9adaf2ae34a1e9b6ef2c22b64dccf2cecefcd8a8c6bf3", size = 374273, upload-time = "2025-10-11T15:50:57.696Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bd/43714c3fc939ab74e9e745a1a49114f33c77e32c52b665b23b17e77334ab/interpn-0.6.1-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:8d6054ca2c01922af06b49c9e0a670aa0bffcc49ddc956dc4b18aa932c29af8a", size = 346901, upload-time = "2025-10-11T15:50:56.387Z" }, + { url = "https://files.pythonhosted.org/packages/c5/a0/918666bc675ab3333a46fcf116933c906f211384e2509364c88ec13c1346/interpn-0.6.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d4208297ee027b152f11d86f8ea70d07772df04ac9dcbaf986f513775d66d0", size = 378879, upload-time = "2025-10-11T15:50:49.189Z" }, + { url = "https://files.pythonhosted.org/packages/93/e7/e79f9ab9928f6fe5071d50aa58b8906d29c8227c62878d62535dd3315f49/interpn-0.6.1-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:32bd689fb850fa0af2539010158dc4af87b96fe8d1a70cfdec1eb853d6b0f553", size = 407780, upload-time = "2025-10-11T15:50:50.779Z" }, + { url = "https://files.pythonhosted.org/packages/8c/d4/e02454020b92b0858327e1f1d96c35b44a84722d310f6e5805c53e68288a/interpn-0.6.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cccebb5bf66da1e02b2aaf931326d0fb1844aabf78306934ba42a36eb1db271", size = 411581, upload-time = "2025-10-11T15:50:52.055Z" }, + { url = "https://files.pythonhosted.org/packages/b3/8d/a4ab406aec6e9011acf4c6f8cfbef54f92fc1da6ba9b6b19df8ffa50f377/interpn-0.6.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2478be0a66f2b4dcb385dec2b047d6755cc066e8a4ec229f02f4e47bd1e9efe2", size = 483271, upload-time = "2025-10-11T15:50:53.832Z" }, + { url = "https://files.pythonhosted.org/packages/4d/a4/55dd625ed7ae7c6d18290489a29288b137e6a3f4be6225e26b5582fac501/interpn-0.6.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7e115473971ed4a4134ebafd5d4604954ebbb5b9b545bc6e8ff9b0830ea1b79", size = 402498, upload-time = "2025-10-11T15:50:55.111Z" }, + { url = "https://files.pythonhosted.org/packages/10/e2/77df3764b0eaa11bee2a50c3fce14311bff490d29fa3200cc0bd2913dc95/interpn-0.6.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5cf134d2ccce701c31be8e0fd4df4ddf53bfb41878fcd7c8414c61a1381a81ac", size = 560577, upload-time = "2025-10-11T15:50:59.152Z" }, + { url = "https://files.pythonhosted.org/packages/63/c0/d1e45a06838cc3c92871536e5dcd6eedcd0050270c5234356d0837735e3e/interpn-0.6.1-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:75d8a8e9c741753523459f045d39fcc723c6dce61d69d5cc74eedaac49b852f1", size = 671732, upload-time = "2025-10-11T15:51:00.507Z" }, + { url = "https://files.pythonhosted.org/packages/fa/14/4e4d799b244c5a146d69fb743d3d9a5066fbea7dea58ab282212b574065e/interpn-0.6.1-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:196b48d9b6e91d82e247c065767b1566435ca319b58e6a0116516f93ea8e77bd", size = 628905, upload-time = "2025-10-11T15:51:01.912Z" }, + { url = "https://files.pythonhosted.org/packages/ca/f9/d51be2d4bc071566fa8e855077dac4ead8026fcc9df5ce3df276d6708089/interpn-0.6.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:768b0a70d09b41a65f9b358760fca88e44b082b2366774b032fc0347147e6334", size = 574557, upload-time = "2025-10-11T15:51:03.365Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ae/bf2b6aaff08fd8a60bd2e74d8b2fffc05542c71faf9a69ac582744e24cd5/interpn-0.6.1-cp39-abi3-win32.whl", hash = "sha256:a47d34e115bfb0a2061e2bd381036e887129900739b9bddfb8156d584bcfb165", size = 322824, upload-time = "2025-10-11T15:51:07.679Z" }, + { url = "https://files.pythonhosted.org/packages/eb/54/c9e66b17638fa6999df1833371586903b7cf26c656d25b19b41f75d9cd44/interpn-0.6.1-cp39-abi3-win_amd64.whl", hash = "sha256:f607e19094a15676f1687bb8aef5d7761e6323e243099c6245634bf04a9dc27b", size = 287256, upload-time = "2025-10-11T15:51:05.965Z" }, ] [[package]]