rstar-python 0.0.2__tar.gz → 0.2.0__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.
- rstar_python-0.2.0/.github/workflows/ci.yml +70 -0
- rstar_python-0.2.0/.github/workflows/release.yml +225 -0
- {rstar_python-0.0.2 → rstar_python-0.2.0}/.gitignore +1 -0
- rstar_python-0.2.0/CHANGELOG.md +56 -0
- rstar_python-0.2.0/Cargo.lock +285 -0
- {rstar_python-0.0.2 → rstar_python-0.2.0}/Cargo.toml +5 -4
- rstar_python-0.2.0/PKG-INFO +173 -0
- rstar_python-0.2.0/README.md +143 -0
- {rstar_python-0.0.2 → rstar_python-0.2.0}/pyproject.toml +5 -2
- rstar_python-0.2.0/python/benchmarks/benchmark_bbox_rtree.py +102 -0
- rstar_python-0.2.0/python/rstar_python/__init__.py +3 -0
- rstar_python-0.2.0/python/rstar_python/py.typed +0 -0
- rstar_python-0.2.0/python/rstar_python/rstar_python.pyi +145 -0
- rstar_python-0.2.0/python/tests/test_bbox_rtree.py +162 -0
- rstar_python-0.2.0/python/tests/test_rtree.py +222 -0
- rstar_python-0.2.0/src/lib.rs +898 -0
- rstar_python-0.0.2/.github/workflows/test_and_deploy.yml +0 -210
- rstar_python-0.0.2/.github/workflows/test_pypi.yml +0 -36
- rstar_python-0.0.2/CHANGELOG.md +0 -18
- rstar_python-0.0.2/Cargo.lock +0 -339
- rstar_python-0.0.2/PKG-INFO +0 -116
- rstar_python-0.0.2/README.md +0 -90
- rstar_python-0.0.2/python/__init__.py +0 -3
- rstar_python-0.0.2/python/tests/test_rtree.py +0 -64
- rstar_python-0.0.2/src/lib.rs +0 -405
- {rstar_python-0.0.2 → rstar_python-0.2.0}/LICENSE +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: ["**"]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
concurrency:
|
|
11
|
+
group: ci-${{ github.ref }}
|
|
12
|
+
cancel-in-progress: true
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
test:
|
|
16
|
+
name: Test ${{ matrix.os }} / py${{ matrix.python-version }}
|
|
17
|
+
runs-on: ${{ matrix.os }}
|
|
18
|
+
strategy:
|
|
19
|
+
fail-fast: false
|
|
20
|
+
matrix:
|
|
21
|
+
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
22
|
+
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- uses: actions/checkout@v4
|
|
26
|
+
|
|
27
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
28
|
+
uses: actions/setup-python@v5
|
|
29
|
+
with:
|
|
30
|
+
python-version: ${{ matrix.python-version }}
|
|
31
|
+
|
|
32
|
+
- name: Install Rust
|
|
33
|
+
uses: dtolnay/rust-toolchain@stable
|
|
34
|
+
|
|
35
|
+
# maturin develop needs an activated virtualenv; building a wheel and
|
|
36
|
+
# installing it works uniformly across OSes without one.
|
|
37
|
+
- name: Build and install
|
|
38
|
+
run: |
|
|
39
|
+
python -m pip install --upgrade pip
|
|
40
|
+
pip install maturin pytest numpy
|
|
41
|
+
maturin build --release --out dist
|
|
42
|
+
pip install --no-index --find-links dist rstar-python
|
|
43
|
+
|
|
44
|
+
- name: Run tests
|
|
45
|
+
run: pytest python/tests -v
|
|
46
|
+
|
|
47
|
+
rust-lint:
|
|
48
|
+
name: Rust fmt & clippy
|
|
49
|
+
runs-on: ubuntu-latest
|
|
50
|
+
steps:
|
|
51
|
+
- uses: actions/checkout@v4
|
|
52
|
+
- name: Install Rust
|
|
53
|
+
uses: dtolnay/rust-toolchain@stable
|
|
54
|
+
with:
|
|
55
|
+
components: rustfmt, clippy
|
|
56
|
+
- uses: actions/cache@v4
|
|
57
|
+
with:
|
|
58
|
+
path: |
|
|
59
|
+
~/.cargo/bin/
|
|
60
|
+
~/.cargo/registry/index/
|
|
61
|
+
~/.cargo/registry/cache/
|
|
62
|
+
~/.cargo/git/db/
|
|
63
|
+
target/
|
|
64
|
+
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
|
65
|
+
- name: Check formatting
|
|
66
|
+
run: cargo fmt --check
|
|
67
|
+
# --lib avoids linking a test executable, which fails for an
|
|
68
|
+
# extension-module cdylib (no libpython to link against).
|
|
69
|
+
- name: Clippy
|
|
70
|
+
run: cargo clippy --release --lib -- -D warnings
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
# Publish to PyPI on a version tag (e.g. `v0.1.0`), or to TestPyPI on demand.
|
|
4
|
+
#
|
|
5
|
+
# Tag flow:
|
|
6
|
+
# 1. Bump the version in pyproject.toml + Cargo.toml and update CHANGELOG.md.
|
|
7
|
+
# 2. git tag v0.1.0 && git push --tags
|
|
8
|
+
# 3. This workflow verifies the tag matches the version, runs the tests,
|
|
9
|
+
# builds wheels + sdist, publishes to PyPI via trusted publishing, and
|
|
10
|
+
# creates a GitHub Release with notes from the changelog.
|
|
11
|
+
#
|
|
12
|
+
# TestPyPI flow:
|
|
13
|
+
# Actions -> Release -> Run workflow -> target = testpypi.
|
|
14
|
+
|
|
15
|
+
on:
|
|
16
|
+
push:
|
|
17
|
+
tags: ["v*"]
|
|
18
|
+
workflow_dispatch:
|
|
19
|
+
inputs:
|
|
20
|
+
target:
|
|
21
|
+
description: "Where to publish"
|
|
22
|
+
required: true
|
|
23
|
+
default: testpypi
|
|
24
|
+
type: choice
|
|
25
|
+
options: [testpypi, pypi]
|
|
26
|
+
|
|
27
|
+
concurrency:
|
|
28
|
+
group: release-${{ github.ref }}
|
|
29
|
+
cancel-in-progress: false
|
|
30
|
+
|
|
31
|
+
jobs:
|
|
32
|
+
# Fail fast if the tag doesn't match the packaged version.
|
|
33
|
+
check-version:
|
|
34
|
+
name: Check version matches tag
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@v4
|
|
38
|
+
- name: Verify tag == pyproject == Cargo version
|
|
39
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
40
|
+
run: |
|
|
41
|
+
tag="${GITHUB_REF_NAME#v}"
|
|
42
|
+
pyproject=$(grep -m1 '^version = ' pyproject.toml | sed -E 's/.*"(.*)".*/\1/')
|
|
43
|
+
cargo=$(grep -m1 '^version = ' Cargo.toml | sed -E 's/.*"(.*)".*/\1/')
|
|
44
|
+
echo "tag=$tag pyproject=$pyproject cargo=$cargo"
|
|
45
|
+
if [ "$tag" != "$pyproject" ] || [ "$tag" != "$cargo" ]; then
|
|
46
|
+
echo "::error::Tag ($tag) must match pyproject.toml ($pyproject) and Cargo.toml ($cargo)"
|
|
47
|
+
exit 1
|
|
48
|
+
fi
|
|
49
|
+
|
|
50
|
+
# Native test gate so we never publish broken code.
|
|
51
|
+
test:
|
|
52
|
+
name: Test (Linux)
|
|
53
|
+
runs-on: ubuntu-latest
|
|
54
|
+
steps:
|
|
55
|
+
- uses: actions/checkout@v4
|
|
56
|
+
- uses: actions/setup-python@v5
|
|
57
|
+
with:
|
|
58
|
+
python-version: "3.12"
|
|
59
|
+
- uses: dtolnay/rust-toolchain@stable
|
|
60
|
+
- name: Build and test
|
|
61
|
+
run: |
|
|
62
|
+
python -m pip install --upgrade pip
|
|
63
|
+
pip install maturin pytest numpy
|
|
64
|
+
maturin build --release --out dist
|
|
65
|
+
pip install --no-index --find-links dist rstar-python
|
|
66
|
+
pytest python/tests -v
|
|
67
|
+
|
|
68
|
+
build-wheels:
|
|
69
|
+
name: Wheel ${{ matrix.platform }} ${{ matrix.target }} ${{ matrix.manylinux }}
|
|
70
|
+
needs: [test]
|
|
71
|
+
runs-on: ${{ matrix.os }}
|
|
72
|
+
strategy:
|
|
73
|
+
fail-fast: false
|
|
74
|
+
matrix:
|
|
75
|
+
include:
|
|
76
|
+
- { os: ubuntu-latest, platform: linux, target: x86_64, manylinux: auto }
|
|
77
|
+
- { os: ubuntu-latest, platform: linux, target: aarch64, manylinux: auto }
|
|
78
|
+
- { os: ubuntu-latest, platform: linux, target: x86_64, manylinux: musllinux_1_2 }
|
|
79
|
+
- { os: ubuntu-latest, platform: linux, target: aarch64, manylinux: musllinux_1_2 }
|
|
80
|
+
- { os: windows-latest, platform: windows, target: x64 }
|
|
81
|
+
# One universal2 wheel (Intel + Apple Silicon) cross-built on the
|
|
82
|
+
# fast arm64 runner — avoids the scarce/slow macos-13 Intel runners.
|
|
83
|
+
- { os: macos-14, platform: macos, target: universal2-apple-darwin }
|
|
84
|
+
steps:
|
|
85
|
+
- uses: actions/checkout@v4
|
|
86
|
+
- name: Build wheels
|
|
87
|
+
uses: PyO3/maturin-action@v1
|
|
88
|
+
with:
|
|
89
|
+
target: ${{ matrix.target }}
|
|
90
|
+
manylinux: ${{ matrix.manylinux }}
|
|
91
|
+
args: --release --out dist
|
|
92
|
+
sccache: "true"
|
|
93
|
+
- uses: actions/upload-artifact@v4
|
|
94
|
+
with:
|
|
95
|
+
name: wheels-${{ matrix.platform }}-${{ matrix.target }}-${{ matrix.manylinux || 'native' }}
|
|
96
|
+
path: dist/*.whl
|
|
97
|
+
|
|
98
|
+
build-sdist:
|
|
99
|
+
name: Source distribution
|
|
100
|
+
needs: [test]
|
|
101
|
+
runs-on: ubuntu-latest
|
|
102
|
+
steps:
|
|
103
|
+
- uses: actions/checkout@v4
|
|
104
|
+
- name: Build sdist
|
|
105
|
+
uses: PyO3/maturin-action@v1
|
|
106
|
+
with:
|
|
107
|
+
command: sdist
|
|
108
|
+
args: --out dist
|
|
109
|
+
- uses: actions/upload-artifact@v4
|
|
110
|
+
with:
|
|
111
|
+
name: sdist
|
|
112
|
+
path: dist/*.tar.gz
|
|
113
|
+
|
|
114
|
+
# Gather everything and validate before any publish step touches an index.
|
|
115
|
+
collect:
|
|
116
|
+
name: Collect and check artifacts
|
|
117
|
+
needs: [build-wheels, build-sdist]
|
|
118
|
+
runs-on: ubuntu-latest
|
|
119
|
+
steps:
|
|
120
|
+
- uses: actions/download-artifact@v4
|
|
121
|
+
with:
|
|
122
|
+
pattern: "wheels-*"
|
|
123
|
+
path: dist
|
|
124
|
+
merge-multiple: true
|
|
125
|
+
- uses: actions/download-artifact@v4
|
|
126
|
+
with:
|
|
127
|
+
name: sdist
|
|
128
|
+
path: dist
|
|
129
|
+
# A clean interpreter so a fresh `packaging` is used: the runner's
|
|
130
|
+
# system packaging is too old to recognise the Metadata 2.4
|
|
131
|
+
# `License-File` field and makes `twine check` spuriously fail.
|
|
132
|
+
- uses: actions/setup-python@v5
|
|
133
|
+
with:
|
|
134
|
+
python-version: "3.12"
|
|
135
|
+
- name: List and check
|
|
136
|
+
run: |
|
|
137
|
+
ls -la dist/
|
|
138
|
+
echo "wheels: $(ls dist/*.whl | wc -l), sdists: $(ls dist/*.tar.gz | wc -l)"
|
|
139
|
+
python -m pip install --upgrade twine packaging
|
|
140
|
+
twine check dist/*
|
|
141
|
+
- uses: actions/upload-artifact@v4
|
|
142
|
+
with:
|
|
143
|
+
name: dist
|
|
144
|
+
path: dist/*
|
|
145
|
+
|
|
146
|
+
publish-testpypi:
|
|
147
|
+
name: Publish to TestPyPI
|
|
148
|
+
needs: [collect]
|
|
149
|
+
if: github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'testpypi'
|
|
150
|
+
runs-on: ubuntu-latest
|
|
151
|
+
environment:
|
|
152
|
+
name: testpypi
|
|
153
|
+
url: https://test.pypi.org/p/rstar-python
|
|
154
|
+
permissions:
|
|
155
|
+
id-token: write
|
|
156
|
+
steps:
|
|
157
|
+
- uses: actions/download-artifact@v4
|
|
158
|
+
with:
|
|
159
|
+
name: dist
|
|
160
|
+
path: dist
|
|
161
|
+
- name: Publish
|
|
162
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
163
|
+
with:
|
|
164
|
+
repository-url: https://test.pypi.org/legacy/
|
|
165
|
+
packages-dir: dist/
|
|
166
|
+
# TestPyPI rejects PEP 740 attestations; disable for it.
|
|
167
|
+
attestations: false
|
|
168
|
+
skip-existing: true
|
|
169
|
+
verbose: true
|
|
170
|
+
|
|
171
|
+
publish-pypi:
|
|
172
|
+
name: Publish to PyPI
|
|
173
|
+
needs: [check-version, collect]
|
|
174
|
+
if: >-
|
|
175
|
+
startsWith(github.ref, 'refs/tags/v') ||
|
|
176
|
+
(github.event_name == 'workflow_dispatch' && github.event.inputs.target == 'pypi')
|
|
177
|
+
runs-on: ubuntu-latest
|
|
178
|
+
environment:
|
|
179
|
+
name: pypi
|
|
180
|
+
url: https://pypi.org/p/rstar-python
|
|
181
|
+
permissions:
|
|
182
|
+
id-token: write
|
|
183
|
+
steps:
|
|
184
|
+
- uses: actions/download-artifact@v4
|
|
185
|
+
with:
|
|
186
|
+
name: dist
|
|
187
|
+
path: dist
|
|
188
|
+
- name: Publish
|
|
189
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
190
|
+
with:
|
|
191
|
+
packages-dir: dist/
|
|
192
|
+
attestations: true
|
|
193
|
+
verbose: true
|
|
194
|
+
|
|
195
|
+
github-release:
|
|
196
|
+
name: GitHub Release
|
|
197
|
+
needs: [publish-pypi]
|
|
198
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
199
|
+
runs-on: ubuntu-latest
|
|
200
|
+
permissions:
|
|
201
|
+
contents: write
|
|
202
|
+
steps:
|
|
203
|
+
- uses: actions/checkout@v4
|
|
204
|
+
- uses: actions/download-artifact@v4
|
|
205
|
+
with:
|
|
206
|
+
name: dist
|
|
207
|
+
path: dist
|
|
208
|
+
- name: Extract changelog section
|
|
209
|
+
id: notes
|
|
210
|
+
run: |
|
|
211
|
+
version="${GITHUB_REF_NAME#v}"
|
|
212
|
+
# Pull the section for this version out of CHANGELOG.md.
|
|
213
|
+
awk -v v="$version" '
|
|
214
|
+
$0 ~ "^## \\[" v "\\]" {grab=1; next}
|
|
215
|
+
grab && /^## \[/ {exit}
|
|
216
|
+
grab {print}
|
|
217
|
+
' CHANGELOG.md > notes.md
|
|
218
|
+
if [ ! -s notes.md ]; then echo "See CHANGELOG.md for details." > notes.md; fi
|
|
219
|
+
echo "Release notes:"; cat notes.md
|
|
220
|
+
- name: Create release
|
|
221
|
+
uses: softprops/action-gh-release@v2
|
|
222
|
+
with:
|
|
223
|
+
body_path: notes.md
|
|
224
|
+
files: dist/*
|
|
225
|
+
fail_on_unmatched_files: true
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [Unreleased]
|
|
9
|
+
|
|
10
|
+
## [0.2.0] - 2026-08-21
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- `PyRTree.locate_in_envelope_ids()` for stored ids within a closed bounding box.
|
|
14
|
+
- `PyRTree.remove_item()` for exact point-and-id removal when points coincide.
|
|
15
|
+
- `PyBBoxRTree`, a 2–8 dimensional index for stored axis-aligned bounding boxes,
|
|
16
|
+
with insertion, optimized NumPy bulk loading, closed-boundary intersection,
|
|
17
|
+
and exact removal.
|
|
18
|
+
- `PyBBoxRTree.intersection_batch()` for vectorised queries with CSR-style output.
|
|
19
|
+
- Bounding-box bulk loading and batched intersections release the GIL while
|
|
20
|
+
running native tree operations.
|
|
21
|
+
|
|
22
|
+
## [0.1.0] - 2026-06-07
|
|
23
|
+
|
|
24
|
+
### Added
|
|
25
|
+
- Per-point integer ids: `insert(point, data=None)` returns the id (auto-assigned
|
|
26
|
+
or explicit); `bulk_load(points, data=None)` accepts a list of ids.
|
|
27
|
+
- Vectorised `query(points, k=1)` returning `(distances, ids)` numpy arrays
|
|
28
|
+
(scipy/sklearn `KDTree.query` style).
|
|
29
|
+
- Vectorised `query_radius(points, radius)` returning ids per query point.
|
|
30
|
+
- `bulk_load` now accepts a 2-D numpy `float64` array in addition to lists.
|
|
31
|
+
- Pythonic protocols: `__len__`, `__contains__`, `__repr__`, and a `dims` property.
|
|
32
|
+
- `__version__` attribute.
|
|
33
|
+
- Type stubs (`.pyi`) and `py.typed` marker for IDE / `mypy` support.
|
|
34
|
+
- `abi3` wheels (CPython 3.10+): one wheel per platform, forward-compatible with
|
|
35
|
+
future Python versions.
|
|
36
|
+
|
|
37
|
+
### Changed
|
|
38
|
+
- Bumped `pyo3` 0.19 → 0.28 and `rstar` 0.12 → 0.13.
|
|
39
|
+
- Supported dimensions are now **2–8** (was 1–4). rstar 0.13 no longer supports
|
|
40
|
+
1-dimensional trees; the upper bound was raised from 4 to 8.
|
|
41
|
+
- Fixed the Python package layout so wheels install and import correctly.
|
|
42
|
+
|
|
43
|
+
### Notes
|
|
44
|
+
- The coordinate-returning methods (`nearest_neighbor`, `k_nearest_neighbors`,
|
|
45
|
+
`neighbors_within_radius`, `locate_in_envelope`) are unchanged and remain
|
|
46
|
+
backward compatible.
|
|
47
|
+
|
|
48
|
+
## [0.0.1] - 2025-02-20
|
|
49
|
+
|
|
50
|
+
### Added
|
|
51
|
+
- Initial release of rstar-python
|
|
52
|
+
- Python bindings for the rstar R*-tree spatial index library
|
|
53
|
+
- Support for 2D and 3D spatial indexing
|
|
54
|
+
- Methods: insert, bulk_load, nearest, locate_within_distance, remove
|
|
55
|
+
- Support for Python 3.10, 3.11, and 3.12
|
|
56
|
+
- Wheels didn't work!
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
# This file is automatically @generated by Cargo.
|
|
2
|
+
# It is not intended for manual editing.
|
|
3
|
+
version = 4
|
|
4
|
+
|
|
5
|
+
[[package]]
|
|
6
|
+
name = "autocfg"
|
|
7
|
+
version = "1.5.1"
|
|
8
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
9
|
+
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
10
|
+
|
|
11
|
+
[[package]]
|
|
12
|
+
name = "byteorder"
|
|
13
|
+
version = "1.5.0"
|
|
14
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
15
|
+
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
|
|
16
|
+
|
|
17
|
+
[[package]]
|
|
18
|
+
name = "hash32"
|
|
19
|
+
version = "0.3.1"
|
|
20
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
21
|
+
checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606"
|
|
22
|
+
dependencies = [
|
|
23
|
+
"byteorder",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
[[package]]
|
|
27
|
+
name = "heapless"
|
|
28
|
+
version = "0.8.0"
|
|
29
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
30
|
+
checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad"
|
|
31
|
+
dependencies = [
|
|
32
|
+
"hash32",
|
|
33
|
+
"stable_deref_trait",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[[package]]
|
|
37
|
+
name = "heck"
|
|
38
|
+
version = "0.5.0"
|
|
39
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
40
|
+
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
41
|
+
|
|
42
|
+
[[package]]
|
|
43
|
+
name = "libc"
|
|
44
|
+
version = "0.2.186"
|
|
45
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
46
|
+
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
|
47
|
+
|
|
48
|
+
[[package]]
|
|
49
|
+
name = "libm"
|
|
50
|
+
version = "0.2.16"
|
|
51
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
52
|
+
checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981"
|
|
53
|
+
|
|
54
|
+
[[package]]
|
|
55
|
+
name = "matrixmultiply"
|
|
56
|
+
version = "0.3.10"
|
|
57
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
58
|
+
checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08"
|
|
59
|
+
dependencies = [
|
|
60
|
+
"autocfg",
|
|
61
|
+
"rawpointer",
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
[[package]]
|
|
65
|
+
name = "ndarray"
|
|
66
|
+
version = "0.17.2"
|
|
67
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
68
|
+
checksum = "520080814a7a6b4a6e9070823bb24b4531daac8c4627e08ba5de8c5ef2f2752d"
|
|
69
|
+
dependencies = [
|
|
70
|
+
"matrixmultiply",
|
|
71
|
+
"num-complex",
|
|
72
|
+
"num-integer",
|
|
73
|
+
"num-traits",
|
|
74
|
+
"portable-atomic",
|
|
75
|
+
"portable-atomic-util",
|
|
76
|
+
"rawpointer",
|
|
77
|
+
]
|
|
78
|
+
|
|
79
|
+
[[package]]
|
|
80
|
+
name = "num-complex"
|
|
81
|
+
version = "0.4.6"
|
|
82
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
83
|
+
checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
|
|
84
|
+
dependencies = [
|
|
85
|
+
"num-traits",
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
[[package]]
|
|
89
|
+
name = "num-integer"
|
|
90
|
+
version = "0.1.46"
|
|
91
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
92
|
+
checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
|
|
93
|
+
dependencies = [
|
|
94
|
+
"num-traits",
|
|
95
|
+
]
|
|
96
|
+
|
|
97
|
+
[[package]]
|
|
98
|
+
name = "num-traits"
|
|
99
|
+
version = "0.2.19"
|
|
100
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
101
|
+
checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
|
|
102
|
+
dependencies = [
|
|
103
|
+
"autocfg",
|
|
104
|
+
"libm",
|
|
105
|
+
]
|
|
106
|
+
|
|
107
|
+
[[package]]
|
|
108
|
+
name = "numpy"
|
|
109
|
+
version = "0.28.0"
|
|
110
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
111
|
+
checksum = "778da78c64ddc928ebf5ad9df5edf0789410ff3bdbf3619aed51cd789a6af1e2"
|
|
112
|
+
dependencies = [
|
|
113
|
+
"libc",
|
|
114
|
+
"ndarray",
|
|
115
|
+
"num-complex",
|
|
116
|
+
"num-integer",
|
|
117
|
+
"num-traits",
|
|
118
|
+
"pyo3",
|
|
119
|
+
"pyo3-build-config",
|
|
120
|
+
"rustc-hash",
|
|
121
|
+
]
|
|
122
|
+
|
|
123
|
+
[[package]]
|
|
124
|
+
name = "once_cell"
|
|
125
|
+
version = "1.21.4"
|
|
126
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
127
|
+
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
128
|
+
|
|
129
|
+
[[package]]
|
|
130
|
+
name = "portable-atomic"
|
|
131
|
+
version = "1.13.1"
|
|
132
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
133
|
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
134
|
+
|
|
135
|
+
[[package]]
|
|
136
|
+
name = "portable-atomic-util"
|
|
137
|
+
version = "0.2.7"
|
|
138
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
139
|
+
checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
|
|
140
|
+
dependencies = [
|
|
141
|
+
"portable-atomic",
|
|
142
|
+
]
|
|
143
|
+
|
|
144
|
+
[[package]]
|
|
145
|
+
name = "proc-macro2"
|
|
146
|
+
version = "1.0.106"
|
|
147
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
148
|
+
checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934"
|
|
149
|
+
dependencies = [
|
|
150
|
+
"unicode-ident",
|
|
151
|
+
]
|
|
152
|
+
|
|
153
|
+
[[package]]
|
|
154
|
+
name = "pyo3"
|
|
155
|
+
version = "0.28.3"
|
|
156
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
157
|
+
checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
|
|
158
|
+
dependencies = [
|
|
159
|
+
"libc",
|
|
160
|
+
"once_cell",
|
|
161
|
+
"portable-atomic",
|
|
162
|
+
"pyo3-build-config",
|
|
163
|
+
"pyo3-ffi",
|
|
164
|
+
"pyo3-macros",
|
|
165
|
+
]
|
|
166
|
+
|
|
167
|
+
[[package]]
|
|
168
|
+
name = "pyo3-build-config"
|
|
169
|
+
version = "0.28.3"
|
|
170
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
171
|
+
checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
|
|
172
|
+
dependencies = [
|
|
173
|
+
"target-lexicon",
|
|
174
|
+
]
|
|
175
|
+
|
|
176
|
+
[[package]]
|
|
177
|
+
name = "pyo3-ffi"
|
|
178
|
+
version = "0.28.3"
|
|
179
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
180
|
+
checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
|
|
181
|
+
dependencies = [
|
|
182
|
+
"libc",
|
|
183
|
+
"pyo3-build-config",
|
|
184
|
+
]
|
|
185
|
+
|
|
186
|
+
[[package]]
|
|
187
|
+
name = "pyo3-macros"
|
|
188
|
+
version = "0.28.3"
|
|
189
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
190
|
+
checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
|
|
191
|
+
dependencies = [
|
|
192
|
+
"proc-macro2",
|
|
193
|
+
"pyo3-macros-backend",
|
|
194
|
+
"quote",
|
|
195
|
+
"syn",
|
|
196
|
+
]
|
|
197
|
+
|
|
198
|
+
[[package]]
|
|
199
|
+
name = "pyo3-macros-backend"
|
|
200
|
+
version = "0.28.3"
|
|
201
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
202
|
+
checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
|
|
203
|
+
dependencies = [
|
|
204
|
+
"heck",
|
|
205
|
+
"proc-macro2",
|
|
206
|
+
"pyo3-build-config",
|
|
207
|
+
"quote",
|
|
208
|
+
"syn",
|
|
209
|
+
]
|
|
210
|
+
|
|
211
|
+
[[package]]
|
|
212
|
+
name = "quote"
|
|
213
|
+
version = "1.0.45"
|
|
214
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
215
|
+
checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
|
|
216
|
+
dependencies = [
|
|
217
|
+
"proc-macro2",
|
|
218
|
+
]
|
|
219
|
+
|
|
220
|
+
[[package]]
|
|
221
|
+
name = "rawpointer"
|
|
222
|
+
version = "0.2.1"
|
|
223
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
224
|
+
checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3"
|
|
225
|
+
|
|
226
|
+
[[package]]
|
|
227
|
+
name = "rstar"
|
|
228
|
+
version = "0.13.0"
|
|
229
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
230
|
+
checksum = "5912b862fa5ffb462607bfd1e35036c458c537921f508c8235a83d5f3987edfe"
|
|
231
|
+
dependencies = [
|
|
232
|
+
"heapless",
|
|
233
|
+
"num-traits",
|
|
234
|
+
"smallvec",
|
|
235
|
+
]
|
|
236
|
+
|
|
237
|
+
[[package]]
|
|
238
|
+
name = "rstar-python"
|
|
239
|
+
version = "0.2.0"
|
|
240
|
+
dependencies = [
|
|
241
|
+
"numpy",
|
|
242
|
+
"pyo3",
|
|
243
|
+
"rstar",
|
|
244
|
+
]
|
|
245
|
+
|
|
246
|
+
[[package]]
|
|
247
|
+
name = "rustc-hash"
|
|
248
|
+
version = "2.1.2"
|
|
249
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
250
|
+
checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe"
|
|
251
|
+
|
|
252
|
+
[[package]]
|
|
253
|
+
name = "smallvec"
|
|
254
|
+
version = "1.15.1"
|
|
255
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
256
|
+
checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
|
|
257
|
+
|
|
258
|
+
[[package]]
|
|
259
|
+
name = "stable_deref_trait"
|
|
260
|
+
version = "1.2.1"
|
|
261
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
262
|
+
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
|
|
263
|
+
|
|
264
|
+
[[package]]
|
|
265
|
+
name = "syn"
|
|
266
|
+
version = "2.0.117"
|
|
267
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
268
|
+
checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
|
|
269
|
+
dependencies = [
|
|
270
|
+
"proc-macro2",
|
|
271
|
+
"quote",
|
|
272
|
+
"unicode-ident",
|
|
273
|
+
]
|
|
274
|
+
|
|
275
|
+
[[package]]
|
|
276
|
+
name = "target-lexicon"
|
|
277
|
+
version = "0.13.5"
|
|
278
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
279
|
+
checksum = "adb6935a6f5c20170eeceb1a3835a49e12e19d792f6dd344ccc76a985ca5a6ca"
|
|
280
|
+
|
|
281
|
+
[[package]]
|
|
282
|
+
name = "unicode-ident"
|
|
283
|
+
version = "1.0.24"
|
|
284
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
285
|
+
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "rstar-python"
|
|
3
|
-
version = "0.0
|
|
3
|
+
version = "0.2.0"
|
|
4
4
|
edition = "2021"
|
|
5
|
-
license = "MIT"
|
|
5
|
+
license = "MIT"
|
|
6
6
|
description = "Python bindings for the rstar R*-tree spatial index"
|
|
7
7
|
repository = "https://github.com/kephale/rstar-python"
|
|
8
8
|
homepage = "https://github.com/kephale/rstar-python"
|
|
@@ -13,5 +13,6 @@ name = "rstar_python"
|
|
|
13
13
|
crate-type = ["cdylib"]
|
|
14
14
|
|
|
15
15
|
[dependencies]
|
|
16
|
-
pyo3 = { version = "0.
|
|
17
|
-
|
|
16
|
+
pyo3 = { version = "0.28", features = ["extension-module", "abi3-py310"] }
|
|
17
|
+
numpy = "0.28"
|
|
18
|
+
rstar = "0.13"
|