rust-sasa-python 0.7.3__tar.gz → 0.7.4__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.
@@ -0,0 +1,228 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master, radical]
6
+ tags: ["*"]
7
+ pull_request:
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ # Keep the build backend and dev dependency in pyproject.toml in sync with this pin.
14
+ env:
15
+ UV_VERSION: "0.13.8"
16
+ MATURIN_VERSION: "1.16.0"
17
+ RUST_TOOLCHAIN: "1.100.0"
18
+
19
+ defaults:
20
+ run:
21
+ shell: bash
22
+
23
+ jobs:
24
+ linux:
25
+ name: Linux ${{ matrix.platform.target }} / Python ${{ matrix.python }}
26
+ runs-on: ubuntu-24.04
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ python: ["3.11", "3.12", "3.13", "3.14"]
31
+ platform:
32
+ - target: x86_64
33
+ container: quay.io/pypa/manylinux2014_x86_64@sha256:e6a785657009c612fe2a85fa933051d03a50ba62b1c5e47d62abcab546a2e423
34
+ - target: x86
35
+ container: quay.io/pypa/manylinux2014_i686@sha256:7ff084c274da66ed891df826b97cd5bb1b1d36db2cc86e4f052ce47cb4b69ead
36
+ steps:
37
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
38
+ with:
39
+ persist-credentials: false
40
+ - uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
41
+ with:
42
+ version: ${{ env.UV_VERSION }}
43
+ enable-cache: false
44
+ - name: Select container interpreter
45
+ env:
46
+ PYTHON_VERSION: ${{ matrix.python }}
47
+ run: |
48
+ abi="cp${PYTHON_VERSION//./}"
49
+ echo "CONTAINER_PYTHON=/opt/python/$abi-$abi/bin/python" >> "$GITHUB_ENV"
50
+ - name: Export locked test dependencies
51
+ run: uv export --locked --extra dev --no-emit-project --prune maturin --output-file test-requirements.txt
52
+ - name: Build wheel
53
+ uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
54
+ with:
55
+ target: ${{ matrix.platform.target }}
56
+ container: ${{ matrix.platform.container }}
57
+ manylinux: "2014"
58
+ maturin-version: ${{ env.MATURIN_VERSION }}
59
+ rust-toolchain: ${{ env.RUST_TOOLCHAIN }}
60
+ args: --release --locked --out dist --interpreter ${{ env.CONTAINER_PYTHON }}
61
+ - name: Install and test wheel in target architecture
62
+ env:
63
+ CONTAINER_IMAGE: ${{ matrix.platform.container }}
64
+ run: |
65
+ docker run --rm -v "$GITHUB_WORKSPACE:/io:ro" -w /io \
66
+ -e CONTAINER_PYTHON "$CONTAINER_IMAGE" bash -euo pipefail -c '
67
+ "$CONTAINER_PYTHON" -m venv /tmp/wheel-test
68
+ /tmp/wheel-test/bin/python -m pip install --require-hashes -r test-requirements.txt
69
+ /tmp/wheel-test/bin/python -m pip install --no-deps --no-index --find-links dist rust-sasa-python
70
+ /tmp/wheel-test/bin/python -m pytest tests/ -v -p no:cacheprovider
71
+ '
72
+ - name: Upload tested wheel
73
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
74
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
75
+ with:
76
+ name: wheels-linux-${{ matrix.platform.target }}-${{ matrix.python }}
77
+ path: dist/*.whl
78
+ if-no-files-found: error
79
+
80
+ native:
81
+ name: ${{ matrix.platform.name }} / Python ${{ matrix.python }}
82
+ runs-on: ${{ matrix.platform.runner }}
83
+ strategy:
84
+ fail-fast: false
85
+ matrix:
86
+ python: ["3.11", "3.12", "3.13", "3.14"]
87
+ platform:
88
+ - name: windows-x64
89
+ runner: windows-2022
90
+ target: x64
91
+ python-arch: x64
92
+ - name: windows-x86
93
+ runner: windows-2022
94
+ target: x86
95
+ python-arch: x86
96
+ - name: macos-x86_64
97
+ runner: macos-15-intel
98
+ target: x86_64
99
+ python-arch: x64
100
+ - name: macos-aarch64
101
+ runner: macos-15
102
+ target: aarch64
103
+ python-arch: arm64
104
+ steps:
105
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
106
+ with:
107
+ persist-credentials: false
108
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
109
+ id: python
110
+ with:
111
+ python-version: ${{ matrix.python }}
112
+ architecture: ${{ matrix.platform.python-arch }}
113
+ - uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
114
+ with:
115
+ version: ${{ env.UV_VERSION }}
116
+ enable-cache: false
117
+ - name: Build wheel
118
+ uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
119
+ with:
120
+ target: ${{ matrix.platform.target }}
121
+ maturin-version: ${{ env.MATURIN_VERSION }}
122
+ rust-toolchain: ${{ env.RUST_TOOLCHAIN }}
123
+ args: --release --locked --out dist --interpreter python
124
+ - name: Install locked test dependencies and wheel
125
+ env:
126
+ UV_PYTHON: ${{ steps.python.outputs.python-path }}
127
+ run: |
128
+ uv sync --locked --extra dev --no-install-project
129
+ # UV_PYTHON selects the base interpreter; install into the project venv.
130
+ uv pip install --python .venv --no-deps --no-index --find-links dist rust-sasa-python
131
+ - name: Test installed wheel
132
+ env:
133
+ UV_PYTHON: ${{ steps.python.outputs.python-path }}
134
+ run: uv run --no-sync pytest tests/ -v
135
+ - name: Upload tested wheel
136
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
137
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
138
+ with:
139
+ name: wheels-${{ matrix.platform.name }}-${{ matrix.python }}
140
+ path: dist/*.whl
141
+ if-no-files-found: error
142
+
143
+ sdist:
144
+ runs-on: ubuntu-24.04
145
+ steps:
146
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
147
+ with:
148
+ persist-credentials: false
149
+ - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
150
+ id: python
151
+ with:
152
+ python-version: "3.11"
153
+ - uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
154
+ with:
155
+ version: ${{ env.UV_VERSION }}
156
+ enable-cache: false
157
+ - name: Build sdist
158
+ uses: PyO3/maturin-action@e83996d129638aa358a18fbd1dfb82f0b0fb5d3b # v1.51.0
159
+ with:
160
+ maturin-version: ${{ env.MATURIN_VERSION }}
161
+ rust-toolchain: ${{ env.RUST_TOOLCHAIN }}
162
+ command: sdist
163
+ args: --out dist
164
+ - name: Install and test sdist
165
+ env:
166
+ UV_PYTHON: ${{ steps.python.outputs.python-path }}
167
+ MATURIN_PEP517_ARGS: "--locked"
168
+ run: |
169
+ uv sync --locked --extra dev --no-install-project
170
+ uv pip install --python .venv --no-deps --no-build-isolation dist/*.tar.gz
171
+ uv run --no-sync pytest tests/ -v
172
+ - name: Upload tested sdist
173
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
174
+ uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
175
+ with:
176
+ name: wheels-sdist
177
+ path: dist/*.tar.gz
178
+ if-no-files-found: error
179
+
180
+ # Preserve the existing required status-check name while gating on artifact tests.
181
+ test:
182
+ name: Test Suite
183
+ runs-on: ubuntu-24.04
184
+ needs: [linux, native, sdist]
185
+ if: always()
186
+ permissions: {}
187
+ steps:
188
+ - name: Require all distribution tests to pass
189
+ env:
190
+ RESULTS: ${{ join(needs.*.result, ',') }}
191
+ run: test "$RESULTS" = 'success,success,success'
192
+
193
+ release:
194
+ name: Release
195
+ runs-on: ubuntu-24.04
196
+ environment:
197
+ name: publishing
198
+ permissions:
199
+ id-token: write
200
+ needs: [linux, native, sdist, test]
201
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
202
+ concurrency:
203
+ group: pypi-publishing
204
+ cancel-in-progress: false
205
+ steps:
206
+ - name: Require protected release tag
207
+ env:
208
+ REF_PROTECTED: ${{ github.ref_protected }}
209
+ run: |
210
+ if [ "$REF_PROTECTED" != true ]; then
211
+ echo '::error::Protect v* tags with a repository ruleset before publishing. See .github/PUBLISHING.md.'
212
+ exit 1
213
+ fi
214
+ - name: Install uv
215
+ uses: astral-sh/setup-uv@68559e99cc807c1eb7e9238fd43a15bba460eec2 # v10.3.3
216
+ with:
217
+ version: ${{ env.UV_VERSION }}
218
+ enable-cache: false
219
+ - name: Download tested distributions
220
+ uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
221
+ with:
222
+ pattern: wheels-*
223
+ merge-multiple: true
224
+ path: dist/
225
+ - name: Generate PEP 740 attestations
226
+ uses: astral-sh/attest-action@39b6ce43875c196a579e31635b11aa2a2036384a # v0.0.7
227
+ - name: Publish
228
+ run: uv publish --trusted-publishing always
@@ -174,19 +174,18 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
174
174
 
175
175
  [[package]]
176
176
  name = "libmimalloc-sys"
177
- version = "0.1.44"
177
+ version = "0.1.49"
178
178
  source = "registry+https://github.com/rust-lang/crates.io-index"
179
- checksum = "667f4fec20f29dfc6bc7357c582d91796c169ad7e2fce709468aefeb2c099870"
179
+ checksum = "6a45a52f43e1c16f667ccfe4dd8c85b7f7c204fd5e3bf46c5b0db9a5c3c0b8e9"
180
180
  dependencies = [
181
181
  "cc",
182
- "libc",
183
182
  ]
184
183
 
185
184
  [[package]]
186
185
  name = "mimalloc"
187
- version = "0.1.48"
186
+ version = "0.1.52"
188
187
  source = "registry+https://github.com/rust-lang/crates.io-index"
189
- checksum = "e1ee66a4b64c74f4ef288bcbb9192ad9c3feaad75193129ac8509af543894fd8"
188
+ checksum = "2d4139bb28d14ad1facf21d5eb8825051b326e172d216b39f6d31df53cc97862"
190
189
  dependencies = [
191
190
  "libmimalloc-sys",
192
191
  ]
@@ -272,9 +271,9 @@ dependencies = [
272
271
 
273
272
  [[package]]
274
273
  name = "pulp"
275
- version = "0.22.2"
274
+ version = "0.22.3"
276
275
  source = "registry+https://github.com/rust-lang/crates.io-index"
277
- checksum = "2e205bb30d5b916c55e584c22201771bcf2bad9aabd5d4127f38387140c38632"
276
+ checksum = "046aa45b989642ec2e4717c8e72d677b13edd831a4d3b6cf37d9a3e54912496a"
278
277
  dependencies = [
279
278
  "bytemuck",
280
279
  "cfg-if",
@@ -289,15 +288,15 @@ dependencies = [
289
288
 
290
289
  [[package]]
291
290
  name = "pulp-wasm-simd-flag"
292
- version = "0.1.0"
291
+ version = "0.1.1"
293
292
  source = "registry+https://github.com/rust-lang/crates.io-index"
294
- checksum = "40e24eee682d89fb193496edf918a7f407d30175b2e785fe057e4392dfd182e0"
293
+ checksum = "1d8f70e07b9c3962945a74e59ca1c511bba65b6419468acc217c457d93f3c740"
295
294
 
296
295
  [[package]]
297
296
  name = "pyo3"
298
- version = "0.29.3"
297
+ version = "0.30.1"
299
298
  source = "registry+https://github.com/rust-lang/crates.io-index"
300
- checksum = "700d18fa267b73b9b521fd7e13580e2f446916f176cacee1ab63fcc8191f1655"
299
+ checksum = "229ca13b8a15bb0d1487b81ab975bfcd97513416499a8312011b6036e42e0de4"
301
300
  dependencies = [
302
301
  "libc",
303
302
  "once_cell",
@@ -309,18 +308,18 @@ dependencies = [
309
308
 
310
309
  [[package]]
311
310
  name = "pyo3-build-config"
312
- version = "0.29.3"
311
+ version = "0.30.1"
313
312
  source = "registry+https://github.com/rust-lang/crates.io-index"
314
- checksum = "7b3fc0c4d08f6bb10e71fe39dfb9e2f59c6eb6854e22ec8092f50c69a4499adb"
313
+ checksum = "70130e2b6dd1ee589a8788026a429561ca5c40fa7a2fa7914c2282eddae24700"
315
314
  dependencies = [
316
315
  "target-lexicon",
317
316
  ]
318
317
 
319
318
  [[package]]
320
319
  name = "pyo3-ffi"
321
- version = "0.29.3"
320
+ version = "0.30.1"
322
321
  source = "registry+https://github.com/rust-lang/crates.io-index"
323
- checksum = "dfc0b8e19df29aad7086cf977bb0c2a2f143e30567eb113e9cf72b62ca698330"
322
+ checksum = "5e7ff73c555c286d212d4ce7e5fbda845a973c4f61bd5f160f5f2c3c2a04d1c4"
324
323
  dependencies = [
325
324
  "libc",
326
325
  "pyo3-build-config",
@@ -328,26 +327,26 @@ dependencies = [
328
327
 
329
328
  [[package]]
330
329
  name = "pyo3-macros"
331
- version = "0.29.3"
330
+ version = "0.30.1"
332
331
  source = "registry+https://github.com/rust-lang/crates.io-index"
333
- checksum = "6100e8a4b5eba53afaa5ed078364851a0b2499c553a44c31026b929049b49dc6"
332
+ checksum = "c46d2e5862c7bb8207e3b639f713dda3c499933444784154c11d013c5a691b60"
334
333
  dependencies = [
335
334
  "proc-macro2 1.0.95",
336
335
  "pyo3-macros-backend",
337
336
  "quote 1.0.47",
338
- "syn",
337
+ "syn 3.0.10",
339
338
  ]
340
339
 
341
340
  [[package]]
342
341
  name = "pyo3-macros-backend"
343
- version = "0.29.3"
342
+ version = "0.30.1"
344
343
  source = "registry+https://github.com/rust-lang/crates.io-index"
345
- checksum = "6143877a16e82b5a727b7127ff4cd86858a24a28d745d72f43e6f227c7b1bdb3"
344
+ checksum = "38b89f066f2ae72a2aef52d1537ca2fcd104440ebfadee06e97aa90738a25b9b"
346
345
  dependencies = [
347
346
  "heck",
348
347
  "proc-macro2 1.0.95",
349
348
  "quote 1.0.47",
350
- "syn",
349
+ "syn 3.0.10",
351
350
  ]
352
351
 
353
352
  [[package]]
@@ -429,10 +428,9 @@ dependencies = [
429
428
 
430
429
  [[package]]
431
430
  name = "rust-sasa-python"
432
- version = "0.7.3"
431
+ version = "0.7.4"
433
432
  dependencies = [
434
433
  "mimalloc",
435
- "num-complex",
436
434
  "pdbtbx",
437
435
  "pulp",
438
436
  "pyo3",
@@ -466,7 +464,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
466
464
  dependencies = [
467
465
  "proc-macro2 1.0.95",
468
466
  "quote 1.0.47",
469
- "syn",
467
+ "syn 2.0.104",
470
468
  ]
471
469
 
472
470
  [[package]]
@@ -499,7 +497,7 @@ dependencies = [
499
497
  "heck",
500
498
  "proc-macro2 1.0.95",
501
499
  "quote 1.0.47",
502
- "syn",
500
+ "syn 2.0.104",
503
501
  ]
504
502
 
505
503
  [[package]]
@@ -519,6 +517,17 @@ dependencies = [
519
517
  "unicode-ident",
520
518
  ]
521
519
 
520
+ [[package]]
521
+ name = "syn"
522
+ version = "3.0.10"
523
+ source = "registry+https://github.com/rust-lang/crates.io-index"
524
+ checksum = "4ae9ccbea3a7b0b09443036490c8f34a8b1b760fd345e5c0dae0aac718faea79"
525
+ dependencies = [
526
+ "proc-macro2 1.0.95",
527
+ "quote 1.0.47",
528
+ "unicode-ident",
529
+ ]
530
+
522
531
  [[package]]
523
532
  name = "target-lexicon"
524
533
  version = "0.13.5"
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "rust-sasa-python"
3
- version = "0.7.3"
3
+ version = "0.7.4"
4
4
  edition = "2024"
5
5
  readme = "README.md"
6
6
 
@@ -11,8 +11,7 @@ crate-type = ["cdylib"]
11
11
 
12
12
  [dependencies]
13
13
  pdbtbx = "0.12.0"
14
- pyo3 = "0.29.3"
14
+ pyo3 = "0.30.1"
15
15
  rust-sasa = "0.9.2"
16
- mimalloc = "0.1.47"
17
- num-complex = "0.4.6"
18
- pulp = "0.22.2"
16
+ mimalloc = "0.1.52"
17
+ pulp = "0.22.3"
@@ -1,15 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rust-sasa-python
3
- Version: 0.7.3
3
+ Version: 0.7.4
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
7
7
  Requires-Dist: pytest>=8.4.1 ; extra == 'dev'
8
- Requires-Dist: maturin>=1.5,<2.0 ; extra == 'dev'
8
+ Requires-Dist: maturin==1.16.0 ; extra == 'dev'
9
9
  Provides-Extra: dev
10
10
  License-File: LICENSE.md
11
- Summary: An ultra-fast package for computing Solvent Accessible Surface Area (SASA/ASA) for proteins
12
- **46X** faster than Biopython, **7X** faster than Freesasa
11
+ Summary: An ultra-fast package for computing Solvent Accessible Surface Area (SASA/ASA) for proteins **46X** faster than Biopython, **7X** faster than Freesasa
13
12
  Author: Max Campbell
14
13
  Requires-Python: >=3.11
15
14
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["maturin>=1.5,<2.0"]
2
+ requires = ["maturin==1.16.0"]
3
3
  build-backend = "maturin"
4
4
 
5
5
  [project]
@@ -16,7 +16,7 @@ readme = "README.md"
16
16
  authors = [{ name = "Max Campbell" }]
17
17
 
18
18
  [project.optional-dependencies]
19
- dev = ["pytest>=8.4.1", "maturin>=1.5,<2.0"]
19
+ dev = ["pytest>=8.4.1", "maturin==1.16.0"]
20
20
 
21
21
  [tool.maturin]
22
22
  features = ["pyo3/extension-module"]
@@ -22,22 +22,23 @@ wheels = [
22
22
 
23
23
  [[package]]
24
24
  name = "maturin"
25
- version = "1.9.1"
25
+ version = "1.16.0"
26
26
  source = { registry = "https://pypi.org/simple" }
27
- sdist = { url = "https://files.pythonhosted.org/packages/94/f7/73cf2ae0d6db943a627d28c09f5368735fce6b8b2ad1e1f6bcda2632c80a/maturin-1.9.1.tar.gz", hash = "sha256:97b52fb19d20c1fdc70e4efdc05d79853a4c9c0051030c93a793cd5181dc4ccd", size = 209757, upload-time = "2025-07-08T04:54:43.877Z" }
27
+ sdist = { url = "https://files.pythonhosted.org/packages/bd/71/eb078174335ff30bde1be2ad54fb6256db4b160eb3efa81163fa30f8c814/maturin-1.16.0.tar.gz", hash = "sha256:13e69ca12542999d8c5467131de72a49bb76e4c284b9a45c5783df7c0fcb3a8a", size = 396641, upload-time = "2026-10-29T14:09:43.096Z" }
28
28
  wheels = [
29
- { url = "https://files.pythonhosted.org/packages/48/f2/de43e8954092bd957fbdfbc5b978bf8be40f27aec1a4ebd65e57cfb3ec8a/maturin-1.9.1-py3-none-linux_armv6l.whl", hash = "sha256:fe8f59f9e387fb19635eab6b7381ef718e5dc7a328218e6da604c91f206cbb72", size = 8270244, upload-time = "2025-07-08T04:54:17.962Z" },
30
- { url = "https://files.pythonhosted.org/packages/b8/72/36966375c2c2bb2d66df4fa756cfcd54175773719b98d4b26a6b4d1f0bfc/maturin-1.9.1-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:6a9c9d176f6df3a8ec1a4c9c72c8a49674ed13668a03c9ead5fab983bbeeb624", size = 16053959, upload-time = "2025-07-08T04:54:21.153Z" },
31
- { url = "https://files.pythonhosted.org/packages/c4/40/4e0da87e563333ff1605fef15bed5858c2a41c0c0404e47f20086f214473/maturin-1.9.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e14eedbc4369dda1347ce9ddc183ade7c513d9975b7ea2b9c9e4211fb74f597a", size = 8407170, upload-time = "2025-07-08T04:54:23.351Z" },
32
- { url = "https://files.pythonhosted.org/packages/d9/27/4b29614964c10370effcdfcf34ec57126c9a4b921b7a2c42a94ae3a59cb0/maturin-1.9.1-py3-none-manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686.whl", hash = "sha256:2f05f07bc887e010c44d32a088aea4f36a2104e301f51f408481e4e9759471a7", size = 8258775, upload-time = "2025-07-08T04:54:25.596Z" },
33
- { url = "https://files.pythonhosted.org/packages/e0/5b/b15ad53e1e6733d8798ce903d25d9e05aa3083b2544f1a6f863ea01dd50d/maturin-1.9.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:e7eb54db3aace213420cd545b24a149842e8d6b1fcec046d0346f299d8adfc34", size = 8787295, upload-time = "2025-07-08T04:54:27.154Z" },
34
- { url = "https://files.pythonhosted.org/packages/72/d8/b97f4767786eae63bb6b700b342766bcea88da98796bfee290bcddd99fd8/maturin-1.9.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:9d037a37b8ef005eebdea61eaf0e3053ebcad3b740162932fbc120db5fdf5653", size = 8053283, upload-time = "2025-07-08T04:54:28.953Z" },
35
- { url = "https://files.pythonhosted.org/packages/95/45/770fc005bceac81f5905c96f37c36f65fa9c3da3f4aa8d4e4d2a883aa967/maturin-1.9.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:7c26fb60d80e6a72a8790202bb14dbef956b831044f55d1ce4e2c2e915eb6124", size = 8127120, upload-time = "2025-07-08T04:54:30.779Z" },
36
- { url = "https://files.pythonhosted.org/packages/2f/a6/be684b4fce58f8b3a9d3b701c23961d5fe0e1710ed484e2216441997e74f/maturin-1.9.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:e0a2c546c123ed97d1ee0c9cc80a912d9174913643c737c12adf4bce46603bb3", size = 10569627, upload-time = "2025-07-08T04:54:32.54Z" },
37
- { url = "https://files.pythonhosted.org/packages/24/ad/7f8a9d8a1b79c2ed6291aaaa22147c98efee729b23df2803c319dd658049/maturin-1.9.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f5dde6fbcc36a1173fe74e6629fee36e89df76236247b64b23055f1f820bdf35", size = 8934678, upload-time = "2025-07-08T04:54:34.529Z" },
38
- { url = "https://files.pythonhosted.org/packages/59/5f/97ff670cb718a40ee21faf38e07e0d773573180de98ee453142e5f932052/maturin-1.9.1-py3-none-win32.whl", hash = "sha256:69d9f752f33a3c95062014f464cbd715e83a175f4601b76a9ce3db6ea18df976", size = 7261272, upload-time = "2025-07-08T04:54:36.584Z" },
39
- { url = "https://files.pythonhosted.org/packages/a6/07/c99058a73d0f7d8e8c87bf60c48a96c44f42ff4ef6a6ae4ca3821605bdd2/maturin-1.9.1-py3-none-win_amd64.whl", hash = "sha256:c8b71cf0f6a5f712ac1466641d520e2ce3fbe44104319a55d875cc8326dcdd61", size = 8280274, upload-time = "2025-07-08T04:54:38.343Z" },
40
- { url = "https://files.pythonhosted.org/packages/06/3d/74e75874b75fc82e4774f2ed78ad546fda3e127bae4a971db3611bdab285/maturin-1.9.1-py3-none-win_arm64.whl", hash = "sha256:0e6e2ddc83999ac3999576b06649a327536a51d57c917fa01416e40f53106bda", size = 6936614, upload-time = "2025-07-08T04:54:41.888Z" },
29
+ { url = "https://files.pythonhosted.org/packages/c0/f8/235d4a8b3d61af3c7744582ae9e6ccb8f096e9f68f06fe62d7d03e5d7b2d/maturin-1.16.0-py3-none-linux_armv6l.whl", hash = "sha256:deacbb204a20326862e194c7df4958e0514a0411c9a3ccf228a00067c11b5c7e", size = 10425070, upload-time = "2026-10-29T14:09:06.221Z" },
30
+ { url = "https://files.pythonhosted.org/packages/fb/d5/f49a90d8c489dc5f134654ec91d12a78a51599fdc8c2b5a1bc2391bca0ac/maturin-1.16.0-py3-none-macosx_10_12_universal2.macosx_10_12_x86_64.macosx_11_0_arm64.whl", hash = "sha256:131fcc17ddb3ccc48aa183d2172ebf994c322b858e1b9694fb8744d783df66f6", size = 19839189, upload-time = "2026-10-29T14:09:09.441Z" },
31
+ { url = "https://files.pythonhosted.org/packages/d2/8e/d65633d7c25484cb82735a51e15bc969f9874a13557e2b352d27df574c20/maturin-1.16.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2216d731c9324869d3bff72c0c73009bb6e640b3fa7d340174ae70dc874d1d9f", size = 10271659, upload-time = "2026-10-29T14:09:12.596Z" },
32
+ { url = "https://files.pythonhosted.org/packages/0a/dc/e77f490557cb5e045a75c3d18a7965425ac576235c970dfff4d903eb2c74/maturin-1.16.0-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.musllinux_1_1_x86_64.whl", hash = "sha256:837db2f4d93d4899c3ac393fb3cc9eebf35b6002336e5d574f4a4fb6c49fe283", size = 10763361, upload-time = "2026-10-29T14:09:16.11Z" },
33
+ { url = "https://files.pythonhosted.org/packages/fa/eb/535564a4211105fd64611fa4f9437c8925eded26a97d58de84565f5aebfa/maturin-1.16.0-py3-none-manylinux_2_12_i686.manylinux2010_i686.musllinux_1_1_i686.whl", hash = "sha256:399fadcd4af39532a173e010240c34930eacc1bb1746bb179863481c68bcf1ab", size = 10442856, upload-time = "2026-10-29T14:09:18.64Z" },
34
+ { url = "https://files.pythonhosted.org/packages/45/5b/570e13ce81f103be6609c067a06c5bac08da5af0cf7ea700c9ae43419be9/maturin-1.16.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:e285ec9eb10243d45d10417178cb2eb76e0cbb184d0aa4378b503489fa12ee78", size = 10298796, upload-time = "2026-10-29T14:09:21.385Z" },
35
+ { url = "https://files.pythonhosted.org/packages/88/a6/26b40c31c354359fe4e49398113d018694c7035968fe1b569bb13c3905af/maturin-1.16.0-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.musllinux_1_1_armv7l.whl", hash = "sha256:609228d639c5b888dc41364cbd318547a59f027481f53cba85838f46da4b3f02", size = 10268023, upload-time = "2026-10-29T14:09:23.94Z" },
36
+ { url = "https://files.pythonhosted.org/packages/2b/19/faca1784d917c2eecd498648dff6a0179b299c8142cc448ea5b1183545ec/maturin-1.16.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.musllinux_1_1_ppc64le.whl", hash = "sha256:7001fd3ac591820d01f2fa041552c367ec587c98649d9f10a817cc7f28e59062", size = 13739038, upload-time = "2026-10-29T14:09:26.662Z" },
37
+ { url = "https://files.pythonhosted.org/packages/36/c1/d67e77aa07100e3b2d4c0d9ef6922646d9c4bab25cc04f91023aefc72418/maturin-1.16.0-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b0573a146803f24566f5b301a4572a8e49bcab4917175407c730da13b46e134", size = 11100193, upload-time = "2026-10-29T14:09:29.659Z" },
38
+ { url = "https://files.pythonhosted.org/packages/76/44/ccef52f02ab0e1f7258bc8fe0140b4991c6287458ef883af1027f946a253/maturin-1.16.0-py3-none-manylinux_2_31_riscv64.musllinux_1_1_riscv64.whl", hash = "sha256:c16d3589cbddda9420237fdb1394b1a9b36483c0bce83b23de6118c908a8e940", size = 10663849, upload-time = "2026-10-29T14:09:32.183Z" },
39
+ { url = "https://files.pythonhosted.org/packages/6e/9b/3104f62dbb428f9e26e35cba2c80cfc42ba9bb1dc4968882c19d1bfe594b/maturin-1.16.0-py3-none-win32.whl", hash = "sha256:9e221c047931caa79283cc0c2278904ae1b25880dde3574b0447657d72907689", size = 9124894, upload-time = "2026-10-29T14:09:34.857Z" },
40
+ { url = "https://files.pythonhosted.org/packages/63/b8/c25ce706c4797ee1663bcf1f386ffe91d8a3b3589700a135a204b49bc4b0/maturin-1.16.0-py3-none-win_amd64.whl", hash = "sha256:9d43a2adf51a2794e907a8f7dbad06eb114d5edb0909c73c1fa9040f15e584e9", size = 10575645, upload-time = "2026-10-29T14:09:37.864Z" },
41
+ { url = "https://files.pythonhosted.org/packages/eb/74/f69aba8b22539e5ed58323d4a6ee974afd9edda238489c73926cc0fc9d51/maturin-1.16.0-py3-none-win_arm64.whl", hash = "sha256:95f34ce53249fb7095ff4f2aff64d2562c511d6edf3e216c15dbffcd82b72b4f", size = 9886475, upload-time = "2026-10-29T14:09:40.603Z" },
41
42
  ]
42
43
 
43
44
  [[package]]
@@ -95,7 +96,7 @@ dev = [
95
96
 
96
97
  [package.metadata]
97
98
  requires-dist = [
98
- { name = "maturin", marker = "extra == 'dev'", specifier = ">=1.5,<2.0" },
99
+ { name = "maturin", marker = "extra == 'dev'", specifier = "==1.16.0" },
99
100
  { name = "pytest", marker = "extra == 'dev'", specifier = ">=8.4.1" },
100
101
  ]
101
102
  provides-extras = ["dev"]
@@ -1,150 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
- - master
8
- - radical
9
- tags:
10
- - "*"
11
- pull_request:
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
- platform:
23
- - runner: ubuntu-latest
24
- target: x86_64
25
- - runner: ubuntu-latest
26
- target: x86
27
- steps:
28
- - uses: actions/checkout@v4
29
- - uses: actions/setup-python@v5
30
- with:
31
- python-version: "3.13"
32
- - name: Build wheels
33
- uses: PyO3/maturin-action@v1
34
- with:
35
- target: ${{ matrix.platform.target }}
36
- args: --release --out dist --find-interpreter
37
- sccache: "true"
38
- manylinux: auto
39
- - name: Upload wheels
40
- uses: actions/upload-artifact@v4
41
- with:
42
- name: wheels-linux-${{ matrix.platform.target }}
43
- path: dist
44
-
45
- windows:
46
- runs-on: ${{ matrix.platform.runner }}
47
- strategy:
48
- matrix:
49
- platform:
50
- - runner: windows-latest
51
- target: x64
52
- - runner: windows-latest
53
- target: x86
54
- steps:
55
- - uses: actions/checkout@v4
56
- - uses: actions/setup-python@v5
57
- with:
58
- python-version: "3.13"
59
- architecture: ${{ matrix.platform.target }}
60
- - name: Build wheels
61
- uses: PyO3/maturin-action@v1
62
- with:
63
- target: ${{ matrix.platform.target }}
64
- args: --release --out dist --find-interpreter
65
- sccache: "true"
66
- - name: Upload wheels
67
- uses: actions/upload-artifact@v4
68
- with:
69
- name: wheels-windows-${{ matrix.platform.target }}
70
- path: dist
71
-
72
- macos:
73
- runs-on: ${{ matrix.platform.runner }}
74
- strategy:
75
- matrix:
76
- platform:
77
- - runner: macos-latest
78
- target: x86_64
79
- - runner: macos-14
80
- target: aarch64
81
- steps:
82
- - uses: actions/checkout@v4
83
- - uses: actions/setup-python@v5
84
- with:
85
- python-version: "3.13"
86
- - name: Build wheels
87
- uses: PyO3/maturin-action@v1
88
- with:
89
- target: ${{ matrix.platform.target }}
90
- args: --release --out dist --find-interpreter
91
- sccache: "true"
92
- - name: Upload wheels
93
- uses: actions/upload-artifact@v4
94
- with:
95
- name: wheels-macos-${{ matrix.platform.target }}
96
- path: dist
97
-
98
- sdist:
99
- runs-on: ubuntu-latest
100
- steps:
101
- - uses: actions/checkout@v4
102
- - name: Build sdist
103
- uses: PyO3/maturin-action@v1
104
- with:
105
- command: sdist
106
- args: --out dist
107
- - name: Upload sdist
108
- uses: actions/upload-artifact@v4
109
- with:
110
- name: wheels-sdist
111
- path: dist
112
-
113
- test:
114
- name: Test Suite
115
- runs-on: ${{ matrix.os }}
116
- strategy:
117
- matrix:
118
- os: [ubuntu-latest, windows-latest, macos-latest]
119
- steps:
120
- - uses: actions/checkout@v4
121
- - name: Install uv
122
- uses: astral-sh/setup-uv@v3
123
- with:
124
- version: "latest"
125
- - name: Set up Python
126
- run: uv python install 3.13
127
- - name: Install dependencies
128
- run: |
129
- uv add --dev pytest maturin
130
- - name: Build and install package
131
- run: |
132
- uv run maturin develop --release
133
- - name: Run tests
134
- run: |
135
- uv run pytest tests/ -v
136
-
137
- release:
138
- name: Release
139
- runs-on: ubuntu-latest
140
- needs: [linux, windows, macos, sdist, test]
141
- if: startsWith(github.ref, 'refs/tags/v')
142
- steps:
143
- - uses: actions/download-artifact@v4
144
- - name: Publish to PyPI
145
- uses: PyO3/maturin-action@v1
146
- env:
147
- MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
148
- with:
149
- command: upload
150
- args: --non-interactive --skip-existing wheels-*/*