cfsem 2.1.0__tar.gz → 2.3.1__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 (46) hide show
  1. cfsem-2.3.1/.github/workflows/CI.yml +181 -0
  2. {cfsem-2.1.0 → cfsem-2.3.1}/.github/workflows/actions.yml +1 -1
  3. {cfsem-2.1.0 → cfsem-2.3.1}/CHANGELOG.md +30 -0
  4. {cfsem-2.1.0 → cfsem-2.3.1}/Cargo.lock +31 -145
  5. {cfsem-2.1.0 → cfsem-2.3.1}/Cargo.toml +4 -4
  6. {cfsem-2.1.0 → cfsem-2.3.1}/PKG-INFO +16 -16
  7. {cfsem-2.1.0 → cfsem-2.3.1}/README.md +1 -1
  8. {cfsem-2.1.0 → cfsem-2.3.1}/cfsem/__init__.py +45 -16
  9. {cfsem-2.1.0 → cfsem-2.3.1}/cfsem/bindings.py +212 -73
  10. {cfsem-2.1.0 → cfsem-2.3.1}/docs/index.md +1 -1
  11. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/flux_density.md +4 -0
  12. cfsem-2.3.1/docs/python/force.md +5 -0
  13. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/inductance.md +2 -0
  14. {cfsem-2.1.0 → cfsem-2.3.1}/pyproject.toml +5 -6
  15. cfsem-2.3.1/src/lib.rs +776 -0
  16. {cfsem-2.1.0 → cfsem-2.3.1}/test/test_electromagnetics.py +129 -14
  17. {cfsem-2.1.0 → cfsem-2.3.1}/test/test_funcs.py +18 -2
  18. cfsem-2.1.0/.github/workflows/CI.yml +0 -119
  19. cfsem-2.1.0/src/lib.rs +0 -595
  20. {cfsem-2.1.0 → cfsem-2.3.1}/.cargo/config.toml +0 -0
  21. {cfsem-2.1.0 → cfsem-2.3.1}/.gitignore +0 -0
  22. {cfsem-2.1.0 → cfsem-2.3.1}/.readthedocs.yml +0 -0
  23. {cfsem-2.1.0 → cfsem-2.3.1}/CONTRIBUTING.md +0 -0
  24. {cfsem-2.1.0 → cfsem-2.3.1}/LICENSE +0 -0
  25. {cfsem-2.1.0 → cfsem-2.3.1}/build_docs.sh +0 -0
  26. {cfsem-2.1.0 → cfsem-2.3.1}/cfsem/py.typed +0 -0
  27. {cfsem-2.1.0 → cfsem-2.3.1}/cfsem/types.py +0 -0
  28. {cfsem-2.1.0 → cfsem-2.3.1}/docs/assets/logo.svg +0 -0
  29. {cfsem-2.1.0 → cfsem-2.3.1}/docs/javascripts/mathjax.js +0 -0
  30. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/example_outputs/.placeholder +0 -0
  31. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/examples.md +0 -0
  32. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/filament.md +0 -0
  33. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/grad_shafranov.md +0 -0
  34. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/math.md +0 -0
  35. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/types.md +0 -0
  36. {cfsem-2.1.0 → cfsem-2.3.1}/docs/python/vector_potential.md +0 -0
  37. {cfsem-2.1.0 → cfsem-2.3.1}/docs/requirements.txt +0 -0
  38. {cfsem-2.1.0 → cfsem-2.3.1}/docs/stylesheets/extra.css +0 -0
  39. {cfsem-2.1.0 → cfsem-2.3.1}/examples/helmholtz.py +0 -0
  40. {cfsem-2.1.0 → cfsem-2.3.1}/examples/inductance.py +0 -0
  41. {cfsem-2.1.0 → cfsem-2.3.1}/mkdocs.yml +0 -0
  42. {cfsem-2.1.0 → cfsem-2.3.1}/test/__init__.py +0 -0
  43. {cfsem-2.1.0 → cfsem-2.3.1}/test/test_examples.py +0 -0
  44. {cfsem-2.1.0 → cfsem-2.3.1}/test/test_filaments.py +0 -0
  45. {cfsem-2.1.0 → cfsem-2.3.1}/test/test_gradshafranov.py +0 -0
  46. {cfsem-2.1.0 → cfsem-2.3.1}/test/test_math.py +0 -0
