linkcell 0.3.2__tar.gz → 0.3.3__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.
- {linkcell-0.3.2 → linkcell-0.3.3}/.github/workflows/wheels.yml +15 -11
- {linkcell-0.3.2 → linkcell-0.3.3}/CHANGELOG.md +7 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/CITATION.cff +1 -1
- {linkcell-0.3.2 → linkcell-0.3.3}/Cargo.lock +2 -2
- {linkcell-0.3.2 → linkcell-0.3.3}/Cargo.toml +1 -1
- {linkcell-0.3.2 → linkcell-0.3.3}/PKG-INFO +6 -4
- {linkcell-0.3.2 → linkcell-0.3.3}/README.md +4 -3
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/how-to/embed-c.md +1 -1
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/how-to/embed-python.md +4 -4
- {linkcell-0.3.2 → linkcell-0.3.3}/meson.build +1 -1
- {linkcell-0.3.2 → linkcell-0.3.3}/pyproject.toml +4 -3
- {linkcell-0.3.2 → linkcell-0.3.3}/python/Cargo.toml +2 -1
- {linkcell-0.3.2 → linkcell-0.3.3}/tests/python/test_knearest.py +1 -1
- {linkcell-0.3.2 → linkcell-0.3.3}/.github/workflows/ci.yml +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/.gitignore +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/CMakeLists.txt +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/LICENSE +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/assets/branding/README.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/assets/branding/linkcell-icon.svg +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/assets/branding/linkcell-logo-dark.svg +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/assets/branding/linkcell-logo-light.svg +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/assets/branding/linkcell-mark.jpg +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/cbindgen.toml +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/cmake/linkcell.pc.in +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/cmake/linkcellConfig.cmake.in +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/explanation/mic-and-cells.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/how-to/embed-cpp.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/how-to/pkg-config.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/index.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/reference/algorithm.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/reference/c-api.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/docs/tutorials/two-points.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/examples/knn_hot.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/examples/meson.build +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/examples/two_points.c +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/examples/two_points.cpp +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/include/linkcell.h +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/include/linkcell.hpp +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/include/linkcell_gpu.h +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/include/linkcell_gpu.hpp +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/linkcell/__init__.py +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/meson_options.txt +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/python/build.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/python/src/gpu.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/python/src/lib.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/scripts/check-install.sh +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/scripts/regen-capi-headers.sh +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/src/capi.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/src/cell.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/src/error.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/src/gpu/capi.cpp +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/src/gpu/knearest.cpp +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/src/knearest.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/src/lib.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/subprojects/gpulite.wrap +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/subprojects/packagefiles/gpulite/meson.build +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/tests/abi.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/tests/agree.rs +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/tests/cmake-consumer/CMakeLists.txt +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/tests/gpu_agree.cpp +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/tests/python/test_knearest_cuda.py +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/third_party/gpulite/LICENSE +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/third_party/gpulite/README.md +0 -0
- {linkcell-0.3.2 → linkcell-0.3.3}/third_party/gpulite/gpulite/gpulite.hpp +0 -0
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
with:
|
|
45
45
|
python-version: "3.12"
|
|
46
46
|
- name: Build abi3 wheel
|
|
47
|
-
run: uvx --from 'cibuildwheel>=
|
|
47
|
+
run: uvx --from 'cibuildwheel>=4,<5' cibuildwheel --output-dir wheelhouse
|
|
48
48
|
env:
|
|
49
49
|
CIBW_BUILD: "cp312-*"
|
|
50
50
|
CIBW_SKIP: "*musllinux* *i686* cp3??t-*"
|
|
@@ -57,9 +57,11 @@ jobs:
|
|
|
57
57
|
name: wheels-abi3-${{ matrix.name }}
|
|
58
58
|
path: ./wheelhouse/*.whl
|
|
59
59
|
|
|
60
|
-
#
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
# One abi3t wheel per platform (CPython 3.15+ GIL and free-threaded).
|
|
61
|
+
# abi3audit --strict still treats PEP 793 PyModExport / PyType_FromSlots
|
|
62
|
+
# as non-abi3, so the audit step is off for this job only.
|
|
63
|
+
abi3t:
|
|
64
|
+
name: abi3t ${{ matrix.name }}
|
|
63
65
|
runs-on: ${{ matrix.os }}
|
|
64
66
|
strategy:
|
|
65
67
|
fail-fast: false
|
|
@@ -79,18 +81,20 @@ jobs:
|
|
|
79
81
|
- uses: dtolnay/rust-toolchain@stable
|
|
80
82
|
- uses: astral-sh/setup-uv@v5
|
|
81
83
|
with:
|
|
82
|
-
python-version: "3.
|
|
83
|
-
- name: Build
|
|
84
|
-
run: uvx --from 'cibuildwheel>=
|
|
84
|
+
python-version: "3.15"
|
|
85
|
+
- name: Build abi3t wheel
|
|
86
|
+
run: uvx --from 'cibuildwheel>=4,<5' cibuildwheel --output-dir wheelhouse
|
|
85
87
|
env:
|
|
86
|
-
CIBW_BUILD: "
|
|
87
|
-
CIBW_SKIP: "*musllinux* *i686*"
|
|
88
|
+
CIBW_BUILD: "cp315-*"
|
|
89
|
+
CIBW_SKIP: "*musllinux* *i686* cp3??t-*"
|
|
88
90
|
CIBW_ARCHS: ${{ matrix.arch }}
|
|
91
|
+
CIBW_ENVIRONMENT: MATURIN_PEP517_ARGS="--features abi3t"
|
|
92
|
+
CIBW_AUDIT_COMMAND: ""
|
|
89
93
|
CIBW_TEST_REQUIRES: pytest numpy
|
|
90
94
|
CIBW_TEST_COMMAND: pytest {project}/tests/python -q
|
|
91
95
|
- uses: actions/upload-artifact@v4
|
|
92
96
|
with:
|
|
93
|
-
name: wheels-
|
|
97
|
+
name: wheels-abi3t-${{ matrix.name }}
|
|
94
98
|
path: ./wheelhouse/*.whl
|
|
95
99
|
|
|
96
100
|
sdist:
|
|
@@ -114,7 +118,7 @@ jobs:
|
|
|
114
118
|
# on this job.
|
|
115
119
|
publish:
|
|
116
120
|
name: Publish to PyPI
|
|
117
|
-
needs: [abi3,
|
|
121
|
+
needs: [abi3, abi3t, sdist]
|
|
118
122
|
runs-on: ubuntu-latest
|
|
119
123
|
if: >-
|
|
120
124
|
github.repository == 'd-SEAMS/linkcell' &&
|
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.3.3
|
|
6
|
+
|
|
7
|
+
Two wheels: `abi3-py312` (GIL, CPython 3.12+) and `abi3t-py315`
|
|
8
|
+
(PEP 803, CPython 3.15 GIL and free-threaded). cibuildwheel 4.x
|
|
9
|
+
builds 3.15.0rc1 by default. PyO3 0.29 `abi3t-py315`; maturin
|
|
10
|
+
1.14+ tags the `abi3t` ABI. The 0.3.2 `cp314t` set is gone.
|
|
11
|
+
|
|
5
12
|
## 0.3.2
|
|
6
13
|
|
|
7
14
|
Python `linkcell` module (maturin / PyO3). Arrays are DLPack via
|
|
@@ -79,14 +79,14 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
|
79
79
|
|
|
80
80
|
[[package]]
|
|
81
81
|
name = "linkcell"
|
|
82
|
-
version = "0.3.
|
|
82
|
+
version = "0.3.3"
|
|
83
83
|
dependencies = [
|
|
84
84
|
"rayon",
|
|
85
85
|
]
|
|
86
86
|
|
|
87
87
|
[[package]]
|
|
88
88
|
name = "linkcell-python"
|
|
89
|
-
version = "0.3.
|
|
89
|
+
version = "0.3.3"
|
|
90
90
|
dependencies = [
|
|
91
91
|
"cc",
|
|
92
92
|
"dlpk",
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: linkcell
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
4
4
|
Classifier: Programming Language :: Rust
|
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
|
6
6
|
Classifier: Programming Language :: Python :: 3.12
|
|
7
7
|
Classifier: Programming Language :: Python :: 3.13
|
|
8
8
|
Classifier: Programming Language :: Python :: 3.14
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
9
10
|
Requires-Dist: pytest>=8.0 ; extra == 'test'
|
|
10
11
|
Requires-Dist: numpy>=1.26 ; extra == 'test'
|
|
11
12
|
Provides-Extra: test
|
|
@@ -55,8 +56,9 @@ Python takes the same search through DLPack (dlpk). Any `__dlpack__()`
|
|
|
55
56
|
object (numpy, torch, jax, cupy) is a valid `xyz` / `cell`, on any
|
|
56
57
|
device. A CUDA `xyz` stays on device; a CUDA `cell` is inverted on
|
|
57
58
|
device. `torch.from_dlpack` consumes `(indices, dist2)`.
|
|
58
|
-
Wheels: one CPython 3.12 limited-ABI (`abi3`) artifact per platform
|
|
59
|
-
|
|
59
|
+
Wheels: one CPython 3.12 limited-ABI (`abi3`) artifact per platform
|
|
60
|
+
(GIL, 3.12+), and one `abi3t` artifact (CPython 3.15+ GIL and
|
|
61
|
+
free-threaded).
|
|
60
62
|
|
|
61
63
|
```
|
|
62
64
|
pip install linkcell
|
|
@@ -85,7 +87,7 @@ As a wrap, Meson exposes `linkcell_dep`:
|
|
|
85
87
|
```
|
|
86
88
|
[wrap-git]
|
|
87
89
|
url = https://github.com/d-SEAMS/linkcell.git
|
|
88
|
-
revision = v0.3.
|
|
90
|
+
revision = v0.3.3
|
|
89
91
|
depth = 1
|
|
90
92
|
|
|
91
93
|
[provide]
|
|
@@ -34,8 +34,9 @@ Python takes the same search through DLPack (dlpk). Any `__dlpack__()`
|
|
|
34
34
|
object (numpy, torch, jax, cupy) is a valid `xyz` / `cell`, on any
|
|
35
35
|
device. A CUDA `xyz` stays on device; a CUDA `cell` is inverted on
|
|
36
36
|
device. `torch.from_dlpack` consumes `(indices, dist2)`.
|
|
37
|
-
Wheels: one CPython 3.12 limited-ABI (`abi3`) artifact per platform
|
|
38
|
-
|
|
37
|
+
Wheels: one CPython 3.12 limited-ABI (`abi3`) artifact per platform
|
|
38
|
+
(GIL, 3.12+), and one `abi3t` artifact (CPython 3.15+ GIL and
|
|
39
|
+
free-threaded).
|
|
39
40
|
|
|
40
41
|
```
|
|
41
42
|
pip install linkcell
|
|
@@ -64,7 +65,7 @@ As a wrap, Meson exposes `linkcell_dep`:
|
|
|
64
65
|
```
|
|
65
66
|
[wrap-git]
|
|
66
67
|
url = https://github.com/d-SEAMS/linkcell.git
|
|
67
|
-
revision = v0.3.
|
|
68
|
+
revision = v0.3.3
|
|
68
69
|
depth = 1
|
|
69
70
|
|
|
70
71
|
[provide]
|
|
@@ -38,7 +38,7 @@ device; the host only reads the four launch ints (`nx`, `ny`,
|
|
|
38
38
|
|
|
39
39
|
Wheels:
|
|
40
40
|
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
free-threaded
|
|
44
|
-
|
|
41
|
+
- `abi3-py312`: one wheel per platform, GIL CPython 3.12+
|
|
42
|
+
- `abi3t-py315`: one wheel per platform, CPython 3.15+ GIL and
|
|
43
|
+
free-threaded (PEP 803). Build with maturin 1.14+ and
|
|
44
|
+
`--features abi3t`.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
[build-system]
|
|
2
|
-
requires = ["maturin>=1.
|
|
2
|
+
requires = ["maturin>=1.14,<2"]
|
|
3
3
|
build-backend = "maturin"
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "linkcell"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.3"
|
|
8
8
|
description = "Periodic linked-cell k-nearest neighbour search"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -16,6 +16,7 @@ classifiers = [
|
|
|
16
16
|
"Programming Language :: Python :: 3.12",
|
|
17
17
|
"Programming Language :: Python :: 3.13",
|
|
18
18
|
"Programming Language :: Python :: 3.14",
|
|
19
|
+
"Programming Language :: Python :: 3.15",
|
|
19
20
|
]
|
|
20
21
|
dependencies = []
|
|
21
22
|
|
|
@@ -34,7 +35,7 @@ python-source = "."
|
|
|
34
35
|
features = ["pyo3/extension-module"]
|
|
35
36
|
|
|
36
37
|
[tool.cibuildwheel]
|
|
37
|
-
skip = ["
|
|
38
|
+
skip = ["*musllinux*", "*i686*"]
|
|
38
39
|
test-requires = ["pytest", "numpy"]
|
|
39
40
|
test-command = "pytest {project}/tests/python -q"
|
|
40
41
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "linkcell-python"
|
|
3
|
-
version = "0.3.
|
|
3
|
+
version = "0.3.3"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
rust-version = "1.88"
|
|
6
6
|
license = "MIT"
|
|
@@ -14,6 +14,7 @@ crate-type = ["cdylib"]
|
|
|
14
14
|
[features]
|
|
15
15
|
default = []
|
|
16
16
|
abi3 = ["pyo3/abi3-py312"]
|
|
17
|
+
abi3t = ["pyo3/abi3t-py315"]
|
|
17
18
|
|
|
18
19
|
[dependencies]
|
|
19
20
|
dlpk = { version = "0.4.1", features = ["pyo3", "ndarray"] }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|