quickpaver 0.1.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 (139) hide show
  1. quickpaver-0.1.0/AUTHORS.rst +13 -0
  2. quickpaver-0.1.0/CHANGELOG.rst +8 -0
  3. quickpaver-0.1.0/CONTRIBUTING.rst +135 -0
  4. quickpaver-0.1.0/LICENSE +29 -0
  5. quickpaver-0.1.0/MANIFEST.in +10 -0
  6. quickpaver-0.1.0/PKG-INFO +227 -0
  7. quickpaver-0.1.0/README.rst +134 -0
  8. quickpaver-0.1.0/docs/Makefile +20 -0
  9. quickpaver-0.1.0/docs/make.bat +36 -0
  10. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.HEXAGON.rst +12 -0
  11. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.RECTANGLE.rst +12 -0
  12. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.TRIANGLE.rst +12 -0
  13. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.capitalize.rst +12 -0
  14. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.casefold.rst +12 -0
  15. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.center.rst +12 -0
  16. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.count.rst +12 -0
  17. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.encode.rst +12 -0
  18. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.endswith.rst +12 -0
  19. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.expandtabs.rst +12 -0
  20. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.find.rst +12 -0
  21. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.format.rst +12 -0
  22. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.format_map.rst +12 -0
  23. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.index.rst +12 -0
  24. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isalnum.rst +12 -0
  25. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isalpha.rst +12 -0
  26. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isascii.rst +12 -0
  27. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isdecimal.rst +12 -0
  28. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isdigit.rst +12 -0
  29. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isidentifier.rst +12 -0
  30. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.islower.rst +12 -0
  31. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isnumeric.rst +12 -0
  32. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isprintable.rst +12 -0
  33. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isspace.rst +12 -0
  34. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.istitle.rst +12 -0
  35. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.isupper.rst +12 -0
  36. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.join.rst +12 -0
  37. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.ljust.rst +12 -0
  38. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.lower.rst +12 -0
  39. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.lstrip.rst +12 -0
  40. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.maketrans.rst +12 -0
  41. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.partition.rst +12 -0
  42. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.removeprefix.rst +12 -0
  43. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.removesuffix.rst +12 -0
  44. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.replace.rst +12 -0
  45. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.rfind.rst +12 -0
  46. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.rindex.rst +12 -0
  47. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.rjust.rst +12 -0
  48. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.rpartition.rst +12 -0
  49. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.rsplit.rst +12 -0
  50. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.rstrip.rst +12 -0
  51. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.split.rst +12 -0
  52. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.splitlines.rst +12 -0
  53. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.startswith.rst +12 -0
  54. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.strip.rst +12 -0
  55. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.swapcase.rst +12 -0
  56. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.title.rst +12 -0
  57. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.to_list.rst +12 -0
  58. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.translate.rst +12 -0
  59. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.upper.rst +12 -0
  60. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.PolygonType.zfill.rst +12 -0
  61. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.bounding_box_vertices_coordinates.rst +12 -0
  62. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.bounds.rst +12 -0
  63. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.center_coords.rst +12 -0
  64. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.center_coords_2d.rst +12 -0
  65. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.dims.rst +12 -0
  66. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.gamma_ij_x_m2.rst +12 -0
  67. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.gamma_ij_y_m2.rst +12 -0
  68. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.gamma_ij_z_m2.rst +12 -0
  69. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.grid_cell_volume_m3.rst +12 -0
  70. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.indices.rst +12 -0
  71. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.make_spatial_gradient_matrices.rst +12 -0
  72. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.make_spatial_permutation_matrices.rst +12 -0
  73. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.n_grid_cells.rst +12 -0
  74. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.non_rot_center_coords.rst +12 -0
  75. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.non_rot_center_coords_2d.rst +12 -0
  76. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.origin.rst +12 -0
  77. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.origin_coords.rst +12 -0
  78. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.shape.rst +12 -0
  79. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.total_volume_m3.rst +12 -0
  80. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.x_extent.rst +12 -0
  81. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.x_indices.rst +12 -0
  82. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.xmax.rst +12 -0
  83. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.xmin.rst +12 -0
  84. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.y_extent.rst +12 -0
  85. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.y_indices.rst +12 -0
  86. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.ymax.rst +12 -0
  87. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.ymin.rst +12 -0
  88. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.z_extent.rst +12 -0
  89. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.z_indices.rst +12 -0
  90. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.zmax.rst +12 -0
  91. quickpaver-0.1.0/docs/sources/_autosummary/generated/quickpaver.RectilinearGrid.zmin.rst +12 -0
  92. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.PolygonType.rst +140 -0
  93. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.RectilinearGrid.rst +100 -0
  94. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.create_selections_array_2d.rst +12 -0
  95. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.extract_tiling_centers.rst +12 -0
  96. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.extract_tiling_vertices.rst +12 -0
  97. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.gen_hexagonal_tiling.rst +12 -0
  98. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.gen_polygon.rst +12 -0
  99. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.gen_polygonal_tiling.rst +12 -0
  100. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.gen_rectangular_tiling.rst +12 -0
  101. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.gen_triangular_tiling.rst +12 -0
  102. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.get_polygon_selection_with_dilation_2d.rst +12 -0
  103. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.load_corsica_contour.rst +12 -0
  104. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.load_france_and_corsica_contour.rst +12 -0
  105. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.load_france_contour.rst +12 -0
  106. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.span_to_node_numbers_2d.rst +12 -0
  107. quickpaver-0.1.0/docs/sources/_autosummary/quickpaver.span_to_node_numbers_3d.rst +12 -0
  108. quickpaver-0.1.0/docs/sources/_templates/autosummary/base.rst +11 -0
  109. quickpaver-0.1.0/docs/sources/_templates/autosummary/class.rst +49 -0
  110. quickpaver-0.1.0/docs/sources/_templates/autosummary/module.rst +56 -0
  111. quickpaver-0.1.0/docs/sources/api_reference.rst +11 -0
  112. quickpaver-0.1.0/docs/sources/authors.rst +1 -0
  113. quickpaver-0.1.0/docs/sources/bibliography.rst +6 -0
  114. quickpaver-0.1.0/docs/sources/changelog.rst +1 -0
  115. quickpaver-0.1.0/docs/sources/conf.py +294 -0
  116. quickpaver-0.1.0/docs/sources/contributing.rst +1 -0
  117. quickpaver-0.1.0/docs/sources/index.rst +22 -0
  118. quickpaver-0.1.0/docs/sources/installation.rst +52 -0
  119. quickpaver-0.1.0/docs/sources/readme.rst +1 -0
  120. quickpaver-0.1.0/docs/sources/usage.rst +13 -0
  121. quickpaver-0.1.0/pyproject.toml +132 -0
  122. quickpaver-0.1.0/quickpaver/__about__.py +8 -0
  123. quickpaver-0.1.0/quickpaver/__init__.py +112 -0
  124. quickpaver-0.1.0/quickpaver/_grid.py +1157 -0
  125. quickpaver-0.1.0/quickpaver/_tiling.py +582 -0
  126. quickpaver-0.1.0/quickpaver/_types.py +41 -0
  127. quickpaver-0.1.0/quickpaver/data/__init__.py +24 -0
  128. quickpaver-0.1.0/quickpaver/data/corsica.geojson +1 -0
  129. quickpaver-0.1.0/quickpaver/data/france.geojson +1 -0
  130. quickpaver-0.1.0/quickpaver.egg-info/PKG-INFO +227 -0
  131. quickpaver-0.1.0/quickpaver.egg-info/SOURCES.txt +137 -0
  132. quickpaver-0.1.0/quickpaver.egg-info/dependency_links.txt +1 -0
  133. quickpaver-0.1.0/quickpaver.egg-info/requires.txt +45 -0
  134. quickpaver-0.1.0/quickpaver.egg-info/top_level.txt +1 -0
  135. quickpaver-0.1.0/setup.cfg +4 -0
  136. quickpaver-0.1.0/tests/__init__.py +4 -0
  137. quickpaver-0.1.0/tests/test_grid.py +159 -0
  138. quickpaver-0.1.0/tests/test_tiling.py +69 -0
  139. quickpaver-0.1.0/tests/test_types.py +28 -0
