fastquadtree 1.3.0__cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl → 1.3.1__cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

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.

Potentially problematic release.


This version of fastquadtree might be problematic. Click here for more details.

@@ -29,6 +29,14 @@ G = TypeVar("G") # geometry type, e.g. Point or Bounds
29
29
  HitT = TypeVar("HitT") # raw native tuple, e.g. (id,x,y) or (id,x0,y0,x1,y1)
30
30
  ItemType = TypeVar("ItemType", bound=Item) # e.g. PointItem or RectItem
31
31
 
32
+ # Quadtree dtype to numpy dtype mapping
33
+ QUADTREE_DTYPE_TO_NP_DTYPE = {
34
+ "f32": "float32",
35
+ "f64": "float64",
36
+ "i32": "int32",
37
+ "i64": "int64",
38
+ }
39
+
32
40
 
33
41
  def _is_np_array(x: Any) -> bool:
34
42
  mod = getattr(x.__class__, "__module__", "")
@@ -250,7 +258,7 @@ class _BaseQuadTree(Generic[G, HitT, ItemType], ABC):
250
258
  ) -> int:
251
259
  """
252
260
  Bulk insert with auto-assigned contiguous ids. Faster than inserting one-by-one.<br>
253
- Can accept either a Python sequence of geometries or a NumPy array of shape (N,2) or (N,4) with dtype float32.
261
+ Can accept either a Python sequence of geometries or a NumPy array of shape (N,2) or (N,4) with a dtype that matches the quadtree's dtype.
254
262
 
255
263
  If tracking is enabled, the objects will be bulk stored internally.
256
264
  If no objects are provided, the items will have obj=None (if tracking).
@@ -289,8 +297,12 @@ class _BaseQuadTree(Generic[G, HitT, ItemType], ABC):
289
297
  if geoms.size == 0:
290
298
  return 0
291
299
 
292
- if geoms.dtype != _np.float32:
293
- raise TypeError("Numpy array must use dtype float32")
300
+ # Check if dtype matches quadtree dtype
301
+ expected_np_dtype = QUADTREE_DTYPE_TO_NP_DTYPE.get(self._dtype)
302
+ if geoms.dtype != expected_np_dtype:
303
+ raise TypeError(
304
+ f"Numpy array dtype {geoms.dtype} does not match quadtree dtype {self._dtype}"
305
+ )
294
306
 
295
307
  if self._store is None:
296
308
  # Simple contiguous path with native bulk insert
Binary file
@@ -161,7 +161,7 @@ class QuadTree(_BaseQuadTree[Point, _IdCoord, PointItem]):
161
161
  """Create the native engine instance."""
162
162
  rust_cls = DTYPE_MAP.get(self._dtype)
163
163
  if rust_cls is None:
164
- raise ValueError(f"Unsupported dtype: {self._dtype}")
164
+ raise TypeError(f"Unsupported dtype: {self._dtype}")
165
165
  return rust_cls(bounds, capacity, max_depth)
166
166
 
167
167
  @classmethod
@@ -169,7 +169,7 @@ class QuadTree(_BaseQuadTree[Point, _IdCoord, PointItem]):
169
169
  """Create a new native engine instance from serialized bytes."""
170
170
  rust_cls = DTYPE_MAP.get(dtype)
171
171
  if rust_cls is None:
172
- raise ValueError(f"Unsupported dtype: {dtype}")
172
+ raise TypeError(f"Unsupported dtype: {dtype}")
173
173
  return rust_cls.from_bytes(data)
174
174
 
175
175
  @staticmethod
@@ -101,7 +101,7 @@ class RectQuadTree(_BaseQuadTree[Bounds, _IdRect, RectItem]):
101
101
  """Create the native engine instance."""
102
102
  rust_cls = DTYPE_MAP.get(self._dtype)
103
103
  if rust_cls is None:
104
- raise ValueError(f"Unsupported dtype: {self._dtype}")
104
+ raise TypeError(f"Unsupported dtype: {self._dtype}")
105
105
  return rust_cls(bounds, capacity, max_depth)
106
106
 
107
107
  @classmethod
@@ -109,7 +109,7 @@ class RectQuadTree(_BaseQuadTree[Bounds, _IdRect, RectItem]):
109
109
  """Create a new native engine instance from serialized bytes."""
110
110
  rust_cls = DTYPE_MAP.get(dtype)
111
111
  if rust_cls is None:
112
- raise ValueError(f"Unsupported dtype: {dtype}")
112
+ raise TypeError(f"Unsupported dtype: {dtype}")
113
113
  return rust_cls.from_bytes(data)
114
114
 
115
115
  @staticmethod
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastquadtree
3
- Version: 1.3.0
3
+ Version: 1.3.1
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3 :: Only
6
6
  Classifier: Programming Language :: Rust
@@ -0,0 +1,13 @@
1
+ fastquadtree-1.3.1.dist-info/METADATA,sha256=YIM8YulIaIIme-cHchU0DJfSBmFDlcZ3c32Xep0Mr90,9747
2
+ fastquadtree-1.3.1.dist-info/WHEEL,sha256=xBqaWU3Z-cfW-EFy0ENuEqxgXZXkIHUBkA1cT6FlqGM,127
3
+ fastquadtree-1.3.1.dist-info/licenses/LICENSE,sha256=pRuvcuqIMtEUBMgvP1Bc4fOHydzeuA61c6DQoQ1pb1w,1071
4
+ fastquadtree/__init__.py,sha256=rtkveNz7rScRasTRGu1yEqzeoJfLfreJNxg21orPL-U,195
5
+ fastquadtree/_base_quadtree.py,sha256=8YXQ9txNHlOD0wFv78PU17JumL4Nb_WnZIwt1FOgMy8,16325
6
+ fastquadtree/_item.py,sha256=EDS3nJHdVtjDsuTqTZKGTZH8iWJIQ-TKxLXqvMScNPA,2405
7
+ fastquadtree/_native.abi3.so,sha256=_13nZO1S0gjsWEkgTR92WuJBh51qV-MbFvHmEW_A-zU,753972
8
+ fastquadtree/_obj_store.py,sha256=HeYFGUPYhvxBzL7Js0g0jsIxflpZS6RsXNk50rGeNlA,6522
9
+ fastquadtree/point_quadtree.py,sha256=BbTlY1hJLh5oVI7zgkjMCReO8GlPKy4pJqHHSZKo5SA,6179
10
+ fastquadtree/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
+ fastquadtree/pyqtree.py,sha256=2Khh1gCPalD4z0gb3EmqtzMoga08E9BkB0j5bwkiRPU,6076
12
+ fastquadtree/rect_quadtree.py,sha256=zD3MqFqDJRd3oJcuT5EMkuMnq_ABfMVhf-wXbidK7jE,4002
13
+ fastquadtree-1.3.1.dist-info/RECORD,,
@@ -1,13 +0,0 @@
1
- fastquadtree-1.3.0.dist-info/METADATA,sha256=NIDXaSGreQNVvoCiTLKAty1ylz_-PsnQe_ABTWrQ6u4,9747
2
- fastquadtree-1.3.0.dist-info/WHEEL,sha256=xBqaWU3Z-cfW-EFy0ENuEqxgXZXkIHUBkA1cT6FlqGM,127
3
- fastquadtree-1.3.0.dist-info/licenses/LICENSE,sha256=pRuvcuqIMtEUBMgvP1Bc4fOHydzeuA61c6DQoQ1pb1w,1071
4
- fastquadtree/__init__.py,sha256=rtkveNz7rScRasTRGu1yEqzeoJfLfreJNxg21orPL-U,195
5
- fastquadtree/_base_quadtree.py,sha256=BTOvu1FM9oBzEMh2JTzfeJiPrrjtmWKU1JJS1DfR7UE,15925
6
- fastquadtree/_item.py,sha256=EDS3nJHdVtjDsuTqTZKGTZH8iWJIQ-TKxLXqvMScNPA,2405
7
- fastquadtree/_native.abi3.so,sha256=KPRDim-ccThr3MGdjl_WArVDUi6Cotm7oUl78OcAZl8,754036
8
- fastquadtree/_obj_store.py,sha256=HeYFGUPYhvxBzL7Js0g0jsIxflpZS6RsXNk50rGeNlA,6522
9
- fastquadtree/point_quadtree.py,sha256=zpvd9EJUcT2soMP89yQJgpaht9-vz7DG5tDqaad8GEc,6181
10
- fastquadtree/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
- fastquadtree/pyqtree.py,sha256=2Khh1gCPalD4z0gb3EmqtzMoga08E9BkB0j5bwkiRPU,6076
12
- fastquadtree/rect_quadtree.py,sha256=uVzaRTs-ZEcD1PGlQjfnLP6HWnOkr2zp6elO7sMDwow,4004
13
- fastquadtree-1.3.0.dist-info/RECORD,,