fastquadtree 0.8.0__tar.gz → 0.8.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 (65) hide show
  1. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/Cargo.lock +1 -1
  2. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/Cargo.toml +1 -1
  3. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/PKG-INFO +1 -1
  4. fastquadtree-0.8.1/assets/interactive_v2_rect_screenshot.png +0 -0
  5. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/benchmark.md +4 -0
  6. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/index.md +1 -0
  7. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/quickstart.md +1 -1
  8. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/runnables.md +2 -0
  9. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/interactive_v2_rect.py +2 -2
  10. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/rect_quadtree.py +3 -1
  11. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.github/workflows/docs.yml +0 -0
  12. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.github/workflows/release.yml +0 -0
  13. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.gitignore +0 -0
  14. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.pre-commit-config.yaml +0 -0
  15. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/LICENSE +0 -0
  16. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/README.md +0 -0
  17. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/ballpit.png +0 -0
  18. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/interactive_v2_screenshot.png +0 -0
  19. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/quadtree_bench_throughput.png +0 -0
  20. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/quadtree_bench_time.png +0 -0
  21. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/benchmark_native_vs_shim.py +0 -0
  22. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/cross_library_bench.py +0 -0
  23. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/__init__.py +0 -0
  24. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/engines.py +0 -0
  25. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/main.py +0 -0
  26. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/plotting.py +0 -0
  27. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/runner.py +0 -0
  28. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/requirements.txt +0 -0
  29. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/runner.py +0 -0
  30. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/system_info_collector.py +0 -0
  31. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/point_item.md +0 -0
  32. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/quadtree.md +0 -0
  33. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/rect_item.md +0 -0
  34. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/rect_quadtree.md +0 -0
  35. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/ballpit.py +0 -0
  36. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/interactive.py +0 -0
  37. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/interactive_v2.py +0 -0
  38. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/requirements.txt +0 -0
  39. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/mkdocs.yml +0 -0
  40. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pyproject.toml +0 -0
  41. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/__init__.py +0 -0
  42. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/_base_quadtree.py +0 -0
  43. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/_bimap.py +0 -0
  44. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/_item.py +0 -0
  45. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/point_quadtree.py +0 -0
  46. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/py.typed +0 -0
  47. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/geom.rs +0 -0
  48. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/lib.rs +0 -0
  49. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/quadtree.rs +0 -0
  50. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/rect_quadtree.rs +0 -0
  51. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/insertions.rs +0 -0
  52. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/nearest_neighbor.rs +0 -0
  53. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/query.rs +0 -0
  54. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/rect_quadtree.rs +0 -0
  55. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/rectangle_traversal.rs +0 -0
  56. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_bimap.py +0 -0
  57. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_clear.py +0 -0
  58. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_delete.rs +0 -0
  59. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_delete_by_object.py +0 -0
  60. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_delete_python.py +0 -0
  61. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_python.py +0 -0
  62. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_rect_quadtree.py +0 -0
  63. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_unconventional_bounds.py +0 -0
  64. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_wrapper_edges.py +0 -0
  65. {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/unconventional_bounds.rs +0 -0
@@ -22,7 +22,7 @@ checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
22
22
 
23
23
  [[package]]
24
24
  name = "fastquadtree"
25
- version = "0.8.0"
25
+ version = "0.8.1"
26
26
  dependencies = [
27
27
  "pyo3",
28
28
  "smallvec",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "fastquadtree"
3
- version = "0.8.0"
3
+ version = "0.8.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.8.0
3
+ Version: 0.8.1
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3 :: Only
6
6
  Classifier: Programming Language :: Rust
@@ -33,6 +33,8 @@ Quadtrees are the focus of the benchmark, but Rtrees are included for reference.
33
33
  | Max depth | 16 |
34
34
  | Queries per experiment | 500 |
35
35
 
36
+ ---------
37
+
36
38
  ## Native vs Shim
37
39
 
38
40
  ### Configuration
@@ -55,6 +57,8 @@ Using the shim with object tracking increases build time by 3.604x and query tim
55
57
 
56
58
  Adding the object map only impacts the build time, not the query time.
57
59
 
60
+ ---------
61
+
58
62
  ## System Info
59
63
  - **OS**: Windows 11 AMD64
60
64
  - **Python**: CPython 3.12.2
@@ -39,6 +39,7 @@
39
39
  - Fast inserts and queries on hundreds of thousands of points
40
40
  - Optional object tracking for id ↔ object mapping
41
41
  - Clean integrations for range queries and nearest neighbors
42
+ - Support for inserting bounding boxes or points
42
43
 
43
44
  ## Install
44
45
  ```bash
@@ -2,7 +2,7 @@
2
2
 
3
3
  Meet **fastquadtree** — a Rust powered spatial index for Python
4
4
 
5
- > TLDR: create a tree, insert points, query ranges or nearest neighbors.
5
+ > TLDR: create a tree, insert points, insert boxes, query ranges or nearest neighbors.
6
6
 
7
7
  ## Installation
8
8
 
@@ -21,6 +21,8 @@ pip install -r interactive/requirements.txt
21
21
  python interactive/interactive_v2_rect.py
22
22
  ```
23
23
 
24
+ ![Interactive_V2_Rect_Screenshot](https://raw.githubusercontent.com/Elan456/fastquadtree/main/assets/interactive_v2_rect_screenshot.png)
25
+
24
26
  ## 2. Ball Pit
25
27
  - Spawn balls in a pit with physics-based collisions
26
28
  - Easily switch between brute force and quadtree collision detection to see the performance difference
@@ -85,8 +85,8 @@ class Box:
85
85
  spd = random.uniform(60.0, 160.0)
86
86
  self.vx = math.cos(ang) * spd
87
87
  self.vy = math.sin(ang) * spd
88
- self.w = random.uniform(8.0, 20.0)
89
- self.h = random.uniform(8.0, 20.0)
88
+ self.w = random.uniform(8.0, 200.0)
89
+ self.h = random.uniform(8.0, 200.0)
90
90
 
91
91
  def update(self, dt):
92
92
  self.x += self.vx * dt
@@ -59,7 +59,9 @@ class RectQuadTree(_BaseQuadTree[Bounds, _IdRect, RectItem]):
59
59
  ) -> list[_IdRect]: ...
60
60
  @overload
61
61
  def query(self, rect: Bounds, *, as_items: Literal[True]) -> list[RectItem]: ...
62
- def query(self, rect: Bounds, *, as_items: bool = False):
62
+ def query(
63
+ self, rect: Bounds, *, as_items: bool = False
64
+ ) -> list[_IdRect] | list[RectItem]:
63
65
  """
64
66
  Query the tree for all items that intersect the given rectangle.
65
67
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes