fastquadtree 0.4.0__tar.gz → 0.4.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/.github/workflows/release.yml +22 -0
  2. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/Cargo.lock +1 -1
  3. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/Cargo.toml +1 -1
  4. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/PKG-INFO +18 -3
  5. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/README.md +17 -2
  6. fastquadtree-0.4.1/assets/quadtree_bench_throughput.png +0 -0
  7. fastquadtree-0.4.1/assets/quadtree_bench_time.png +0 -0
  8. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/quadtree_bench/engines.py +1 -1
  9. fastquadtree-0.4.0/assets/quadtree_bench_throughput.png +0 -0
  10. fastquadtree-0.4.0/assets/quadtree_bench_time.png +0 -0
  11. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/.gitignore +0 -0
  12. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/.pre-commit-config.yaml +0 -0
  13. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/LICENSE +0 -0
  14. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/assets/interactive_v2_screenshot.png +0 -0
  15. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/benchmark_native_vs_shim.py +0 -0
  16. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/cross_library_bench.py +0 -0
  17. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/quadtree_bench/__init__.py +0 -0
  18. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/quadtree_bench/main.py +0 -0
  19. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/quadtree_bench/plotting.py +0 -0
  20. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/quadtree_bench/runner.py +0 -0
  21. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/requirements.txt +0 -0
  22. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/benchmarks/runner.py +0 -0
  23. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/examples/delete_demo.rs +0 -0
  24. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/interactive/interactive.py +0 -0
  25. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/interactive/interactive_v2.py +0 -0
  26. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/interactive/requirements.txt +0 -0
  27. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/pyproject.toml +0 -0
  28. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/pysrc/fastquadtree/__init__.py +0 -0
  29. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/pysrc/fastquadtree/__init__.pyi +0 -0
  30. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/pysrc/fastquadtree/_bimap.py +0 -0
  31. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/pysrc/fastquadtree/_item.py +0 -0
  32. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/pysrc/fastquadtree/py.typed +0 -0
  33. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/src/geom.rs +0 -0
  34. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/src/lib.rs +0 -0
  35. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/src/quadtree.rs +0 -0
  36. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/insertions.rs +0 -0
  37. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/nearest_neighbor.rs +0 -0
  38. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/query.rs +0 -0
  39. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/rectangle_traversal.rs +0 -0
  40. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/test_bimap.py +0 -0
  41. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/test_delete.rs +0 -0
  42. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/test_delete_by_object.py +0 -0
  43. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/test_delete_python.py +0 -0
  44. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/test_python.py +0 -0
  45. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/test_unconventional_bounds.py +0 -0
  46. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/test_wrapper_edges.py +0 -0
  47. {fastquadtree-0.4.0 → fastquadtree-0.4.1}/tests/unconventional_bounds.rs +0 -0
@@ -9,6 +9,28 @@ on:
9
9
  workflow_dispatch:
10
10
 
11
11
  jobs:
12
+ test:
13
+ name: Test build
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - name: Set up Python
18
+ uses: actions/setup-python@v5
19
+ with:
20
+ python-version: "3.10"
21
+ - name: Build with maturin
22
+ uses: PyO3/maturin-action@v1
23
+ with:
24
+ command: build
25
+ manylinux: manylinux2014
26
+ - name: Install Dependencies
27
+ run: pip install pytest pytest-cov
28
+ - name: Test with pytest
29
+ run: pytest --cov --cov-branch --cov-report=xml
30
+ - name: Upload coverage to Codecov
31
+ uses: codecov/codecov-action@v5
32
+ with:
33
+ token: ${{ secrets.CODECOV_TOKEN }}
12
34
  build:
13
35
  name: Build wheels
14
36
  runs-on: ${{ matrix.os }}
@@ -22,7 +22,7 @@ checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
22
22
 
23
23
  [[package]]
24
24
  name = "fastquadtree"
25
- version = "0.4.0"
25
+ version = "0.4.1"
26
26
  dependencies = [
27
27
  "pyo3",
28
28
  ]
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "fastquadtree"
3
- version = "0.4.0"
3
+ version = "0.4.1"
4
4
  edition = "2021"
5
5
  readme = "README.md"
6
6
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastquadtree
3
- Version: 0.4.0
3
+ Version: 0.4.1
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3 :: Only
6
6
  Classifier: Programming Language :: Rust
@@ -23,7 +23,22 @@ Project-URL: Issues, https://github.com/Elan456/fastquadtree/issues
23
23
 
24
24
  # fastquadtree
25
25
 
