interpn 0.2.5__tar.gz → 0.2.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. {interpn-0.2.5 → interpn-0.2.6}/.github/workflows/CI.yml +6 -4
  2. {interpn-0.2.5 → interpn-0.2.6}/CHANGELOG.md +12 -0
  3. {interpn-0.2.5 → interpn-0.2.6}/Cargo.lock +53 -22
  4. {interpn-0.2.5 → interpn-0.2.6}/Cargo.toml +6 -5
  5. interpn-0.2.6/PKG-INFO +29 -0
  6. interpn-0.2.6/docs/1d_quality_of_fit_Rectilinear.svg +3807 -0
  7. {interpn-0.2.5 → interpn-0.2.6}/docs/1d_quality_of_fit_Regular.svg +1762 -1782
  8. interpn-0.2.6/docs/2d_quality_of_fit_Rectilinear.svg +3405 -0
  9. interpn-0.2.6/docs/2d_quality_of_fit_Regular.svg +3423 -0
  10. {interpn-0.2.5 → interpn-0.2.6}/docs/3d_throughput_vs_nobs.svg +647 -605
  11. {interpn-0.2.5 → interpn-0.2.6}/docs/3d_throughput_vs_nobs_prealloc.svg +692 -650
  12. {interpn-0.2.5 → interpn-0.2.6}/docs/6d_throughput_vs_nobs.svg +727 -705
  13. {interpn-0.2.5 → interpn-0.2.6}/docs/6d_throughput_vs_nobs_prealloc.svg +786 -757
  14. {interpn-0.2.5 → interpn-0.2.6}/docs/throughput_vs_dims_1000_obs.svg +642 -629
  15. interpn-0.2.6/docs/throughput_vs_dims_1_obs.svg +2268 -0
  16. {interpn-0.2.5 → interpn-0.2.6}/pyproject.toml +1 -1
  17. {interpn-0.2.5 → interpn-0.2.6}/src/lib.rs +40 -69
  18. {interpn-0.2.5 → interpn-0.2.6}/test/bench_cpu.py +28 -6
  19. interpn-0.2.6/uv.lock +2123 -0
  20. interpn-0.2.5/PKG-INFO +0 -143
  21. interpn-0.2.5/docs/1d_quality_of_fit_Rectilinear.svg +0 -5356
  22. interpn-0.2.5/docs/2d_quality_of_fit_Rectilinear.svg +0 -3435
  23. interpn-0.2.5/docs/2d_quality_of_fit_Regular.svg +0 -3458
  24. interpn-0.2.5/docs/throughput_vs_dims_1_obs.svg +0 -2185
  25. {interpn-0.2.5 → interpn-0.2.6}/.cargo/config.toml +0 -0
  26. {interpn-0.2.5 → interpn-0.2.6}/.github/workflows/test.yml +0 -0
  27. {interpn-0.2.5 → interpn-0.2.6}/.gitignore +0 -0
  28. {interpn-0.2.5 → interpn-0.2.6}/.readthedocs.yml +0 -0
  29. {interpn-0.2.5 → interpn-0.2.6}/LICENSE-APACHE +0 -0
  30. {interpn-0.2.5 → interpn-0.2.6}/LICENSE-MIT +0 -0
  31. {interpn-0.2.5 → interpn-0.2.6}/README.md +0 -0
  32. {interpn-0.2.5 → interpn-0.2.6}/docs/API_Docs.md +0 -0
  33. {interpn-0.2.5 → interpn-0.2.6}/docs/index.md +0 -0
  34. {interpn-0.2.5 → interpn-0.2.6}/docs/perf.md +0 -0
  35. {interpn-0.2.5 → interpn-0.2.6}/docs/ram_vs_dims.svg +0 -0
  36. {interpn-0.2.5 → interpn-0.2.6}/docs/requirements.txt +0 -0
  37. {interpn-0.2.5 → interpn-0.2.6}/examples/cubic_comparison.py +0 -0
  38. {interpn-0.2.5 → interpn-0.2.6}/interpn/__init__.py +0 -0
  39. {interpn-0.2.5 → interpn-0.2.6}/interpn/multicubic_rectilinear.py +0 -0
  40. {interpn-0.2.5 → interpn-0.2.6}/interpn/multicubic_regular.py +0 -0
  41. {interpn-0.2.5 → interpn-0.2.6}/interpn/multilinear_rectilinear.py +0 -0
  42. {interpn-0.2.5 → interpn-0.2.6}/interpn/multilinear_regular.py +0 -0
  43. {interpn-0.2.5 → interpn-0.2.6}/interpn/py.typed +0 -0
  44. {interpn-0.2.5 → interpn-0.2.6}/interpn/raw.py +0 -0
  45. {interpn-0.2.5 → interpn-0.2.6}/interpn/serialization.py +0 -0
  46. {interpn-0.2.5 → interpn-0.2.6}/mkdocs.yml +0 -0
  47. {interpn-0.2.5 → interpn-0.2.6}/test/bench_mem.py +0 -0
  48. {interpn-0.2.5 → interpn-0.2.6}/test/test_docs.py +0 -0
  49. {interpn-0.2.5 → interpn-0.2.6}/test/test_multicubic_rectilinear.py +0 -0
  50. {interpn-0.2.5 → interpn-0.2.6}/test/test_multicubic_regular.py +0 -0
  51. {interpn-0.2.5 → interpn-0.2.6}/test/test_multilinear_rectilinear.py +0 -0
  52. {interpn-0.2.5 → interpn-0.2.6}/test/test_multilinear_regular.py +0 -0
