quickpaver 0.2.0__tar.gz → 0.3.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.
Files changed (160) hide show
  1. quickpaver-0.3.0/CHANGELOG.rst +62 -0
  2. {quickpaver-0.2.0 → quickpaver-0.3.0}/PKG-INFO +7 -5
  3. {quickpaver-0.2.0 → quickpaver-0.3.0}/pyproject.toml +9 -4
  4. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver/__about__.py +1 -1
  5. quickpaver-0.3.0/quickpaver/__init__.py +177 -0
  6. quickpaver-0.3.0/quickpaver/_grid.py +2061 -0
  7. quickpaver-0.3.0/quickpaver/_tiling.py +826 -0
  8. quickpaver-0.3.0/quickpaver/_transfer_matrix.py +179 -0
  9. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver.egg-info/PKG-INFO +7 -5
  10. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver.egg-info/SOURCES.txt +3 -0
  11. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver.egg-info/requires.txt +6 -4
  12. quickpaver-0.3.0/tests/test_data.py +11 -0
  13. quickpaver-0.3.0/tests/test_grid.py +1243 -0
  14. quickpaver-0.3.0/tests/test_tiling.py +319 -0
  15. quickpaver-0.3.0/tests/test_transfer_matrix.py +426 -0
  16. quickpaver-0.2.0/CHANGELOG.rst +0 -14
  17. quickpaver-0.2.0/quickpaver/__init__.py +0 -141
  18. quickpaver-0.2.0/quickpaver/_grid.py +0 -1157
  19. quickpaver-0.2.0/quickpaver/_tiling.py +0 -629
  20. quickpaver-0.2.0/tests/test_grid.py +0 -159
  21. quickpaver-0.2.0/tests/test_tiling.py +0 -69
  22. {quickpaver-0.2.0 → quickpaver-0.3.0}/AUTHORS.rst +0 -0
  23. {quickpaver-0.2.0 → quickpaver-0.3.0}/CONTRIBUTING.rst +0 -0
  24. {quickpaver-0.2.0 → quickpaver-0.3.0}/LICENSE +0 -0
  25. {quickpaver-0.2.0 → quickpaver-0.3.0}/MANIFEST.in +0 -0
  26. {quickpaver-0.2.0 → quickpaver-0.3.0}/README.rst +0 -0
  27. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/Makefile +0 -0
  28. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/make.bat +0 -0
  29. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.HEXAGON.rst +0 -0
  30. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.RECTANGLE.rst +0 -0
  31. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.TRIANGLE.rst +0 -0
  32. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.capitalize.rst +0 -0
  33. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.casefold.rst +0 -0
  34. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.center.rst +0 -0
  35. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.count.rst +0 -0
  36. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.encode.rst +0 -0
  37. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.endswith.rst +0 -0
  38. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.expandtabs.rst +0 -0
  39. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.find.rst +0 -0
  40. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.format.rst +0 -0
  41. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.format_map.rst +0 -0
  42. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.index.rst +0 -0
  43. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isalnum.rst +0 -0
  44. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isalpha.rst +0 -0
  45. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isascii.rst +0 -0
  46. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isdecimal.rst +0 -0
  47. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isdigit.rst +0 -0
  48. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isidentifier.rst +0 -0
  49. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.islower.rst +0 -0
  50. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isnumeric.rst +0 -0
  51. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isprintable.rst +0 -0
  52. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isspace.rst +0 -0
  53. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.istitle.rst +0 -0
  54. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.isupper.rst +0 -0
  55. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.join.rst +0 -0
  56. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.ljust.rst +0 -0
  57. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.lower.rst +0 -0
  58. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.lstrip.rst +0 -0
  59. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.maketrans.rst +0 -0
  60. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.partition.rst +0 -0
  61. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.removeprefix.rst +0 -0
  62. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.removesuffix.rst +0 -0
  63. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.replace.rst +0 -0
  64. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.rfind.rst +0 -0
  65. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.rindex.rst +0 -0
  66. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.rjust.rst +0 -0
  67. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.rpartition.rst +0 -0
  68. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.rsplit.rst +0 -0
  69. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.rstrip.rst +0 -0
  70. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.split.rst +0 -0
  71. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.splitlines.rst +0 -0
  72. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.startswith.rst +0 -0
  73. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.strip.rst +0 -0
  74. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.swapcase.rst +0 -0
  75. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.title.rst +0 -0
  76. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.to_list.rst +0 -0
  77. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.translate.rst +0 -0
  78. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.upper.rst +0 -0
  79. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.PolygonType.zfill.rst +0 -0
  80. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.bounding_box_vertices_coordinates.rst +0 -0
  81. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.bounds.rst +0 -0
  82. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.center_coords.rst +0 -0
  83. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.center_coords_2d.rst +0 -0
  84. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.dims.rst +0 -0
  85. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.gamma_ij_x_m2.rst +0 -0
  86. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.gamma_ij_y_m2.rst +0 -0
  87. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.gamma_ij_z_m2.rst +0 -0
  88. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.grid_cell_volume_m3.rst +0 -0
  89. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.indices.rst +0 -0
  90. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.make_spatial_gradient_matrices.rst +0 -0
  91. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.make_spatial_permutation_matrices.rst +0 -0
  92. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.n_grid_cells.rst +0 -0
  93. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.non_rot_center_coords.rst +0 -0
  94. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.non_rot_center_coords_2d.rst +0 -0
  95. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.origin.rst +0 -0
  96. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.origin_coords.rst +0 -0
  97. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.shape.rst +0 -0
  98. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.total_volume_m3.rst +0 -0
  99. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.x_extent.rst +0 -0
  100. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.x_indices.rst +0 -0
  101. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.xmax.rst +0 -0
  102. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.xmin.rst +0 -0
  103. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.y_extent.rst +0 -0
  104. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.y_indices.rst +0 -0
  105. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.ymax.rst +0 -0
  106. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.ymin.rst +0 -0
  107. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.z_extent.rst +0 -0
  108. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.z_indices.rst +0 -0
  109. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.zmax.rst +0 -0
  110. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.zmin.rst +0 -0
  111. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.PolygonType.rst +0 -0
  112. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.RectilinearGrid.rst +0 -0
  113. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.binary_dilation.rst +0 -0
  114. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.conservative_upsample.rst +0 -0
  115. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.create_selections_array_2d.rst +0 -0
  116. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.duplicative_upsample.rst +0 -0
  117. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.extract_tiling_centers.rst +0 -0
  118. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.extract_tiling_vertices.rst +0 -0
  119. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.gen_hexagonal_tiling.rst +0 -0
  120. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.gen_polygon.rst +0 -0
  121. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.gen_polygonal_tiling.rst +0 -0
  122. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.gen_rectangular_tiling.rst +0 -0
  123. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.gen_triangular_tiling.rst +0 -0
  124. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.get_owner_neigh_indices.rst +0 -0
  125. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.get_polygon_selection_with_dilation_2d.rst +0 -0
  126. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.get_polygon_selection_with_dilation_3d.rst +0 -0
  127. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.get_rlg_perm_mat.rst +0 -0
  128. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.get_rlg_spatial_grad_mat.rst +0 -0
  129. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.load_corsica_contour.rst +0 -0
  130. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.load_france_and_corsica_contour.rst +0 -0
  131. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.load_france_contour.rst +0 -0
  132. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.make_rlg_spatial_gradient_matrices.rst +0 -0
  133. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.make_rlg_spatial_permutation_matrices.rst +0 -0
  134. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.resample_grid.rst +0 -0
  135. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.rlg_idx_to_nn.rst +0 -0
  136. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.rlg_nn_to_idx.rst +0 -0
  137. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.span_to_node_numbers_2d.rst +0 -0
  138. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_autosummary/quickpaver.span_to_node_numbers_3d.rst +0 -0
  139. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_templates/autosummary/base.rst +0 -0
  140. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_templates/autosummary/class.rst +0 -0
  141. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/_templates/autosummary/module.rst +0 -0
  142. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/api_reference.rst +0 -0
  143. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/authors.rst +0 -0
  144. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/bibliography.rst +0 -0
  145. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/changelog.rst +0 -0
  146. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/conf.py +0 -0
  147. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/contributing.rst +0 -0
  148. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/index.rst +0 -0
  149. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/installation.rst +0 -0
  150. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/readme.rst +0 -0
  151. {quickpaver-0.2.0 → quickpaver-0.3.0}/docs/sources/usage.rst +0 -0
  152. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver/_types.py +0 -0
  153. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver/data/__init__.py +0 -0
  154. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver/data/corsica.geojson +0 -0
  155. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver/data/france.geojson +0 -0
  156. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver.egg-info/dependency_links.txt +0 -0
  157. {quickpaver-0.2.0 → quickpaver-0.3.0}/quickpaver.egg-info/top_level.txt +0 -0
  158. {quickpaver-0.2.0 → quickpaver-0.3.0}/setup.cfg +0 -0
  159. {quickpaver-0.2.0 → quickpaver-0.3.0}/tests/__init__.py +0 -0
  160. {quickpaver-0.2.0 → quickpaver-0.3.0}/tests/test_types.py +0 -0