@@ -0,0 +1,181 @@
1
+ # This file is autogenerated by maturin v1.8.2
2
+ # To update, run
3
+ #
4
+ # maturin generate-ci github
5
+ #
6
+ name: CI
7
+
8
+ on:
9
+ push:
10
+ branches:
11
+ - release
12
+ workflow_dispatch:
13
+
14
+ permissions:
15
+ contents: read
16
+
17
+ jobs:
18
+ linux:
19
+ runs-on: ${{ matrix.platform.runner }}
20
+ strategy:
21
+ matrix:
22
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
23
+ platform:
24
+ - runner: ubuntu-22.04
25
+ target: x86_64
26
+ - runner: ubuntu-22.04
27
+ target: x86
28
+ - runner: ubuntu-22.04
29
+ target: aarch64
30
+ - runner: ubuntu-22.04
31
+ target: armv7
32
+ - runner: ubuntu-22.04
33
+ target: s390x
34
+ - runner: ubuntu-22.04
35
+ target: ppc64le
36
+ steps:
37
+ - uses: actions/checkout@v4
38
+ - uses: actions/setup-python@v5
39
+ with:
40
+ python-version: ${{ matrix.python-version }}
41
+ - name: Build wheels
42
+ uses: PyO3/maturin-action@v1
43
+ with:
44
+ target: ${{ matrix.platform.target }}
45
+ args: --release --out dist --find-interpreter
46
+ sccache: 'true'
47
+ manylinux: auto
48
+ - name: Upload wheels
49
+ uses: actions/upload-artifact@v4
50
+ with:
51
+ name: wheels-linux-${{ matrix.platform.target }}-py${{ matrix.python-version }}
52
+ path: dist
53
+
54
+ musllinux:
55
+ runs-on: ${{ matrix.platform.runner }}
56
+ strategy:
57
+ matrix:
58
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
59
+ platform:
60
+ - runner: ubuntu-22.04
61
+ target: x86_64
62
+ - runner: ubuntu-22.04
63
+ target: x86
64
+ - runner: ubuntu-22.04
65
+ target: aarch64
66
+ - runner: ubuntu-22.04
67
+ target: armv7
68
+ steps:
69
+ - uses: actions/checkout@v4
70
+ - uses: actions/setup-python@v5
71
+ with:
72
+ python-version: ${{ matrix.python-version }}
73
+ - name: Build wheels
74
+ uses: PyO3/maturin-action@v1
75
+ with:
76
+ target: ${{ matrix.platform.target }}
77
+ args: --release --out dist --find-interpreter
78
+ sccache: 'true'
79
+ manylinux: musllinux_1_2
80
+ - name: Upload wheels
81
+ uses: actions/upload-artifact@v4
82
+ with:
83
+ name: wheels-musllinux-${{ matrix.platform.target }}-py${{ matrix.python-version }}
84
+ path: dist
85
+
86
+ windows:
87
+ runs-on: ${{ matrix.platform.runner }}
88
+ strategy:
89
+ matrix:
90
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
91
+ platform:
92
+ - runner: windows-latest
93
+ target: x64
94
+ - runner: windows-latest
95
+ target: x86
96
+ steps:
97
+ - uses: actions/checkout@v4
98
+ - uses: actions/setup-python@v5
99
+ with:
100
+ python-version: ${{ matrix.python-version }}
101
+ architecture: ${{ matrix.platform.target }}
102
+ - name: Build wheels
103
+ uses: PyO3/maturin-action@v1
104
+ with:
105
+ target: ${{ matrix.platform.target }}
106
+ args: --release --out dist --find-interpreter
107
+ sccache: 'true'
108
+ - name: Upload wheels
109
+ uses: actions/upload-artifact@v4
110
+ with:
111
+ name: wheels-windows-${{ matrix.platform.target }}-py${{ matrix.python-version }}
112
+ path: dist
113
+
114
+ macos:
115
+ runs-on: ${{ matrix.platform.runner }}
116
+ strategy:
117
+ matrix:
118
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
119
+ platform:
120
+ - runner: macos-13
121
+ target: x86_64
122
+ - runner: macos-14
123
+ target: aarch64
124
+ steps:
125
+ - uses: actions/checkout@v4
126
+ - uses: actions/setup-python@v5
127
+ with:
128
+ python-version: ${{ matrix.python-version }}
129
+ - name: Build wheels
130
+ uses: PyO3/maturin-action@v1
131
+ with:
132
+ target: ${{ matrix.platform.target }}
133
+ args: --release --out dist --find-interpreter
134
+ sccache: 'true'
135
+ - name: Upload wheels
136
+ uses: actions/upload-artifact@v4
137
+ with:
138
+ name: wheels-macos-${{ matrix.platform.target }}-py${{ matrix.python-version }}
139
+ path: dist
140
+
141
+ sdist:
142
+ runs-on: ubuntu-latest
143
+ steps:
144
+ - uses: actions/checkout@v4
145
+ - name: Build sdist
146
+ uses: PyO3/maturin-action@v1
147
+ with:
148
+ command: sdist
149
+ args: --out dist
150
+ - name: Upload sdist
151
+ uses: actions/upload-artifact@v4
152
+ with:
153
+ name: wheels-sdist
154
+ path: dist
155
+
156
+ release:
157
+ name: Release
158
+ runs-on: ubuntu-latest
159
+ #if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }}
160
+ needs: [linux, musllinux, windows, macos, sdist]
161
+ permissions:
162
+ # Use to sign the release artifacts
163
+ id-token: write
164
+ # Used to upload release artifacts
165
+ contents: write
166
+ # Used to generate artifact attestation
167
+ attestations: write
168
+ steps:
169
+ - uses: actions/download-artifact@v4
170
+ - name: Generate artifact attestation
171
+ uses: actions/attest-build-provenance@v1
172
+ with:
173
+ subject-path: 'wheels-*/*'
174
+ - name: Publish to PyPI
175
+ #if: ${{ startsWith(github.ref, 'refs/tags/') }}
176
+ uses: PyO3/maturin-action@v1
177
+ env:
178
+ MATURIN_PYPI_TOKEN: ${{ secrets.MATURIN_PASSWORD }}
179
+ with:
180
+ command: upload
181
+ args: --non-interactive --skip-existing wheels-*/*
@@ -15,7 +15,7 @@ jobs:
15
15
  timeout-minutes: 15
16
16
  strategy:
17
17
  matrix:
18
- python-version: ['3.9', '3.10', '3.11', '3.12']
18
+ python-version: ['3.9', '3.10', '3.11', '3.12', '3.13']
19
19
 
20
20
  steps:
21
21
  - uses: actions/checkout@v3
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.3.1 2025-03-19
4
+
5
+ ### Changed
6
+
7
+ * Update rust to 2024 edition
8
+ * Update pyo3 rust dep version to resolve conditional compilation issue in build for linux arm/aarch64
9
+
10
+ ## 2.3.0 2025-03-19
11
+
12
+ ### Added
13
+
14
+ * Add support for python 3.13
15
+
16
+ ## 2.2.0 2025-02-03
17
+
18
+ ### Added
19
+
20
+ * Add circular-to-linear filament bridge functions
21
+ * B-field and mutual inductance
22
+ * Much faster and more accurate than discretizing loops and using linear filament functions, and more cross-platform consistent than doing coordinate conversions on circular filament methods at the python level
23
+ * Add dipole flux density function
24
+ * Add JxB body force density functions
25
+ * Add run-time assertions to check domain of validity of Lyle's method for self-inductance
26
+
27
+ ### Changed
28
+
29
+ * Roll rust bindings forward to latest numpy and pyo3
30
+ * Update interfaces with rust functions that have changed their function signature
31
+ * Update python bindings with convenience functions for making inputs contiguous and flat, to reduce repetition
32
+
3
33
  ## 2.1.0 2024-08-27
4
34
 
5
35
  ### Added
@@ -1,6 +1,6 @@
1
1
  # This file is automatically @generated by Cargo.
2
2
  # It is not intended for manual editing.
3
- version = 3
3
+ version = 4
4
4
 
5
5
  [[package]]
6
6
  name = "_cfsem"
@@ -26,12 +26,6 @@ version = "1.3.0"
26
26
  source = "registry+https://github.com/rust-lang/crates.io-index"
27
27
  checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
28
28
 
29
- [[package]]
30
- name = "bitflags"
31
- version = "2.5.0"
32
- source = "registry+https://github.com/rust-lang/crates.io-index"
33
- checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
34
-
35
29
  [[package]]
36
30
  name = "bytemuck"
37
31
  version = "1.16.0"
@@ -46,11 +40,13 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
46
40
 
47
41
  [[package]]
48
42
  name = "cfsem"
49
- version = "1.1.0"
43
+ version = "2.0.0"
50
44
  source = "registry+https://github.com/rust-lang/crates.io-index"
51
- checksum = "2b3e27e61569347c86debb5a8032a62c7acb3b6da51d14f68dd948cf7625dd79"
45
+ checksum = "756becb9d9fc8fed74e794677856d42436525ba318adeb6943e7829ab5943b06"
52
46
  dependencies = [
47
+ "libm",
53
48
  "nalgebra",
49
+ "num-traits",
54
50
  "rayon",
55
51
  ]
56
52
 
@@ -87,9 +83,9 @@ checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
87
83
 
88
84
  [[package]]
89
85
  name = "heck"
90
- version = "0.4.1"
86
+ version = "0.5.0"
91
87
  source = "registry+https://github.com/rust-lang/crates.io-index"
92
- checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
88
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
93
89
 
94
90
  [[package]]
95
91
  name = "indoc"
@@ -104,14 +100,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
104
100
  checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
105
101
 
106
102
  [[package]]
107
- name = "lock_api"
108
- version = "0.4.12"
103
+ name = "libm"
104
+ version = "0.2.11"
109
105
  source = "registry+https://github.com/rust-lang/crates.io-index"
110
- checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
111
- dependencies = [
112
- "autocfg",
113
- "scopeguard",
114
- ]
106
+ checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa"
115
107
 
116
108
  [[package]]
117
109
  name = "matrixmultiply"
@@ -134,9 +126,9 @@ dependencies = [
134
126
 
135
127
  [[package]]
136
128
  name = "nalgebra"
137
- version = "0.33.0"
129
+ version = "0.33.2"
138
130
  source = "registry+https://github.com/rust-lang/crates.io-index"
139
- checksum = "3c4b5f057b303842cf3262c27e465f4c303572e7f6b0648f60e16248ac3397f4"
131
+ checksum = "26aecdf64b707efd1310e3544d709c5c0ac61c13756046aaaba41be5c4f66a3b"
140
132
  dependencies = [
141
133
  "approx",
142
134
  "matrixmultiply",
@@ -218,13 +210,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
218
210
  checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
219
211
  dependencies = [
220
212
  "autocfg",
213
+ "libm",
221
214
  ]
222
215
 
223
216
  [[package]]
224
217
  name = "numpy"
225
- version = "0.21.0"
218
+ version = "0.24.0"
226
219
  source = "registry+https://github.com/rust-lang/crates.io-index"
227
- checksum = "ec170733ca37175f5d75a5bea5911d6ff45d2cd52849ce98b685394e4f2f37f4"
220
+ checksum = "a7cfbf3f0feededcaa4d289fe3079b03659e85c5b5a177f4ba6fb01ab4fb3e39"
228
221
  dependencies = [
229
222
  "libc",
230
223
  "ndarray",
@@ -232,6 +225,7 @@ dependencies = [
232
225
  "num-integer",
233
226
  "num-traits",
234
227
  "pyo3",
228
+ "pyo3-build-config",
235
229
  "rustc-hash",
236
230
  ]
237
231
 
@@ -241,29 +235,6 @@ version = "1.19.0"
241
235
  source = "registry+https://github.com/rust-lang/crates.io-index"
242
236
  checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
243
237
 
244
- [[package]]
245
- name = "parking_lot"
246
- version = "0.12.3"
247
- source = "registry+https://github.com/rust-lang/crates.io-index"
248
- checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
249
- dependencies = [
250
- "lock_api",
251
- "parking_lot_core",
252
- ]
253
-
254
- [[package]]
255
- name = "parking_lot_core"
256
- version = "0.9.10"
257
- source = "registry+https://github.com/rust-lang/crates.io-index"
258
- checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
259
- dependencies = [
260
- "cfg-if",
261
- "libc",
262
- "redox_syscall",
263
- "smallvec",
264
- "windows-targets",
265
- ]
266
-
267
238
  [[package]]
268
239
  name = "paste"
269
240
  version = "1.0.15"
@@ -287,15 +258,15 @@ dependencies = [
287
258
 
288
259
  [[package]]
289
260
  name = "pyo3"
290
- version = "0.21.2"
261
+ version = "0.24.0"
291
262
  source = "registry+https://github.com/rust-lang/crates.io-index"
292
- checksum = "a5e00b96a521718e08e03b1a622f01c8a8deb50719335de3f60b3b3950f069d8"
263
+ checksum = "7f1c6c3591120564d64db2261bec5f910ae454f01def849b9c22835a84695e86"
293
264
  dependencies = [
294
265
  "cfg-if",
295
266
  "indoc",
296
267
  "libc",
297
268
  "memoffset",
298
- "parking_lot",
269
+ "once_cell",
299
270
  "portable-atomic",
300
271
  "pyo3-build-config",
301
272
  "pyo3-ffi",
@@ -305,9 +276,9 @@ dependencies = [
305
276
 
306
277
  [[package]]
307
278
  name = "pyo3-build-config"
308
- version = "0.21.2"
279
+ version = "0.24.0"
309
280
  source = "registry+https://github.com/rust-lang/crates.io-index"
310
- checksum = "7883df5835fafdad87c0d888b266c8ec0f4c9ca48a5bed6bbb592e8dedee1b50"
281
+ checksum = "e9b6c2b34cf71427ea37c7001aefbaeb85886a074795e35f161f5aecc7620a7a"
311
282
  dependencies = [
312
283
  "once_cell",
313
284
  "target-lexicon",
@@ -315,9 +286,9 @@ dependencies = [
315
286
 
316
287
  [[package]]
317
288
  name = "pyo3-ffi"
318
- version = "0.21.2"
289
+ version = "0.24.0"
319
290
  source = "registry+https://github.com/rust-lang/crates.io-index"
320
- checksum = "01be5843dc60b916ab4dad1dca6d20b9b4e6ddc8e15f50c47fe6d85f1fb97403"
291
+ checksum = "5507651906a46432cdda02cd02dd0319f6064f1374c9147c45b978621d2c3a9c"
321
292
  dependencies = [
322
293
  "libc",
323
294
  "pyo3-build-config",
@@ -325,9 +296,9 @@ dependencies = [
325
296
 
326
297
  [[package]]
327
298
  name = "pyo3-macros"
328
- version = "0.21.2"
299
+ version = "0.24.0"
329
300
  source = "registry+https://github.com/rust-lang/crates.io-index"
330
- checksum = "77b34069fc0682e11b31dbd10321cbf94808394c56fd996796ce45217dfac53c"
301
+ checksum = "b0d394b5b4fd8d97d48336bb0dd2aebabad39f1d294edd6bcd2cccf2eefe6f42"
331
302
  dependencies = [
332
303
  "proc-macro2",
333
304
  "pyo3-macros-backend",
@@ -337,9 +308,9 @@ dependencies = [
337
308
 
338
309
  [[package]]
339
310
  name = "pyo3-macros-backend"
340
- version = "0.21.2"
311
+ version = "0.24.0"
341
312
  source = "registry+https://github.com/rust-lang/crates.io-index"
342
- checksum = "08260721f32db5e1a5beae69a55553f56b99bd0e1c3e6e0a5e8851a9d0f5a85c"
313
+ checksum = "fd72da09cfa943b1080f621f024d2ef7e2773df7badd51aa30a2be1f8caa7c8e"
343
314
  dependencies = [
344
315
  "heck",
345
316
  "proc-macro2",
@@ -383,20 +354,11 @@ dependencies = [
383
354
  "crossbeam-utils",
384
355
  ]
385
356
 
386
- [[package]]
387
- name = "redox_syscall"
388
- version = "0.5.2"
389
- source = "registry+https://github.com/rust-lang/crates.io-index"
390
- checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd"
391
- dependencies = [
392
- "bitflags",
393
- ]
394
-
395
357
  [[package]]
396
358
  name = "rustc-hash"
397
- version = "1.1.0"
359
+ version = "2.1.0"
398
360
  source = "registry+https://github.com/rust-lang/crates.io-index"
399
- checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
361
+ checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
400
362
 
401
363
  [[package]]
402
364
  name = "safe_arch"
@@ -407,12 +369,6 @@ dependencies = [
407
369
  "bytemuck",
408
370
  ]
409
371
 
410
- [[package]]
411
- name = "scopeguard"
412
- version = "1.2.0"
413
- source = "registry+https://github.com/rust-lang/crates.io-index"
414
- checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
415
-
416
372
  [[package]]
417
373
  name = "simba"
418
374
  version = "0.9.0"
@@ -426,12 +382,6 @@ dependencies = [
426
382
  "wide",
427
383
  ]
428
384
 
429
- [[package]]
430
- name = "smallvec"
431
- version = "1.13.2"
432
- source = "registry+https://github.com/rust-lang/crates.io-index"
433
- checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
434
-
435
385
  [[package]]
436
386
  name = "syn"
437
387
  version = "2.0.66"
@@ -445,9 +395,9 @@ dependencies = [
445
395
 
446
396
  [[package]]
447
397
  name = "target-lexicon"
448
- version = "0.12.14"
398
+ version = "0.13.2"
449
399
  source = "registry+https://github.com/rust-lang/crates.io-index"
450
- checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
400
+ checksum = "e502f78cdbb8ba4718f566c418c52bc729126ffd16baee5baa718cf25dd5a69a"
451
401
 
452
402
  [[package]]
453
403
  name = "typenum"
@@ -476,67 +426,3 @@ dependencies = [
476
426
  "bytemuck",
477
427
  "safe_arch",
478
428
  ]
479
-
480
- [[package]]
481
- name = "windows-targets"
482
- version = "0.52.5"
483
- source = "registry+https://github.com/rust-lang/crates.io-index"
484
- checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
485
- dependencies = [
486
- "windows_aarch64_gnullvm",
487
- "windows_aarch64_msvc",
488
- "windows_i686_gnu",
489
- "windows_i686_gnullvm",
490
- "windows_i686_msvc",
491
- "windows_x86_64_gnu",
492
- "windows_x86_64_gnullvm",
493
- "windows_x86_64_msvc",
494
- ]
495
-
496
- [[package]]
497
- name = "windows_aarch64_gnullvm"
498
- version = "0.52.5"
499
- source = "registry+https://github.com/rust-lang/crates.io-index"
500
- checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
501
-
502
- [[package]]
503
- name = "windows_aarch64_msvc"
504
- version = "0.52.5"
505
- source = "registry+https://github.com/rust-lang/crates.io-index"
506
- checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
507
-
508
- [[package]]
509
- name = "windows_i686_gnu"
510
- version = "0.52.5"
511
- source = "registry+https://github.com/rust-lang/crates.io-index"
512
- checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
513
-
514
- [[package]]
515
- name = "windows_i686_gnullvm"
516
- version = "0.52.5"
517
- source = "registry+https://github.com/rust-lang/crates.io-index"
518
- checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
519
-
520
- [[package]]
521
- name = "windows_i686_msvc"
522
- version = "0.52.5"
523
- source = "registry+https://github.com/rust-lang/crates.io-index"
524
- checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
525
-
526
- [[package]]
527
- name = "windows_x86_64_gnu"
528
- version = "0.52.5"
529
- source = "registry+https://github.com/rust-lang/crates.io-index"
530
- checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
531
-
532
- [[package]]
533
- name = "windows_x86_64_gnullvm"
534
- version = "0.52.5"
535
- source = "registry+https://github.com/rust-lang/crates.io-index"
536
- checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
537
-
538
- [[package]]
539
- name = "windows_x86_64_msvc"
540
- version = "0.52.5"
541
- source = "registry+https://github.com/rust-lang/crates.io-index"
542
- checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  name = "_cfsem"
3
3
  version = "0.1.0" # Version is controlled by python project
4
- edition = "2021"
4
+ edition = "2024"
5
5
 
6
6
  # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
7
7
  [lib]
@@ -9,9 +9,9 @@ name = "_cfsem"
9
9
  crate-type = ["cdylib"]
10
10
 
11
11
  [dependencies]
12
- pyo3 = "0.21.2"
13
- numpy = "0.21.0" # This must match pyo3 version!
14
- cfsem = "1.1.0"
12
+ pyo3 = "0.24.0"
13
+ numpy = "0.24.0" # This must match pyo3 version!
14
+ cfsem = "2.0.0"
15
15
 
16
16
  [profile.release]
17
17
  opt-level = 3
@@ -1,26 +1,26 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: cfsem
3
- Version: 2.1.0
3
+ Version: 2.3.1
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
7
- Requires-Dist: numpy >=2
8
- Requires-Dist: interpn >=0.2.3
9
- Requires-Dist: pytest >=7.1.3 ; extra == 'dev'
10
- Requires-Dist: coverage >=6.5.0 ; extra == 'dev'
11
- Requires-Dist: ruff >=0.6.2 ; extra == 'dev'
12
- Requires-Dist: pyright >=1.1.331 ; extra == 'dev'
13
- Requires-Dist: scipy >=1.8 ; extra == 'dev'
14
- Requires-Dist: mkdocs >=1.6.0 ; extra == 'dev'
15
- Requires-Dist: mkdocs-material >=9.5.25 ; extra == 'dev'
16
- Requires-Dist: mkdocstrings[python] >=0.25.1 ; extra == 'dev'
17
- Requires-Dist: matplotlib >=3.9 ; extra == 'dev'
7
+ Requires-Dist: numpy>=2
8
+ Requires-Dist: interpn>=0.2.5
9
+ Requires-Dist: pytest>=7.1.3 ; extra == 'dev'
10
+ Requires-Dist: coverage>=6.5.0 ; extra == 'dev'
11
+ Requires-Dist: ruff>=0.6.2 ; extra == 'dev'
12
+ Requires-Dist: pyright==1.1.393 ; extra == 'dev'
13
+ Requires-Dist: scipy>=1.8 ; extra == 'dev'
14
+ Requires-Dist: mkdocs>=1.6.0 ; extra == 'dev'
15
+ Requires-Dist: mkdocs-material>=9.5.25 ; extra == 'dev'
16
+ Requires-Dist: mkdocstrings[python]>=0.25.1 ; extra == 'dev'
17
+ Requires-Dist: matplotlib>=3.9 ; extra == 'dev'
18
18
  Provides-Extra: dev
19
19
  License-File: LICENSE
20
20
  Summary: Quasi-steady electromagnetics including filamentized approximations, Biot-Savart, and Grad-Shafranov.
21
- Author-email: jlogan@cfs.energy
21
+ Author-email: Commonwealth Fusion Systems <jlogan@cfs.energy>
22
22
  License: MIT
23
- Requires-Python: >=3.9, <3.13
23
+ Requires-Python: >=3.9, <3.14
24
24
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
25
25
 
26
26
  # cfsem
@@ -63,7 +63,7 @@ maturin develop --release
63
63
 
64
64
  No part of installation requires root. If access issues are encountered, this can likely be resolved by using a virtual environment.
65
65
 
66
- Some computationally-expensive calculations are written in Rust. These calculations and their python bindings are compiled during installation with no intervention from the user. Symmetric bindings with docstrings are available in the `bindings.py` module and re-exported at the library level.
66
+ Some computationally-expensive calculations are written in Rust. These calculations and their python bindings are installed from pre-built binaries when installing from pypi or compiled during local development installation, with no intervention from the user in either case. Symmetric bindings with docstrings are available in the `bindings.py` module and re-exported at the library level.
67
67
 
68
68
  To build with all of the optimizations available on your local machine, you can do:
69
69
 
@@ -38,7 +38,7 @@ maturin develop --release
38
38
 
39
39
  No part of installation requires root. If access issues are encountered, this can likely be resolved by using a virtual environment.
40
40
 
41
- Some computationally-expensive calculations are written in Rust. These calculations and their python bindings are compiled during installation with no intervention from the user. Symmetric bindings with docstrings are available in the `bindings.py` module and re-exported at the library level.
41
+ Some computationally-expensive calculations are written in Rust. These calculations and their python bindings are installed from pre-built binaries when installing from pypi or compiled during local development installation, with no intervention from the user in either case. Symmetric bindings with docstrings are available in the `bindings.py` module and re-exported at the library level.
42
42
 
43
43
  To build with all of the optimizations available on your local machine, you can do:
44
44