@@ -0,0 +1,13 @@
1
+ =======
2
+ Credits
3
+ =======
4
+
5
+ Development Lead
6
+ ----------------
7
+
8
+ * Antoine Collet <antoine.collet5@gmail.com>
9
+
10
+ Contributors
11
+ ------------
12
+
13
+ None yet. Why not be the first?
@@ -0,0 +1,8 @@
1
+ ==============
2
+ Changelog
3
+ ==============
4
+
5
+ 0.1.0 (2026-03-14)
6
+ ------------------
7
+
8
+ * First release on PyPI.
@@ -0,0 +1,135 @@
1
+ .. highlight:: shell
2
+
3
+ ============
4
+ Contributing
5
+ ============
6
+
7
+ Contributions are welcome and greatly appreciated! Every little bit helps, and credit will always be given.
8
+
9
+ You can contribute in many ways:
10
+
11
+ Types of Contributions
12
+ ----------------------
13
+
14
+ Reporting Bugs and Defects
15
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
16
+
17
+ A defect is any variance between the actual and expected behavior. This includes bugs in the code, issues in the documentation, or problems with visualizations.
18
+
19
+ Please report defects using the `GitHub Issue Tracker <https://github.com/antoinecollet5/quickpaver/issues>`_.
20
+ When possible, include:
21
+
22
+ - A clear and descriptive title
23
+ - Steps to reproduce the issue
24
+ - Expected vs. actual behavior
25
+ - Relevant logs, error messages, or screenshots
26
+ - Information about your environment (OS, Python version, quickpaver version)
27
+
28
+ See the `Pull Request Guidelines`_ section for details on development best practices.
29
+
30
+ Features
31
+ ~~~~~~~~
32
+
33
+ If you would like to propose a new feature, please open an issue on the
34
+ `GitHub Issue Tracker <https://github.com/antoinecollet5/quickpaver/issues>`_.
35
+
36
+ Community members and maintainers will help refine and discuss your idea before implementation.
37
+ Early discussion helps ensure that proposed features align with the project’s goals and scope.
38
+
39
+ Please see the `Pull Request Guidelines`_ section for implementation details.
40
+
41
+ Documentation
42
+ ~~~~~~~~~~~~~
43
+
44
+ The project can always use more documentation, whether as part of the official
45
+ quickpaver documentation, in docstrings, tutorials, or external resources such as blog posts and articles.
46
+
47
+ For docstrings, please use the
48
+ `NumPy docstring format <https://numpydoc.readthedocs.io/en/latest/format.html>`_.
49
+
50
+ Working on Issues
51
+ -----------------
52
+
53
+ Once an issue is created, its progress is tracked on GitHub using
54
+ `labels <https://github.com/antoinecollet5/quickpaver/labels>`_ and milestones.
55
+
56
+ When an issue is ready for review, a **Pull Request** can be opened and linked
57
+ to the corresponding issue.
58
+
59
+ Pull Request Guidelines
60
+ -----------------------
61
+
62
+ Please submit pull requests against the **develop** branch (not the **master** branch).
63
+ Each pull request should be self-contained and address a single issue or feature.
64
+
65
+ Before submitting a pull request, please ensure that:
66
+
67
+ 1. **Tests**
68
+ - New code is fully tested.
69
+ - Run the test suite with coverage to identify gaps.
70
+
71
+ 2. **Documentation**
72
+ - Relevant documentation is updated.
73
+ - Docstrings follow the NumPy docstring format.
74
+ - Tutorials and user documentation are updated when necessary.
75
+
76
+ 3. **Continuous Integration**
77
+ - All CI checks pass.
78
+ - All pre-commit hoocks succeed.
79
+ - Code coverage does not decrease.
80
+ - Documentation builds successfully.
81
+
82
+ 4. **Clarity**
83
+ - The pull request clearly describes the changes made.
84
+ - The description explains how the changes address the issue.
85
+ - Screenshots or examples are encouraged when they improve clarity.
86
+
87
+ Once submitted, maintainers will review your pull request and may request changes.
88
+ After approval, a maintainer will merge it.
89
+
90
+ Thank you very much for your contribution and for helping improve quickpaver!
91
+
92
+ Setting Up quickpaver for Local Development
93
+ --------------------------------------------
94
+
95
+ Ready to contribute? Here’s how to set up `quickpaver` for local development.
96
+
97
+ 1. Fork the `quickpaver` repository on GitHub.
98
+
99
+ 2. Clone your fork locally::
100
+
101
+ $ git clone git@github.com:your_username/quickpaver.git
102
+ $ cd quickpaver
103
+
104
+ 3. Create and activate a virtual environment, then install dependencies::
105
+
106
+ $ python -m venv venv
107
+ $ source venv/bin/activate # On Windows: venv\Scripts\activate
108
+ $ pip install -e .[all]
109
+
110
+ 4. Create a new branch for your work::
111
+
112
+ $ git checkout -b name-of-your-bugfix-or-feature
113
+
114
+ 5. Make your changes locally.
115
+
116
+ 6. Run linting, tests, and coverage checks against all supported python versions::
117
+
118
+ $ pre-commit run --all-files
119
+ $ make coverage
120
+ $ tox
121
+
122
+ If you worked on documentation, you can build it locally:
123
+
124
+ .. code-block:: shell
125
+
126
+ $ cd docs
127
+ $ make html
128
+
129
+ The built documentation will be located in ``docs/build/html``.
130
+
131
+ 7. Commit your changes and push your branch to GitHub::
132
+
133
+ $ git add .
134
+ $ git commit -m "Clear and descriptive commit message"
135
+ $ git push origin name-of-your-bugfix-or-feature
@@ -0,0 +1,29 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2026, Antoine COLLET
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ 1. Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ 2. Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ 3. Neither the name of the copyright holder nor the names of its
17
+ contributors may be used to endorse or promote products derived from
18
+ this software without specific prior written permission.
19
+
20
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
23
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
24
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
26
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
27
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,10 @@
1
+ include AUTHORS.rst
2
+ include CONTRIBUTING.rst
3
+ include CHANGELOG.rst
4
+ include LICENSE
5
+ include README.rst
6
+
7
+ recursive-include tests *
8
+ recursive-exclude * *.py[co]
9
+
10
+ recursive-include docs *.rst conf.py Makefile make.bat
@@ -0,0 +1,227 @@
1
+ Metadata-Version: 2.2
2
+ Name: quickpaver
3
+ Version: 0.1.0
4
+ Summary: A python package providing a paving toolbox.
5
+ Author-email: Antoine Collet <antoinecollet5@gmail.com>
6
+ License: BSD 3-Clause License
7
+
8
+ Copyright (c) 2026, Antoine COLLET
9
+ All rights reserved.
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions are met:
13
+
14
+ 1. Redistributions of source code must retain the above copyright notice, this
15
+ list of conditions and the following disclaimer.
16
+
17
+ 2. Redistributions in binary form must reproduce the above copyright notice,
18
+ this list of conditions and the following disclaimer in the documentation
19
+ and/or other materials provided with the distribution.
20
+
21
+ 3. Neither the name of the copyright holder nor the names of its
22
+ contributors may be used to endorse or promote products derived from
23
+ this software without specific prior written permission.
24
+
25
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
28
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
29
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
30
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
31
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
33
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35
+
36
+ Project-URL: Homepage, https://pypi.org/project/quickpaver/
37
+ Project-URL: Documentation, https://quickpaver.readthedocs.io/en/latest/
38
+ Project-URL: Repository, https://github.com/antoinecollet5/quickpaver
39
+ Project-URL: Issues, https://github.com/antoinecollet5/quickpaver/issues
40
+ Project-URL: Changelog, https://github.com/antoinecollet5/quickpaver/blob/master/CHANGELOG.rst
41
+ Keywords: Paving,Tiling,Triangle,Hexagon,Grid,Rectilinear
42
+ Classifier: Development Status :: 2 - Pre-Alpha
43
+ Classifier: Intended Audience :: Developers
44
+ Classifier: Natural Language :: English
45
+ Classifier: Programming Language :: Python :: 3
46
+ Classifier: Programming Language :: Python :: 3.10
47
+ Classifier: Programming Language :: Python :: 3.11
48
+ Classifier: Programming Language :: Python :: 3.12
49
+ Classifier: Programming Language :: Python :: 3.13
50
+ Classifier: Programming Language :: Python :: 3.14
51
+ Requires-Python: >=3.10
52
+ Description-Content-Type: text/x-rst
53
+ License-File: LICENSE
54
+ License-File: AUTHORS.rst
55
+ Requires-Dist: numpy>=1.2
56
+ Requires-Dist: shapely>=2.1
57
+ Requires-Dist: scipy>=1.10
58
+ Provides-Extra: all
59
+ Requires-Dist: quickpaver[docs,examples,install,lint,tests]; extra == "all"
60
+ Provides-Extra: docs
61
+ Requires-Dist: quickpaver[examples]; extra == "docs"
62
+ Requires-Dist: sphinx<9; extra == "docs"
63
+ Requires-Dist: nbsphinx; extra == "docs"
64
+ Requires-Dist: nbsphinx-link>=1.3.1; extra == "docs"
65
+ Requires-Dist: jupyter_sphinx>=0.3.2; extra == "docs"
66
+ Requires-Dist: sphinx-jsonschema>=1.15; extra == "docs"
67
+ Requires-Dist: pygments>=2.11.1; extra == "docs"
68
+ Requires-Dist: pydata-sphinx-theme; extra == "docs"
69
+ Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
70
+ Requires-Dist: sphinx_math_dollar; extra == "docs"
71
+ Requires-Dist: jupytext; extra == "docs"
72
+ Provides-Extra: tests
73
+ Requires-Dist: twine==1.14.0; extra == "tests"
74
+ Requires-Dist: pytest; extra == "tests"
75
+ Requires-Dist: pytest-runner; extra == "tests"
76
+ Requires-Dist: pytest-cov; extra == "tests"
77
+ Requires-Dist: pytest-cookies; extra == "tests"
78
+ Requires-Dist: coverage; extra == "tests"
79
+ Provides-Extra: examples
80
+ Requires-Dist: matplotlib; extra == "examples"
81
+ Requires-Dist: marimo; extra == "examples"
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"
85
+ Provides-Extra: lint
86
+ Requires-Dist: pre-commit; extra == "lint"
87
+ Requires-Dist: codespell>=2.1.0; extra == "lint"
88
+ Requires-Dist: ruff; extra == "lint"
89
+ Requires-Dist: ty; extra == "lint"
90
+ Provides-Extra: install
91
+ Requires-Dist: pip; extra == "install"
92
+ Requires-Dist: wheel; extra == "install"
93
+
94
+ ==========
95
+ quickpaver
96
+ ==========
97
+
98
+ |License| |Stars| |Python| |PyPI| |Downloads| |Build Status| |Documentation Status| |Coverage| |Codacy| |Precommit: enabled| |Ruff| |ty|
99
+
100
+ 🐍 A python package providing a tiling/paving toolbox.
101
+
102
+ **The complete and up to date documentation can be found here**: https://quickpaver.readthedocs.io.
103
+
104
+ ===============
105
+ 🎯 Motivations
106
+ ===============
107
+
108
+ Designing paving layouts (aka tiling) often requires repetitive geometric calculations and careful programming to ensure that patterns and dimensions are correct. Keeping track of tiles adjacency is not trivial either and performing these tasks manually can be time-consuming and prone to errors, especially when exploring multiple design configurations or working with complex layouts.
109
+
110
+ This package aims to simplify and automate the generation of paving layouts by providing a programmatic way to create and manipulate classic paving patterns.
111
+
112
+ The implementation relies on `Shapely <https://shapely.readthedocs.io/en/stable/>`_ for geometric operations and leverages the `GEOS <https://libgeos.org/>`_ engine’s vectorization capabilities. This allows many geometric computations to be performed efficiently, enabling the generation and processing of large numbers of paving elements with good performance. As a result, the package provides both flexibility and speed, making it suitable for practical design tasks as well as research and experimentation.
113
+
114
+ ===============
115
+ 🚀 Quick start
116
+ ===============
117
+
118
+ To install `quickpaver`, the easiest way is through `pip`:
119
+
120
+ .. code-block::
121
+
122
+ pip install quickpaver
123
+
124
+ Or alternatively using `conda`
125
+
126
+ .. code-block::
127
+
128
+ conda install quickpaver
129
+
130
+ You might also clone the repository and install from source
131
+
132
+ .. code-block::
133
+
134
+ pip install -e .
135
+
136
+ Once the installation is done, `quickpaver` is straighforward to use and proposes...
137
+
138
+ 🏗️ Complete example with supporting paper coming Q1 2026.
139
+
140
+ ===========
141
+ 🔑 License
142
+ ===========
143
+
144
+ This project is released under the **BSD 3-Clause License**.
145
+
146
+ Copyright (c) 2026, Antoine COLLET. All rights reserved.
147
+
148
+ For more details, see the `LICENSE <https://github.com/antoinecollet5/quickpaver/blob/master/LICENSE>`_ file included in this repository.
149
+
150
+ ==============
151
+ ⚠️ Disclaimer
152
+ ==============
153
+
154
+ This software is provided "as is", without warranty of any kind, express or implied,
155
+ including but not limited to the warranties of merchantability, fitness for a particular purpose,
156
+ or non-infringement. In no event shall the authors or copyright holders be liable for
157
+ any claim, damages, or other liability, whether in an action of contract, tort,
158
+ or otherwise, arising from, out of, or in connection with the software or the use
159
+ or other dealings in the software.
160
+
161
+ By using this software, you agree to accept full responsibility for any consequences,
162
+ and you waive any claims against the authors or contributors.
163
+
164
+ ==========
165
+ 📧 Contact
166
+ ==========
167
+
168
+ For questions, suggestions, or contributions, you can reach out via:
169
+
170
+ - Email: antoinecollet5@gmail.com
171
+ - GitHub: https://github.com/antoinecollet5/quickpaver
172
+
173
+ We welcome contributions!
174
+
175
+ =============
176
+ 📚 References
177
+ =============
178
+
179
+ TODO
180
+
181
+ * Free software: SPDX-License-Identifier: BSD-3-Clause
182
+
183
+ .. |License| image:: https://img.shields.io/badge/License-BSD_3--Clause-blue.svg
184
+ :target: https://github.com/antoinecollet5/quickpaver/blob/master/LICENSE
185
+
186
+ .. |Stars| image:: https://img.shields.io/github/stars/antoinecollet5/quickpaver.svg?style=social&label=Star&maxAge=2592000
187
+ :target: https://github.com/antoinecollet5/quickpaver/stargazers
188
+ :alt: Stars
189
+
190
+ .. |Python| image:: https://img.shields.io/pypi/pyversions/quickpaver.svg
191
+ :target: https://pypi.org/pypi/quickpaver
192
+ :alt: Python
193
+
194
+ .. |PyPI| image:: https://img.shields.io/pypi/v/quickpaver.svg
195
+ :target: https://pypi.org/pypi/quickpaver
196
+ :alt: PyPI
197
+
198
+ .. |Downloads| image:: https://static.pepy.tech/badge/quickpaver
199
+ :target: https://pepy.tech/project/quickpaver
200
+ :alt: Downoads
201
+
202
+ .. |Build Status| image:: https://github.com/antoinecollet5/quickpaver/actions/workflows/main.yml/badge.svg
203
+ :target: https://github.com/antoinecollet5/quickpaver/actions/workflows/main.yml
204
+ :alt: Build Status
205
+
206
+ .. |Documentation Status| image:: https://readthedocs.org/projects/quickpaver/badge/?version=latest
207
+ :target: https://quickpaver.readthedocs.io/en/latest/?badge=latest
208
+ :alt: Documentation Status
209
+
210
+ .. |Coverage| image:: https://codecov.io/gh/antoinecollet5/quickpaver/graph/badge.svg?token=8lE90wylXL
211
+ :target: https://codecov.io/gh/antoinecollet5/quickpaver
212
+ :alt: Coverage
213
+
214
+ .. |Codacy| image:: https://app.codacy.com/project/badge/Grade/19adca492f0f4d36872644343bd4eb36
215
+ :target: https://app.codacy.com/gh/antoinecollet5/quickpaver/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade
216
+ :alt: codacy
217
+
218
+ .. |Precommit: enabled| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
219
+ :target: https://github.com/pre-commit/pre-commit
220
+
221
+ .. |Ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
222
+ :target: https://github.com/astral-sh/ruff
223
+ :alt: Ruff
224
+
225
+ .. |ty| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json
226
+ :target: https://github.com/astral-sh/ty
227
+ :alt: Checked with ty
@@ -0,0 +1,134 @@
1
+ ==========
2
+ quickpaver
3
+ ==========
4
+
5
+ |License| |Stars| |Python| |PyPI| |Downloads| |Build Status| |Documentation Status| |Coverage| |Codacy| |Precommit: enabled| |Ruff| |ty|
6
+
7
+ 🐍 A python package providing a tiling/paving toolbox.
8
+
9
+ **The complete and up to date documentation can be found here**: https://quickpaver.readthedocs.io.
10
+
11
+ ===============
12
+ 🎯 Motivations
13
+ ===============
14
+
15
+ Designing paving layouts (aka tiling) often requires repetitive geometric calculations and careful programming to ensure that patterns and dimensions are correct. Keeping track of tiles adjacency is not trivial either and performing these tasks manually can be time-consuming and prone to errors, especially when exploring multiple design configurations or working with complex layouts.
16
+
17
+ This package aims to simplify and automate the generation of paving layouts by providing a programmatic way to create and manipulate classic paving patterns.
18
+
19
+ The implementation relies on `Shapely <https://shapely.readthedocs.io/en/stable/>`_ for geometric operations and leverages the `GEOS <https://libgeos.org/>`_ engine’s vectorization capabilities. This allows many geometric computations to be performed efficiently, enabling the generation and processing of large numbers of paving elements with good performance. As a result, the package provides both flexibility and speed, making it suitable for practical design tasks as well as research and experimentation.
20
+
21
+ ===============
22
+ 🚀 Quick start
23
+ ===============
24
+
25
+ To install `quickpaver`, the easiest way is through `pip`:
26
+
27
+ .. code-block::
28
+
29
+ pip install quickpaver
30
+
31
+ Or alternatively using `conda`
32
+
33
+ .. code-block::
34
+
35
+ conda install quickpaver
36
+
37
+ You might also clone the repository and install from source
38
+
39
+ .. code-block::
40
+
41
+ pip install -e .
42
+
43
+ Once the installation is done, `quickpaver` is straighforward to use and proposes...
44
+
45
+ 🏗️ Complete example with supporting paper coming Q1 2026.
46
+
47
+ ===========
48
+ 🔑 License
49
+ ===========
50
+
51
+ This project is released under the **BSD 3-Clause License**.
52
+
53
+ Copyright (c) 2026, Antoine COLLET. All rights reserved.
54
+
55
+ For more details, see the `LICENSE <https://github.com/antoinecollet5/quickpaver/blob/master/LICENSE>`_ file included in this repository.
56
+
57
+ ==============
58
+ ⚠️ Disclaimer
59
+ ==============
60
+
61
+ This software is provided "as is", without warranty of any kind, express or implied,
62
+ including but not limited to the warranties of merchantability, fitness for a particular purpose,
63
+ or non-infringement. In no event shall the authors or copyright holders be liable for
64
+ any claim, damages, or other liability, whether in an action of contract, tort,
65
+ or otherwise, arising from, out of, or in connection with the software or the use
66
+ or other dealings in the software.
67
+
68
+ By using this software, you agree to accept full responsibility for any consequences,
69
+ and you waive any claims against the authors or contributors.
70
+
71
+ ==========
72
+ 📧 Contact
73
+ ==========
74
+
75
+ For questions, suggestions, or contributions, you can reach out via:
76
+
77
+ - Email: antoinecollet5@gmail.com
78
+ - GitHub: https://github.com/antoinecollet5/quickpaver
79
+
80
+ We welcome contributions!
81
+
82
+ =============
83
+ 📚 References
84
+ =============
85
+
86
+ TODO
87
+
88
+ * Free software: SPDX-License-Identifier: BSD-3-Clause
89
+
90
+ .. |License| image:: https://img.shields.io/badge/License-BSD_3--Clause-blue.svg
91
+ :target: https://github.com/antoinecollet5/quickpaver/blob/master/LICENSE
92
+
93
+ .. |Stars| image:: https://img.shields.io/github/stars/antoinecollet5/quickpaver.svg?style=social&label=Star&maxAge=2592000
94
+ :target: https://github.com/antoinecollet5/quickpaver/stargazers
95
+ :alt: Stars
96
+
97
+ .. |Python| image:: https://img.shields.io/pypi/pyversions/quickpaver.svg
98
+ :target: https://pypi.org/pypi/quickpaver
99
+ :alt: Python
100
+
101
+ .. |PyPI| image:: https://img.shields.io/pypi/v/quickpaver.svg
102
+ :target: https://pypi.org/pypi/quickpaver
103
+ :alt: PyPI
104
+
105
+ .. |Downloads| image:: https://static.pepy.tech/badge/quickpaver
106
+ :target: https://pepy.tech/project/quickpaver
107
+ :alt: Downoads
108
+
109
+ .. |Build Status| image:: https://github.com/antoinecollet5/quickpaver/actions/workflows/main.yml/badge.svg
110
+ :target: https://github.com/antoinecollet5/quickpaver/actions/workflows/main.yml
111
+ :alt: Build Status
112
+
113
+ .. |Documentation Status| image:: https://readthedocs.org/projects/quickpaver/badge/?version=latest
114
+ :target: https://quickpaver.readthedocs.io/en/latest/?badge=latest
115
+ :alt: Documentation Status
116
+
117
+ .. |Coverage| image:: https://codecov.io/gh/antoinecollet5/quickpaver/graph/badge.svg?token=8lE90wylXL
118
+ :target: https://codecov.io/gh/antoinecollet5/quickpaver
119
+ :alt: Coverage
120
+
121
+ .. |Codacy| image:: https://app.codacy.com/project/badge/Grade/19adca492f0f4d36872644343bd4eb36
122
+ :target: https://app.codacy.com/gh/antoinecollet5/quickpaver/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade
123
+ :alt: codacy
124
+
125
+ .. |Precommit: enabled| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
126
+ :target: https://github.com/pre-commit/pre-commit
127
+
128
+ .. |Ruff| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
129
+ :target: https://github.com/astral-sh/ruff
130
+ :alt: Ruff
131
+
132
+ .. |ty| image:: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ty/main/assets/badge/v0.json
133
+ :target: https://github.com/astral-sh/ty
134
+ :alt: Checked with ty
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line.
5
+ SPHINXOPTS =
6
+ SPHINXBUILD = python -msphinx
7
+ SPHINXPROJ = quickpaver
8
+ SOURCEDIR = sources
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,36 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=python -msphinx
9
+ )
10
+ set SOURCEDIR=sources
11
+ set BUILDDIR=build
12
+ set SPHINXPROJ=quickpaver
13
+
14
+ if "%1" == "" goto help
15
+
16
+ %SPHINXBUILD% >NUL 2>NUL
17
+ if errorlevel 9009 (
18
+ echo.
19
+ echo.The Sphinx module was not found. Make sure you have Sphinx installed,
20
+ echo.then set the SPHINXBUILD environment variable to point to the full
21
+ echo.path of the 'sphinx-build' executable. Alternatively you may add the
22
+ echo.Sphinx directory to PATH.
23
+ echo.
24
+ echo.If you don't have Sphinx installed, grab it from
25
+ echo.http://sphinx-doc.org/
26
+ exit /b 1
27
+ )
28
+
29
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
30
+ goto end
31
+
32
+ :help
33
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS%
34
+
35
+ :end
36
+ popd
@@ -0,0 +1,12 @@
1
+ ..
2
+ Template for the html base rendering
3
+
4
+ Modified from
5
+ https://github.com/sphinx-doc/sphinx/tree/master/sphinx/ext/autosummary/templates/autosummary/base.rst
6
+
7
+ quickpaver.PolygonType.HEXAGON
8
+ ==============================
9
+
10
+ .. currentmodule:: quickpaver
11
+
12
+ .. autoattribute:: PolygonType.HEXAGON
@@ -0,0 +1,12 @@
1
+ ..
2
+ Template for the html base rendering
3
+
4
+ Modified from
5
+ https://github.com/sphinx-doc/sphinx/tree/master/sphinx/ext/autosummary/templates/autosummary/base.rst
6
+
7
+ quickpaver.PolygonType.RECTANGLE
8
+ ================================
9
+
10
+ .. currentmodule:: quickpaver
11
+
12
+ .. autoattribute:: PolygonType.RECTANGLE
@@ -0,0 +1,12 @@
1
+ ..
2
+ Template for the html base rendering
3
+
4
+ Modified from
5
+ https://github.com/sphinx-doc/sphinx/tree/master/sphinx/ext/autosummary/templates/autosummary/base.rst
6
+
7
+ quickpaver.PolygonType.TRIANGLE
8
+ ===============================
9
+
10
+ .. currentmodule:: quickpaver
11
+
12
+ .. autoattribute:: PolygonType.TRIANGLE
@@ -0,0 +1,12 @@
1
+ ..
2
+ Template for the html base rendering
3
+
4
+ Modified from
5
+ https://github.com/sphinx-doc/sphinx/tree/master/sphinx/ext/autosummary/templates/autosummary/base.rst
6
+
7
+ quickpaver.PolygonType.capitalize
8
+ =================================
9
+
10
+ .. currentmodule:: quickpaver
11
+
12
+ .. automethod:: PolygonType.capitalize