@@ -0,0 +1,62 @@
1
+ ==============
2
+ Changelog
3
+ ==============
4
+
5
+ 0.3.0 (2026-06-03)
6
+ ------------------
7
+
8
+ * ENH: add ``compute_transfer_matrix`` to build conservative sparse transfer
9
+ * ENH: add add regular-grid indexing helpers:
10
+
11
+ * ``rlg_idx_to_nn``
12
+ * ``rlg_nn_to_idx``
13
+ * ``span_to_node_numbers_2d``
14
+ * ``span_to_node_numbers_3d``
15
+
16
+ * ENH: add sparse spatial operators for rectilinear grids:
17
+
18
+ * ``get_rlg_spatial_grad_mat``
19
+ * ``make_rlg_spatial_gradient_matrices``
20
+ * ``get_rlg_perm_mat``
21
+ * ``make_rlg_spatial_permutation_matrices``
22
+
23
+ * ENH: add polygon-to-grid selection utilities:
24
+
25
+ * ``create_selections_array_2d``
26
+ * ``get_polygon_selection_with_dilation_2d``
27
+ * ``get_polygon_selection_with_dilation_3d``
28
+ * ``binary_dilation``
29
+
30
+ * ENH: add grid resampling and array upsampling utilities:
31
+
32
+ * ``resample_grid``
33
+ * ``duplicative_upsample``
34
+ * ``conservative_upsample``
35
+
36
+ * ENH: add export helpers for ``RectilinearGrid``:
37
+
38
+ * ``to_shapely`` for 2D Shapely polygon export.
39
+ * ``to_pyvista`` for optional PyVista export using ``ImageData``,
40
+ ``RectilinearGrid`` or ``StructuredGrid`` representations.
41
+
42
+ * ENH: add grid geometry helpers such as ``get_array_borders_selection`` and
43
+ owner/neighbour index pairing utilities.
44
+ * ENH: add input validation for rectilinear grid dimensions, cell sizes, sparse
45
+ operator axes, dilation masks, and upsampling factors.
46
+ * TEST: add extensive pytest coverage for rectilinear grids, sparse operators,
47
+ polygon selections, dilation, resampling, upsampling, Shapely export, and
48
+ optional PyVista export.
49
+ * DOC: improve tiling documentation.
50
+ * DOC: add documentation for rectilinear grid utilities.
51
+ * DOC: update notebooks for tiling, transfer matrices, and grid utilities.
52
+
53
+ 0.2.0 (2026-03-18)
54
+ ------------------
55
+
56
+ * ENH: ``extract_tiling_vertices`` now returns cluster indices for merged vertices.
57
+ * DOC: improve documentation.
58
+
59
+ 0.1.0 (2026-03-14)
60
+ ------------------
61
+
62
+ * First release on PyPI.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: quickpaver
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: A python package providing a paving toolbox.
5
5
  Author-email: Antoine Collet <antoinecollet5@gmail.com>
