fastquadtree 2.4.1__tar.gz → 2.4.2__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.
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/.github/workflows/release.yml +28 -16
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/.gitignore +2 -1
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/Cargo.lock +1 -1
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/Cargo.toml +1 -1
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/PKG-INFO +1 -1
- fastquadtree-2.4.2/scripts/build_pyodide_wheel.sh +77 -0
- fastquadtree-2.4.1/scripts/build_pyodide_wheel.sh +0 -49
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/.github/workflows/docs.yml +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/.github/workflows/test.yml +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/.pre-commit-config.yaml +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/LICENSE +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/README.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/assets/ballpit.png +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/assets/interactive_v2_rect_screenshot.png +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/assets/interactive_v2_screenshot.png +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/assets/pygame_sprites_demo.png +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/assets/quadtree_bench_throughput.png +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/assets/quadtree_bench_time.png +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/benchmark_native_vs_shim.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/benchmark_np_vs_list.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/benchmark_serialization_vs_rebuild.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/cross_library_bench.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/quadtree_bench/__init__.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/quadtree_bench/engines.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/quadtree_bench/main.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/quadtree_bench/optimizer.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/quadtree_bench/plotting.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/quadtree_bench/runner.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/runner.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/benchmarks/system_info_collector.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/2.0_migration_guide.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/2.0_proposal.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/insert_result.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/item.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/point_item.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/pygame.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/pyqtree.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/quadtree.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/quadtree_objects.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/rect_item.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/rect_quadtree.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/api/rect_quadtree_objects.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/benchmark.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/engine_defaults.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/future_features.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/index.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/quickstart.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/runnables.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/rust_usage.md +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/docs/styles/overrides.css +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/examples/custom_id_example.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/examples/object_tracking_example.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/interactive/ballpit.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/interactive/interactive.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/interactive/interactive_v2.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/interactive/interactive_v2_rect.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/interactive/pygame_sprites.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/mkdocs.yml +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pyproject.toml +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pyrightconfig.json +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/__init__.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/_base_quadtree.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/_base_quadtree_objects.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/_common.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/_insert_result.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/_item.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/_obj_store.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/point_quadtree.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/point_quadtree_objects.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/py.typed +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/pygame.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/pyqtree.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/rect_quadtree.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/pysrc/fastquadtree/rect_quadtree_objects.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/src/geom.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/src/lib.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/src/quadtree.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/src/rect_quadtree.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/src/serialization.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/__init__.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/insertions.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/nearest_neighbor.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/query.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/rect_quadtree.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/rectangle_traversal.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/serialization.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_delete.rs +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/__init__.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_common_validation.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_insert_result_and_items.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_internal_edges.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_obj_store.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_serialization_container.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/conftest.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/integration/test_migration_breaks_and_safety.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/integration/test_optional_pygame_dependency.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/integration/test_public_api_contracts.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/integration/test_pygame_integration.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_core.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_mutation.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_numpy.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_precision.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_serialization.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points_objects/test_point_quadtree_objects_core.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points_objects/test_point_quadtree_objects_deletion_update.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points_objects/test_point_quadtree_objects_numpy.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points_objects/test_point_quadtree_objects_serialization.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects/test_rect_quadtree_core.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects/test_rect_quadtree_mutation.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects/test_rect_quadtree_numpy.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects/test_rect_quadtree_serialization.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects_objects/test_rect_quadtree_objects_core.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects_objects/test_rect_quadtree_objects_deletion_update.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects_objects/test_rect_quadtree_objects_numpy.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects_objects/test_rect_quadtree_objects_serialization.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/test_pyqtree_shim_compat.py +0 -0
- {fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/unconventional_bounds.rs +0 -0
|
@@ -100,49 +100,61 @@ jobs:
|
|
|
100
100
|
path: dist/*
|
|
101
101
|
|
|
102
102
|
build_pyodide:
|
|
103
|
-
name: Build Pyodide
|
|
103
|
+
name: Build Pyodide wheels
|
|
104
104
|
needs: test
|
|
105
105
|
runs-on: ubuntu-latest
|
|
106
|
+
strategy:
|
|
107
|
+
fail-fast: false
|
|
108
|
+
matrix:
|
|
109
|
+
include:
|
|
110
|
+
- label: pyodide-2025
|
|
111
|
+
python_version: "3.13"
|
|
112
|
+
xbuildenv_channel: "nightly"
|
|
113
|
+
xbuildenv_version: "20260401"
|
|
114
|
+
emscripten_version: "4.0.9"
|
|
115
|
+
wheel_glob: "fastquadtree-*-cp39-abi3-pyemscripten_2025_0_wasm32.whl"
|
|
116
|
+
- label: pyodide-2026
|
|
117
|
+
python_version: "3.14"
|
|
118
|
+
xbuildenv_channel: "stable"
|
|
119
|
+
xbuildenv_version: "314.0.0"
|
|
120
|
+
emscripten_version: "5.0.3"
|
|
121
|
+
wheel_glob: "fastquadtree-*-cp39-abi3-pyemscripten_2026_0_wasm32.whl"
|
|
106
122
|
steps:
|
|
107
123
|
- uses: actions/checkout@v6
|
|
108
124
|
|
|
109
125
|
- name: Set up Python
|
|
110
126
|
uses: actions/setup-python@v6
|
|
111
127
|
with:
|
|
112
|
-
python-version:
|
|
113
|
-
|
|
114
|
-
- name: Set up Node
|
|
115
|
-
uses: actions/setup-node@v4
|
|
116
|
-
with:
|
|
117
|
-
node-version: "24"
|
|
128
|
+
python-version: ${{ matrix.python_version }}
|
|
118
129
|
|
|
119
130
|
- name: Install uv
|
|
120
131
|
uses: astral-sh/setup-uv@v8.1.0
|
|
121
132
|
with:
|
|
122
133
|
enable-cache: true
|
|
123
134
|
|
|
124
|
-
- name: Install pyodide CLI
|
|
125
|
-
run: uv tool install pyodide-cli --with pyodide-build
|
|
126
|
-
|
|
127
135
|
- name: Cache Pyodide cross-build environment
|
|
128
136
|
uses: actions/cache@v4
|
|
129
137
|
with:
|
|
130
|
-
path: ~/.cache/fastquadtree
|
|
131
|
-
key: pyodide-xbuildenv-${{ runner.os }}-
|
|
138
|
+
path: ~/.cache/fastquadtree-${{ matrix.label }}
|
|
139
|
+
key: pyodide-xbuildenv-${{ runner.os }}-${{ matrix.label }}-${{ matrix.xbuildenv_version }}-${{ matrix.emscripten_version }}-rust-1.93.0
|
|
132
140
|
|
|
133
141
|
- name: Build Pyodide wheel
|
|
134
142
|
env:
|
|
135
|
-
|
|
136
|
-
|
|
143
|
+
PYODIDE_HOST_PYTHON: ${{ matrix.python_version }}
|
|
144
|
+
PYODIDE_XBUILDENV_ROOT: ~/.cache/fastquadtree-${{ matrix.label }}
|
|
145
|
+
PYODIDE_XBUILDENV_CHANNEL: ${{ matrix.xbuildenv_channel }}
|
|
146
|
+
PYODIDE_XBUILDENV_VERSION: ${{ matrix.xbuildenv_version }}
|
|
147
|
+
PYODIDE_EMSCRIPTEN_VERSION: ${{ matrix.emscripten_version }}
|
|
137
148
|
RUST_TOOLCHAIN: "1.93.0"
|
|
138
149
|
UV_CACHE_DIR: ~/.cache/uv
|
|
150
|
+
PYODIDE_EXPECTED_WHEEL_GLOB: ${{ matrix.wheel_glob }}
|
|
139
151
|
run: bash scripts/build_pyodide_wheel.sh
|
|
140
152
|
|
|
141
153
|
- name: Upload Pyodide dist artifact
|
|
142
154
|
uses: actions/upload-artifact@v7
|
|
143
155
|
with:
|
|
144
|
-
name: dist
|
|
145
|
-
path: dist
|
|
156
|
+
name: dist-${{ matrix.label }}
|
|
157
|
+
path: dist/${{ matrix.wheel_glob }}
|
|
146
158
|
|
|
147
159
|
publish:
|
|
148
160
|
name: Publish distributions to PyPI
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -euo pipefail
|
|
3
|
+
|
|
4
|
+
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
+
PYODIDE_HOST_PYTHON="${PYODIDE_HOST_PYTHON:-3.13}"
|
|
6
|
+
PYODIDE_XBUILDENV_VERSION="${PYODIDE_XBUILDENV_VERSION:-20260401}"
|
|
7
|
+
PYODIDE_XBUILDENV_CHANNEL="${PYODIDE_XBUILDENV_CHANNEL:-nightly}"
|
|
8
|
+
PYODIDE_EMSCRIPTEN_VERSION="${PYODIDE_EMSCRIPTEN_VERSION:-4.0.9}"
|
|
9
|
+
PYODIDE_XBUILDENV_ROOT="${PYODIDE_XBUILDENV_ROOT:-${XDG_CACHE_HOME:-$HOME/.cache}/fastquadtree-pyodide}"
|
|
10
|
+
RUST_TOOLCHAIN="${RUST_TOOLCHAIN:-1.93.0}"
|
|
11
|
+
UV_CACHE_DIR="${UV_CACHE_DIR:-${XDG_CACHE_HOME:-$HOME/.cache}/uv}"
|
|
12
|
+
PYODIDE_EXPECTED_WHEEL_GLOB="${PYODIDE_EXPECTED_WHEEL_GLOB:-fastquadtree-*-cp39-abi3-pyemscripten_2025_0_wasm32.whl}"
|
|
13
|
+
|
|
14
|
+
need_cmd() {
|
|
15
|
+
if ! command -v "$1" >/dev/null 2>&1; then
|
|
16
|
+
printf 'Missing required command: %s\n' "$1" >&2
|
|
17
|
+
exit 1
|
|
18
|
+
fi
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
need_cmd uv
|
|
22
|
+
need_cmd rustup
|
|
23
|
+
|
|
24
|
+
printf 'Using Pyodide xbuildenv root: %s\n' "$PYODIDE_XBUILDENV_ROOT"
|
|
25
|
+
printf 'Using Pyodide host Python: %s\n' "$PYODIDE_HOST_PYTHON"
|
|
26
|
+
printf 'Using Pyodide xbuildenv channel: %s\n' "$PYODIDE_XBUILDENV_CHANNEL"
|
|
27
|
+
printf 'Using Pyodide xbuildenv version: %s\n' "$PYODIDE_XBUILDENV_VERSION"
|
|
28
|
+
printf 'Using Emscripten version: %s\n' "$PYODIDE_EMSCRIPTEN_VERSION"
|
|
29
|
+
printf 'Using Rust toolchain: %s\n' "$RUST_TOOLCHAIN"
|
|
30
|
+
|
|
31
|
+
install_args=(
|
|
32
|
+
xbuildenv
|
|
33
|
+
install
|
|
34
|
+
"$PYODIDE_XBUILDENV_VERSION"
|
|
35
|
+
--path
|
|
36
|
+
"$PYODIDE_XBUILDENV_ROOT"
|
|
37
|
+
)
|
|
38
|
+
if [ "$PYODIDE_XBUILDENV_CHANNEL" = "nightly" ]; then
|
|
39
|
+
install_args+=(--nightly)
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
uv run --python "$PYODIDE_HOST_PYTHON" --with pyodide-build pyodide "${install_args[@]}"
|
|
43
|
+
uv run --python "$PYODIDE_HOST_PYTHON" --with pyodide-build pyodide \
|
|
44
|
+
xbuildenv install-emscripten \
|
|
45
|
+
--version "$PYODIDE_EMSCRIPTEN_VERSION" \
|
|
46
|
+
--path "$PYODIDE_XBUILDENV_ROOT"
|
|
47
|
+
|
|
48
|
+
rustup toolchain install "$RUST_TOOLCHAIN"
|
|
49
|
+
rustup target add wasm32-unknown-emscripten --toolchain "$RUST_TOOLCHAIN"
|
|
50
|
+
|
|
51
|
+
EMSDK_ENV="$PYODIDE_XBUILDENV_ROOT/$PYODIDE_XBUILDENV_VERSION/emsdk/emsdk_env.sh"
|
|
52
|
+
if [ ! -f "$EMSDK_ENV" ]; then
|
|
53
|
+
printf 'Expected emsdk activation script at %s\n' "$EMSDK_ENV" >&2
|
|
54
|
+
exit 1
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
# shellcheck source=/dev/null
|
|
58
|
+
source "$EMSDK_ENV" >/dev/null 2>&1
|
|
59
|
+
|
|
60
|
+
export PYODIDE_XBUILDENV_PATH="$PYODIDE_XBUILDENV_ROOT"
|
|
61
|
+
export RUSTUP_TOOLCHAIN="$RUST_TOOLCHAIN"
|
|
62
|
+
export UV_CACHE_DIR
|
|
63
|
+
|
|
64
|
+
cd "$PROJECT_ROOT"
|
|
65
|
+
mkdir -p dist
|
|
66
|
+
rm -f dist/fastquadtree-*-pyemscripten_*_wasm32.whl
|
|
67
|
+
uv run --python "$PYODIDE_HOST_PYTHON" --with pyodide-build pyodide build . --outdir dist
|
|
68
|
+
|
|
69
|
+
printf '\nBuilt wheel:\n'
|
|
70
|
+
shopt -s nullglob
|
|
71
|
+
matches=("$PROJECT_ROOT"/dist/$PYODIDE_EXPECTED_WHEEL_GLOB)
|
|
72
|
+
if [ "${#matches[@]}" -eq 0 ]; then
|
|
73
|
+
printf 'No wheel matching expected Pyodide target was produced: %s\n' \
|
|
74
|
+
"$PYODIDE_EXPECTED_WHEEL_GLOB" >&2
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
printf '%s\n' "${matches[@]}" | sort
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
set -euo pipefail
|
|
3
|
-
|
|
4
|
-
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
5
|
-
PYODIDE_ENV_VERSION="${PYODIDE_ENV_VERSION:-20260401}"
|
|
6
|
-
PYODIDE_XBUILDENV_ROOT="${PYODIDE_XBUILDENV_ROOT:-${XDG_CACHE_HOME:-$HOME/.cache}/fastquadtree-pyodide}"
|
|
7
|
-
RUST_TOOLCHAIN="${RUST_TOOLCHAIN:-1.93.0}"
|
|
8
|
-
UV_CACHE_DIR="${UV_CACHE_DIR:-${XDG_CACHE_HOME:-$HOME/.cache}/uv}"
|
|
9
|
-
|
|
10
|
-
need_cmd() {
|
|
11
|
-
if ! command -v "$1" >/dev/null 2>&1; then
|
|
12
|
-
printf 'Missing required command: %s\n' "$1" >&2
|
|
13
|
-
exit 1
|
|
14
|
-
fi
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
need_cmd pyodide
|
|
18
|
-
need_cmd rustup
|
|
19
|
-
|
|
20
|
-
printf 'Using Pyodide xbuildenv root: %s\n' "$PYODIDE_XBUILDENV_ROOT"
|
|
21
|
-
printf 'Using Pyodide nightly env: %s\n' "$PYODIDE_ENV_VERSION"
|
|
22
|
-
printf 'Using Rust toolchain: %s\n' "$RUST_TOOLCHAIN"
|
|
23
|
-
|
|
24
|
-
if [ ! -d "$PYODIDE_XBUILDENV_ROOT/$PYODIDE_ENV_VERSION" ]; then
|
|
25
|
-
pyodide xbuildenv install "$PYODIDE_ENV_VERSION" --nightly --path "$PYODIDE_XBUILDENV_ROOT"
|
|
26
|
-
fi
|
|
27
|
-
|
|
28
|
-
pyodide xbuildenv install-emscripten --path "$PYODIDE_XBUILDENV_ROOT"
|
|
29
|
-
rustup toolchain install "$RUST_TOOLCHAIN"
|
|
30
|
-
rustup target add wasm32-unknown-emscripten --toolchain "$RUST_TOOLCHAIN"
|
|
31
|
-
|
|
32
|
-
EMSDK_ENV="$PYODIDE_XBUILDENV_ROOT/$PYODIDE_ENV_VERSION/emsdk/emsdk_env.sh"
|
|
33
|
-
if [ ! -f "$EMSDK_ENV" ]; then
|
|
34
|
-
printf 'Expected emsdk activation script at %s\n' "$EMSDK_ENV" >&2
|
|
35
|
-
exit 1
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
# shellcheck source=/dev/null
|
|
39
|
-
source "$EMSDK_ENV" >/dev/null 2>&1
|
|
40
|
-
|
|
41
|
-
export PYODIDE_XBUILDENV_PATH="$PYODIDE_XBUILDENV_ROOT"
|
|
42
|
-
export RUSTUP_TOOLCHAIN="$RUST_TOOLCHAIN"
|
|
43
|
-
export UV_CACHE_DIR
|
|
44
|
-
|
|
45
|
-
cd "$PROJECT_ROOT"
|
|
46
|
-
pyodide build .
|
|
47
|
-
|
|
48
|
-
printf '\nBuilt wheel:\n'
|
|
49
|
-
find "$PROJECT_ROOT/dist" -maxdepth 1 -type f -name 'fastquadtree-*-pyemscripten_*_wasm32.whl' -print | sort
|
|
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
|
|
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
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_common_validation.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_insert_result_and_items.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/common/test_serialization_container.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/integration/test_public_api_contracts.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/integration/test_pygame_integration.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_core.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_mutation.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_numpy.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/points/test_point_quadtree_precision.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects/test_rect_quadtree_core.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects/test_rect_quadtree_mutation.py
RENAMED
|
File without changes
|
{fastquadtree-2.4.1 → fastquadtree-2.4.2}/tests/test_python/rects/test_rect_quadtree_numpy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|