@@ -22,8 +22,9 @@ jobs:
22
22
  platform:
23
23
  - runner: ubuntu-22.04
24
24
  target: x86_64
25
- - runner: ubuntu-22.04
26
- target: x86
25
+ # Exclude 32-bit linux due to OOM issues during compilation & no demand
26
+ # - runner: ubuntu-22.04
27
+ # target: x86
27
28
  - runner: ubuntu-22.04
28
29
  target: aarch64
29
30
  - runner: ubuntu-22.04
@@ -40,7 +41,7 @@ jobs:
40
41
  uses: PyO3/maturin-action@v1
41
42
  with:
42
43
  target: ${{ matrix.platform.target }}
43
- args: --release --out dist --find-interpreter
44
+ args: --release --out dist --find-interpreter -j 1
44
45
  # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
45
46
  manylinux: auto
46
47
  - name: Upload wheels
@@ -94,11 +95,12 @@ jobs:
94
95
  - uses: actions/setup-python@v5
95
96
  with:
96
97
  architecture: ${{ matrix.platform.target }}
98
+ python-version: ${{ matrix.python-version }}
97
99
  - name: Build wheels
98
100
  uses: PyO3/maturin-action@v1
99
101
  with:
100
102
  target: ${{ matrix.platform.target }}
101
- args: --release --out dist --find-interpreter
103
+ args: --release --out dist
102
104
  # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }}
103
105
  - name: Upload wheels
104
106
  uses: actions/upload-artifact@v4
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.6 2025-09-27
4
+
5
+ 2-5x speedup and fully-analyzable call stack (no recursion) for lower dimensions
6
+ (1D-6D linear, 1D-4D cubic). Recursive methods still available for higher dimensions.
7
+
8
+ ### Changed
9
+
10
+ * Update rust deps
11
+ * Reduce boilerplate in bindings
12
+ * Update perf plots
13
+ * Use abi3-py39 for extension module build
14
+
3
15
  ## 0.2.5 2025-03-14
4
16
 
5
17
  ### Changed