26
- [![PyPI Downloads](https://static.pepy.tech/personalized-badge/fastquadtree?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=BLUE&left_text=downloads)](https://pepy.tech/projects/fastquadtree)
26
+ [![PyPI version](https://img.shields.io/pypi/v/fastquadtree.svg)](https://pypi.org/project/fastquadtree/)
27
+ [![Python versions](https://img.shields.io/pypi/pyversions/fastquadtree.svg)](https://pypi.org/project/fastquadtree/)
28
+ [![Wheels](https://img.shields.io/pypi/wheel/fastquadtree.svg)](https://pypi.org/project/fastquadtree/#files)
29
+ [![License: MIT](https://img.shields.io/pypi/l/fastquadtree.svg)](LICENSE)
30
+
31
+ [![Downloads total](https://static.pepy.tech/badge/fastquadtree)](https://pepy.tech/projects/fastquadtree)
32
+ [![Downloads month](https://static.pepy.tech/badge/fastquadtree/month)](https://pepy.tech/projects/fastquadtree)
33
+
34
+ [![Build](https://github.com/Elan456/fastquadtree/actions/workflows/release.yml/badge.svg)](https://github.com/Elan456/fastquadtree/actions/workflows/ci.yml)
35
+ [![Codecov](https://codecov.io/gh/Elan456/fastquadtree/branch/main/graph/badge.svg)](https://codecov.io/gh/Elan456/fastquadtree)
36
+
37
+ [![Rust core via PyO3](https://img.shields.io/badge/Rust-core%20via%20PyO3-orange)](https://pyo3.rs/)
38
+ [![Built with maturin](https://img.shields.io/badge/Built%20with-maturin-1f6feb)](https://www.maturin.rs/)
39
+ [![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
40
+ [![Type checking: mypy](https://img.shields.io/badge/type%20checking-mypy-2a6db2)](http://mypy-lang.org/)
41
+
27
42
 
28
43
  ![Interactive_V2_Screenshot](https://raw.githubusercontent.com/Elan456/fastquadtree/main/assets/interactive_v2_screenshot.png)
29
44
 
@@ -86,7 +101,7 @@ id1 = qt_tracked.insert((50, 50), obj=player1)
86
101
  id2 = qt_tracked.insert((150, 150), obj=player2)
87
102
 
88
103
  # Delete by object reference (O(1) lookup!)
89
- deleted = qt_tracked.delete_by_object(player1, (50, 50))
104
+ deleted = qt_tracked.delete_by_object(player1)
90
105
  print(f"Deleted player: {deleted}") # True
91
106
  ```
92
107
 
@@ -1,6 +1,21 @@
1
1
  # fastquadtree
2
2
 
3
- [![PyPI Downloads](https://static.pepy.tech/personalized-badge/fastquadtree?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=BLUE&left_text=downloads)](https://pepy.tech/projects/fastquadtree)
3
+ [![PyPI version](https://img.shields.io/pypi/v/fastquadtree.svg)](https://pypi.org/project/fastquadtree/)
4
+ [![Python versions](https://img.shields.io/pypi/pyversions/fastquadtree.svg)](https://pypi.org/project/fastquadtree/)
5
+ [![Wheels](https://img.shields.io/pypi/wheel/fastquadtree.svg)](https://pypi.org/project/fastquadtree/#files)
6
+ [![License: MIT](https://img.shields.io/pypi/l/fastquadtree.svg)](LICENSE)
7
+
8
+ [![Downloads total](https://static.pepy.tech/badge/fastquadtree)](https://pepy.tech/projects/fastquadtree)
9
+ [![Downloads month](https://static.pepy.tech/badge/fastquadtree/month)](https://pepy.tech/projects/fastquadtree)
10
+
11
+ [![Build](https://github.com/Elan456/fastquadtree/actions/workflows/release.yml/badge.svg)](https://github.com/Elan456/fastquadtree/actions/workflows/ci.yml)
12
+ [![Codecov](https://codecov.io/gh/Elan456/fastquadtree/branch/main/graph/badge.svg)](https://codecov.io/gh/Elan456/fastquadtree)
13
+
14
+ [![Rust core via PyO3](https://img.shields.io/badge/Rust-core%20via%20PyO3-orange)](https://pyo3.rs/)
15
+ [![Built with maturin](https://img.shields.io/badge/Built%20with-maturin-1f6feb)](https://www.maturin.rs/)
16
+ [![Code style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
17
+ [![Type checking: mypy](https://img.shields.io/badge/type%20checking-mypy-2a6db2)](http://mypy-lang.org/)
18
+
4
19
 
5
20
  ![Interactive_V2_Screenshot](https://raw.githubusercontent.com/Elan456/fastquadtree/main/assets/interactive_v2_screenshot.png)
6
21
 
@@ -63,7 +78,7 @@ id1 = qt_tracked.insert((50, 50), obj=player1)
63
78
  id2 = qt_tracked.insert((150, 150), obj=player2)
64
79
 
65
80
  # Delete by object reference (O(1) lookup!)
66
- deleted = qt_tracked.delete_by_object(player1, (50, 50))
81
+ deleted = qt_tracked.delete_by_object(player1)
67
82
  print(f"Deleted player: {deleted}") # True
68
83
  ```
69
84
 
@@ -247,7 +247,7 @@ def get_engines(
247
247
  "fastquadtree": _create_fastquadtree_engine(bounds, max_points, max_depth),
248
248
  "e-pyquadtree": _create_e_pyquadtree_engine(bounds, max_points, max_depth),
249
249
  "PyQtree": _create_pyqtree_engine(bounds, max_points, max_depth),
250
- "Brute force": _create_brute_force_engine(bounds, max_points, max_depth),
250
+ # "Brute force": _create_brute_force_engine(bounds, max_points, max_depth), # Brute force doesn't scale well on the graphs so omit it from the main set
251
251
  }
252
252
 
253
253
  # Optional engines (only include if import succeeded)
File without changes
File without changes
File without changes
File without changes