6
6
  License: BSD 3-Clause License
@@ -56,7 +56,7 @@ Requires-Dist: numpy>=1.2
56
56
  Requires-Dist: shapely>=2.1
57
57
  Requires-Dist: scipy>=1.10
58
58
  Provides-Extra: all
59
- Requires-Dist: quickpaver[docs,examples,install,lint,tests]; extra == "all"
59
+ Requires-Dist: quickpaver[docs,examples,install,lint,pyvista,tests]; extra == "all"
60
60
  Provides-Extra: docs
61
61
  Requires-Dist: quickpaver[examples]; extra == "docs"
62
62
  Requires-Dist: sphinx<9; extra == "docs"
@@ -80,16 +80,18 @@ Provides-Extra: examples
80
80
  Requires-Dist: matplotlib; extra == "examples"
81
81
  Requires-Dist: marimo; extra == "examples"
82
82
  Requires-Dist: nested_grid_plotter>=2.1.0; extra == "examples"
83
- Provides-Extra: scikit-sparse-old
84
- Requires-Dist: scikit-sparse<0.5.0; extra == "scikit-sparse-old"
83
+ Requires-Dist: pyvista[all]; extra == "examples"
85
84
  Provides-Extra: lint
86
85
  Requires-Dist: pre-commit; extra == "lint"