@@ -4,7 +4,7 @@ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "_interpn"
7
- version = "0.1.5"
7
+ version = "0.2.6"
8
8
  dependencies = [
9
9
  "interpn",
10
10
  "numpy",
@@ -18,10 +18,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
18
18
  checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
19
19
 
20
20
  [[package]]
21
- name = "cfg-if"
22
- version = "1.0.0"
21
+ name = "cc"
22
+ version = "1.2.39"
23
23
  source = "registry+https://github.com/rust-lang/crates.io-index"
24
- checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
24
+ checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f"
25
+ dependencies = [
26
+ "find-msvc-tools",
27
+ "shlex",
28
+ ]
29
+
30
+ [[package]]
31
+ name = "crunchy"
32
+ version = "0.2.4"
33
+ source = "registry+https://github.com/rust-lang/crates.io-index"
34
+ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5"
35
+
36
+ [[package]]
37
+ name = "find-msvc-tools"
38
+ version = "0.1.2"
39
+ source = "registry+https://github.com/rust-lang/crates.io-index"
40
+ checksum = "1ced73b1dacfc750a6db6c0a0c3a3853c8b41997e2e2c563dc90804ae6867959"
25
41
 
26
42
  [[package]]
27
43
  name = "heck"
@@ -37,10 +53,11 @@ checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
37
53
 
38
54
  [[package]]
39
55
  name = "interpn"
40
- version = "0.4.5"
56
+ version = "0.5.0"
41
57
  source = "registry+https://github.com/rust-lang/crates.io-index"
42
- checksum = "02ec70afcc0ec878f809e229f179bcf0d6c800ce04b2c4e406bb1d8a7ea3205d"
58
+ checksum = "9d8ceb077fd88a2aae0756f6602730ac107f8a78a12ca2de5bc0f535dd66235c"
43
59
  dependencies = [
60
+ "crunchy",
44
61
  "num-traits",
45
62
  ]
46
63
 
@@ -118,9 +135,9 @@ dependencies = [
118
135
 
119
136
  [[package]]
120
137
  name = "numpy"
121
- version = "0.24.0"
138
+ version = "0.26.0"
122
139
  source = "registry+https://github.com/rust-lang/crates.io-index"
123
- checksum = "a7cfbf3f0feededcaa4d289fe3079b03659e85c5b5a177f4ba6fb01ab4fb3e39"
140
+ checksum = "9b2dba356160b54f5371b550575b78130a54718b4c6e46b3f33a6da74a27e78b"
124
141
  dependencies = [
125
142
  "libc",
126
143
  "ndarray",
@@ -134,9 +151,9 @@ dependencies = [
134
151
 
135
152
  [[package]]
136
153
  name = "once_cell"
137
- version = "1.19.0"
154
+ version = "1.21.3"
138
155
  source = "registry+https://github.com/rust-lang/crates.io-index"
139
- checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
156
+ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
140
157
 
141
158
  [[package]]
142
159
  name = "portable-atomic"
@@ -155,11 +172,10 @@ dependencies = [
155
172
 
156
173
  [[package]]
157
174
  name = "pyo3"
158
- version = "0.24.0"
175
+ version = "0.26.0"
159
176
  source = "registry+https://github.com/rust-lang/crates.io-index"
160
- checksum = "7f1c6c3591120564d64db2261bec5f910ae454f01def849b9c22835a84695e86"
177
+ checksum = "7ba0117f4212101ee6544044dae45abe1083d30ce7b29c4b5cbdfa2354e07383"
161
178
  dependencies = [
162
- "cfg-if",
163
179
  "indoc",
164
180
  "libc",
165
181
  "memoffset",
@@ -173,19 +189,19 @@ dependencies = [
173
189
 
174
190
  [[package]]
175
191
  name = "pyo3-build-config"
176
- version = "0.24.0"
192
+ version = "0.26.0"
177
193
  source = "registry+https://github.com/rust-lang/crates.io-index"
178
- checksum = "e9b6c2b34cf71427ea37c7001aefbaeb85886a074795e35f161f5aecc7620a7a"
194
+ checksum = "4fc6ddaf24947d12a9aa31ac65431fb1b851b8f4365426e182901eabfb87df5f"
179
195
  dependencies = [
180
- "once_cell",
196
+ "python3-dll-a",
181
197
  "target-lexicon",
182
198
  ]
183
199
 
184
200
  [[package]]
185
201
  name = "pyo3-ffi"
186
- version = "0.24.0"
202
+ version = "0.26.0"
187
203
  source = "registry+https://github.com/rust-lang/crates.io-index"
188
- checksum = "5507651906a46432cdda02cd02dd0319f6064f1374c9147c45b978621d2c3a9c"
204
+ checksum = "025474d3928738efb38ac36d4744a74a400c901c7596199e20e45d98eb194105"
189
205
  dependencies = [
190
206
  "libc",
191
207
  "pyo3-build-config",
@@ -193,9 +209,9 @@ dependencies = [
193
209
 
194
210
  [[package]]
195
211
  name = "pyo3-macros"
196
- version = "0.24.0"
212
+ version = "0.26.0"
197
213
  source = "registry+https://github.com/rust-lang/crates.io-index"
198
- checksum = "b0d394b5b4fd8d97d48336bb0dd2aebabad39f1d294edd6bcd2cccf2eefe6f42"
214
+ checksum = "2e64eb489f22fe1c95911b77c44cc41e7c19f3082fc81cce90f657cdc42ffded"
199
215
  dependencies = [
200
216
  "proc-macro2",
201
217
  "pyo3-macros-backend",
@@ -205,9 +221,9 @@ dependencies = [
205
221
 
206
222
  [[package]]
207
223
  name = "pyo3-macros-backend"
208
- version = "0.24.0"
224
+ version = "0.26.0"
209
225
  source = "registry+https://github.com/rust-lang/crates.io-index"
210
- checksum = "fd72da09cfa943b1080f621f024d2ef7e2773df7badd51aa30a2be1f8caa7c8e"
226
+ checksum = "100246c0ecf400b475341b8455a9213344569af29a3c841d29270e53102e0fcf"
211
227
  dependencies = [
212
228
  "heck",
213
229
  "proc-macro2",
@@ -216,6 +232,15 @@ dependencies = [
216
232
  "syn",
217
233
  ]
218
234
 
235
+ [[package]]
236
+ name = "python3-dll-a"
237
+ version = "0.2.14"
238
+ source = "registry+https://github.com/rust-lang/crates.io-index"
239
+ checksum = "d381ef313ae70b4da5f95f8a4de773c6aa5cd28f73adec4b4a31df70b66780d8"
240
+ dependencies = [
241
+ "cc",
242
+ ]
243
+
219
244
  [[package]]
220
245
  name = "quote"
221
246
  version = "1.0.36"
@@ -237,6 +262,12 @@ version = "2.1.1"
237
262
  source = "registry+https://github.com/rust-lang/crates.io-index"
238
263
  checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
239
264
 
265
+ [[package]]
266
+ name = "shlex"
267
+ version = "1.3.0"
268
+ source = "registry+https://github.com/rust-lang/crates.io-index"
269
+ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
270
+
240
271
  [[package]]
241
272
  name = "syn"
242
273
  version = "2.0.75"
@@ -1,7 +1,8 @@
1
1
  [package]
2
2
  name = "_interpn"
3
- version = "0.1.5"
4
- edition = "2021"
3
+ version = "0.2.6"
4
+ edition = "2024"
5
+ readme = "README.md"
5
6
 
6
7
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7
8
  [lib]
@@ -9,9 +10,9 @@ name = "_interpn"
9
10
  crate-type = ["cdylib"]
10
11
 
11
12
  [dependencies]
12
- pyo3 = "^0.24.0"
13
- numpy = "^0.24.0"
14
- interpn = {version = "0.4.5", default_features = false}
13
+ pyo3 = { version = "0.26.0", features = ["extension-module", "abi3-py39", "generate-import-lib"] }
14
+ numpy = "0.26.0"
15
+ interpn = {version = "0.5.0", default-features = false}
15
16
  #interpn = { path = "../interpn/interpn" }
16
17
 
17
18
  [profile.release]
interpn-0.2.6/PKG-INFO ADDED
@@ -0,0 +1,29 @@
1
+ Metadata-Version: 2.4
2
+ Name: interpn
3
+ Version: 0.2.6
4
+ Classifier: Programming Language :: Rust
5
+ Classifier: Programming Language :: Python :: Implementation :: CPython
6
+ Classifier: Programming Language :: Python :: Implementation :: PyPy
7
+ Requires-Dist: numpy>=2
8
+ Requires-Dist: pydantic>=2.5.2
9
+ Requires-Dist: pytest>=8.0 ; extra == 'test'
10
+ Requires-Dist: coverage>=7.3.2 ; extra == 'test'
11
+ Requires-Dist: ruff>=0.4.10 ; extra == 'test'
12
+ Requires-Dist: pyright==1.1.337 ; extra == 'test'
13
+ Requires-Dist: mktestdocs>=0.2.1 ; extra == 'test'
14
+ Requires-Dist: scipy>=1.11.4 ; extra == 'test'
15
+ Requires-Dist: matplotlib>=3.8 ; extra == 'test'
16
+ Requires-Dist: scipy>=1.11.4 ; extra == 'bench'
17
+ Requires-Dist: matplotlib>=3.8 ; extra == 'bench'
18
+ Requires-Dist: memory-profiler>=0.61.0 ; extra == 'bench'
19
+ Requires-Dist: mkdocs>=1.5.3 ; extra == 'doc'
20
+ Requires-Dist: mkdocstrings-python>=1.7.5 ; extra == 'doc'
21
+ Requires-Dist: mkdocs-material>=9.4.10 ; extra == 'doc'
22
+ Provides-Extra: test
23
+ Provides-Extra: bench
24
+ Provides-Extra: doc
25
+ License-File: LICENSE-APACHE
26
+ License-File: LICENSE-MIT
27
+ Summary: N-dimensional interpolation/extrapolation methods
28
+ Author-email: James Logan <jlogan03@gmail.com>
29
+ Requires-Python: >=3.9, <3.14