87
- Requires-Dist: codespell>=2.1.0; extra == "lint"
86
+ Requires-Dist: pre-commit-hooks; extra == "lint"
87
+ Requires-Dist: codespell; extra == "lint"
88
88
  Requires-Dist: ruff; extra == "lint"
89
89
  Requires-Dist: ty; extra == "lint"
90
90
  Provides-Extra: install
91
91
  Requires-Dist: pip; extra == "install"
92
92
  Requires-Dist: wheel; extra == "install"
93
+ Provides-Extra: pyvista
94
+ Requires-Dist: pyvista; extra == "pyvista"
93
95
 
94
96
  ==========
95
97
  quickpaver
@@ -46,7 +46,7 @@ quickpaver = ["data/*.geojson"]
46
46
  version = { attr = "quickpaver.__about__.__version__" }
47
47
 
48
48
  [project.optional-dependencies]
49
- all = ['quickpaver[install, lint, tests, examples, docs]']
49
+ all = ['quickpaver[install, lint, tests, examples, docs, pyvista]']
50
50
  docs = [
51
51
  "quickpaver[examples]",
52
52
  "sphinx<9",
@@ -68,10 +68,15 @@ tests = [
68
68
  "pytest-cookies",
69
69
  "coverage",
70
70
  ]
71
- examples = ["matplotlib", "marimo", "nested_grid_plotter>=2.1.0"]
72
- scikit_sparse_old = ["scikit-sparse<0.5.0"]
73
- lint = ["pre-commit", "codespell>=2.1.0", "ruff", "ty"]
71
+ examples = [
72
+ "matplotlib",
73
+ "marimo",
74
+ "nested_grid_plotter>=2.1.0",
75
+ "pyvista[all]",
76
+ ]
77
+ lint = ["pre-commit", "pre-commit-hooks", "codespell", "ruff", "ty"]
74
78
  install = ["pip", "wheel"]
79
+ pyvista = ["pyvista"]
75
80
 
76
81
  [tool.ruff]
77
82
  lint.select = [
@@ -3,6 +3,6 @@
3
3
 
4
4
  """Get the metadata."""
5
5
 
6
- __version__ = "0.2.0"
6
+ __version__ = "0.3.0"
7
7
  __author__ = "Antoine Collet"
8
8
  __email__ = "antoine.collet5@gmail.com"
@@ -0,0 +1,177 @@
1
+ # SPDX-License-Identifier: BSD-3-Clause
2
+ # Copyright (c) 2026 Antoine COLLET
3
+
4
+ """Tools for polygonal paving, transfer matrices, and rectilinear grids.
5
+
6
+ ``quickpaver`` provides utilities to generate polygonal tilings, manipulate
7
+ rectilinear grids, compute transfer matrices between geometries, and load simple
8
+ geographical test contours. The package is designed around cell-based geometry:
9
+ tiles, polygons, and grid cells are represented explicitly and can be combined
10
+ with NumPy arrays, Shapely geometries, and sparse SciPy matrices.
11
+
12
+ The public API is grouped into four main areas:
13
+
14
+ - polygon and tiling generation;
15
+ - transfer-matrix construction;
16
+ - geographical test contours;
17
+ - rectilinear-grid utilities.
18
+
19
+ Polygon helpers
20
+ ^^^^^^^^^^^^^^^
21
+
22
+ Utilities for creating base polygons and describing supported tile types.
23
+
24
+ .. autosummary::
25
+ :toctree: _autosummary
26
+
27
+ PolygonType
28
+ gen_polygon
29
+
30
+ Tiling functions
31
+ ^^^^^^^^^^^^^^^^
32
+
33
+ Functions to generate polygonal tilings over a target surface. Supported tile
34
+ families include rectangles, triangles, and hexagons. Tiling generators return
35
+ both the generated polygons and adjacency information between kept tiles.
36
+
37
+ .. autosummary::
38
+ :toctree: _autosummary
39
+
40
+ gen_hexagonal_tiling
41
+ gen_rectangular_tiling
42
+ gen_triangular_tiling
43
+ gen_polygonal_tiling
44
+ extract_tiling_centers
45
+ extract_tiling_vertices
46
+
47
+ Transfer matrices
48
+ ^^^^^^^^^^^^^^^^^
49
+
50
+ Utilities to compute sparse transfer matrices between source and target
51
+ geometries.
52
+
53
+ .. autosummary::
54
+ :toctree: _autosummary
55
+
56
+ compute_transfer_matrix
57
+
58
+ Test data
59
+ ^^^^^^^^^
60
+
61
+ Convenience functions providing geographical contours useful for examples,
62
+ tests, and demonstrations.
63
+
64
+ .. autosummary::
65
+ :toctree: _autosummary
66
+
67
+ load_france_contour
68
+ load_corsica_contour
69
+ load_france_and_corsica_contour
70
+
71
+ Regular grids
72
+ ^^^^^^^^^^^^^
73
+
74
+ Classes and utilities for working with cell-based rectilinear grids. These
75
+ functions cover grid indexing, sparse neighbour operators, polygon selections,
76
+ binary dilation, resampling, and conservative or duplicative array upsampling.
77
+
78
+ .. autosummary::
79
+ :toctree: _autosummary
80
+
81
+ Grid
82
+ RectilinearGrid
83
+ rlg_idx_to_nn
84
+ rlg_nn_to_idx
85
+ span_to_node_numbers_2d
86
+ span_to_node_numbers_3d
87
+ get_array_borders_selection
88
+ get_owner_neigh_indices
89
+ get_rlg_spatial_grad_mat
90
+ make_rlg_spatial_gradient_matrices
91
+ get_rlg_perm_mat
92
+ make_rlg_spatial_permutation_matrices
93
+ create_selections_array_2d
94
+ get_polygon_selection_with_dilation_2d
95
+ get_polygon_selection_with_dilation_3d
96
+ binary_dilation
97
+ resample_grid
98
+ duplicative_upsample
99
+ conservative_upsample
100
+
101
+ """
102
+
103
+ from quickpaver.__about__ import __author__, __email__, __version__
104
+ from quickpaver._grid import (
105
+ Grid,
106
+ RectilinearGrid,
107
+ binary_dilation,
108
+ conservative_upsample,
109
+ create_selections_array_2d,
110
+ duplicative_upsample,
111
+ get_array_borders_selection,
112
+ get_owner_neigh_indices,
113
+ get_polygon_selection_with_dilation_2d,
114
+ get_polygon_selection_with_dilation_3d,
115
+ get_rlg_perm_mat,
116
+ get_rlg_spatial_grad_mat,
117
+ make_rlg_spatial_gradient_matrices,
118
+ make_rlg_spatial_permutation_matrices,
119
+ resample_grid,
120
+ rlg_idx_to_nn,
121
+ rlg_nn_to_idx,
122
+ span_to_node_numbers_2d,
123
+ span_to_node_numbers_3d,
124
+ )
125
+ from quickpaver._tiling import (
126
+ PolygonType,
127
+ extract_tiling_centers,
128
+ extract_tiling_vertices,
129
+ gen_hexagonal_tiling,
130
+ gen_polygon,
131
+ gen_polygonal_tiling,
132
+ gen_rectangular_tiling,
133
+ gen_triangular_tiling,
134
+ )
135
+ from quickpaver._transfer_matrix import compute_transfer_matrix
136
+ from quickpaver.data import (
137
+ load_corsica_contour,
138
+ load_france_and_corsica_contour,
139
+ load_france_contour,
140
+ )
141
+
142
+ __all__ = [
143
+ "__author__",
144
+ "__email__",
145
+ "__version__",
146
+ "PolygonType",
147
+ "gen_hexagonal_tiling",
148
+ "gen_polygon",
149
+ "gen_rectangular_tiling",
150
+ "gen_triangular_tiling",
151
+ "gen_polygonal_tiling",
152
+ "Grid",
153
+ "RectilinearGrid",
154
+ "create_selections_array_2d",
155
+ "rlg_idx_to_nn",
156
+ "rlg_nn_to_idx",
157
+ "span_to_node_numbers_2d",
158
+ "span_to_node_numbers_3d",
159
+ "binary_dilation",
160
+ "get_owner_neigh_indices",
161
+ "get_polygon_selection_with_dilation_2d",
162
+ "get_polygon_selection_with_dilation_3d",
163
+ "get_rlg_spatial_grad_mat",
164
+ "make_rlg_spatial_gradient_matrices",
165
+ "get_rlg_perm_mat",
166
+ "make_rlg_spatial_permutation_matrices",
167
+ "resample_grid",
168
+ "duplicative_upsample",
169
+ "conservative_upsample",
170
+ "load_france_contour",
171
+ "load_corsica_contour",
172
+ "load_france_and_corsica_contour",
173
+ "extract_tiling_centers",
174
+ "extract_tiling_vertices",
175
+ "compute_transfer_matrix",
176
+ "get_array_borders_selection",
177
+ ]