ScadPy 0.4.5__tar.gz → 0.4.6__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 (542) hide show
  1. scadpy-0.4.6/.github/workflows/ci.yml +60 -0
  2. {scadpy-0.4.5 → scadpy-0.4.6}/PKG-INFO +2 -1
  3. {scadpy-0.4.5 → scadpy-0.4.6}/docs/Makefile +5 -1
  4. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/badges/coverage.svg +1 -1
  5. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scripts/build_skills.py +15 -13
  6. {scadpy-0.4.5 → scadpy-0.4.6}/pyproject.toml +8 -7
  7. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/__init__.py +1 -0
  8. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/__init__.py +1 -0
  9. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/__init__.py +1 -0
  10. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/__init__.py +1 -0
  11. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/__init__.py +1 -0
  12. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/map_shape_to_html.py +5 -2
  13. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/radial_extrude_shape.py +3 -3
  14. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/__init__.py +1 -0
  15. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/__init__.py +1 -0
  16. scadpy-0.4.5/.github/workflows/ci.yml +0 -26
  17. {scadpy-0.4.5 → scadpy-0.4.6}/.claude/jedi_query.py +0 -0
  18. {scadpy-0.4.5 → scadpy-0.4.6}/.github/workflows/release.yml +0 -0
  19. {scadpy-0.4.5 → scadpy-0.4.6}/.gitignore +0 -0
  20. {scadpy-0.4.5 → scadpy-0.4.6}/LICENSE.md +0 -0
  21. {scadpy-0.4.5 → scadpy-0.4.6}/README.md +0 -0
  22. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/badges/interrogate.svg +0 -0
  23. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/css/custom.css +0 -0
  24. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/bearing_dark.png +0 -0
  25. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/bearing_light.png +0 -0
  26. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/dice_dark.png +0 -0
  27. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/dice_light.png +0 -0
  28. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/extruded_plate_dark.png +0 -0
  29. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/extruded_plate_light.png +0 -0
  30. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/plate_dark.png +0 -0
  31. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/plate_light.png +0 -0
  32. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/storage_box_dark.png +0 -0
  33. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/examples/storage_box_light.png +0 -0
  34. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/logo.ico +0 -0
  35. {scadpy-0.4.5 → scadpy-0.4.6}/docs/_static/logo.png +0 -0
  36. {scadpy-0.4.5 → scadpy-0.4.6}/docs/conf.py +0 -0
  37. {scadpy-0.4.5 → scadpy-0.4.6}/docs/examples.rst +0 -0
  38. {scadpy-0.4.5 → scadpy-0.4.6}/docs/index.rst +0 -0
  39. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/assembly/combinations.rst +0 -0
  40. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/assembly/topologies.rst +0 -0
  41. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/assembly/transformations.rst +0 -0
  42. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/assembly/types.rst +0 -0
  43. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/assembly/utils.rst +0 -0
  44. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/assembly.rst +0 -0
  45. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/component/exporters.rst +0 -0
  46. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/component/features.rst +0 -0
  47. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/component/utils.rst +0 -0
  48. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/component.rst +0 -0
  49. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/part/combinations.rst +0 -0
  50. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core/part.rst +0 -0
  51. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/core.rst +0 -0
  52. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/combinations.rst +0 -0
  53. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/exporters.rst +0 -0
  54. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/features.rst +0 -0
  55. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/importers.rst +0 -0
  56. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/primitives.rst +0 -0
  57. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/topologies.rst +0 -0
  58. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/transformations.rst +0 -0
  59. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape/types.rst +0 -0
  60. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2/shape.rst +0 -0
  61. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d2.rst +0 -0
  62. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/combinations.rst +0 -0
  63. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/exporters.rst +0 -0
  64. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/features.rst +0 -0
  65. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/importers.rst +0 -0
  66. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/primitives.rst +0 -0
  67. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/topologies.rst +0 -0
  68. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/transformations.rst +0 -0
  69. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid/types.rst +0 -0
  70. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3/solid.rst +0 -0
  71. {scadpy-0.4.5 → scadpy-0.4.6}/docs/scadpy/d3.rst +0 -0
  72. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_all__dark.md5 +0 -0
  73. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_all__light.md5 +0 -0
  74. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_clamp_proportional__dark.md5 +0 -0
  75. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_clamp_proportional__light.md5 +0 -0
  76. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_concave_asymmetric__dark.md5 +0 -0
  77. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_concave_asymmetric__light.md5 +0 -0
  78. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_convex_only__dark.md5 +0 -0
  79. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_convex_only__light.md5 +0 -0
  80. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_sharp_convex__dark.md5 +0 -0
  81. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__chamfer_shape_sharp_convex__light.md5 +0 -0
  82. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__color_shape__dark.md5 +0 -0
  83. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__color_shape__light.md5 +0 -0
  84. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__color_solid__dark.md5 +0 -0
  85. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__color_solid__light.md5 +0 -0
  86. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__concat_shape__dark.md5 +0 -0
  87. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__concat_shape__light.md5 +0 -0
  88. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__concat_solid__dark.md5 +0 -0
  89. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__concat_solid__light.md5 +0 -0
  90. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cone__dark.md5 +0 -0
  91. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cone__light.md5 +0 -0
  92. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__convexify_shape__dark.md5 +0 -0
  93. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__convexify_shape__light.md5 +0 -0
  94. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__convexify_shape_partial__dark.md5 +0 -0
  95. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__convexify_shape_partial__light.md5 +0 -0
  96. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__convexify_solid__dark.md5 +0 -0
  97. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__convexify_solid__light.md5 +0 -0
  98. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cube__dark.md5 +0 -0
  99. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cube__light.md5 +0 -0
  100. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cuboid__dark.md5 +0 -0
  101. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cuboid__light.md5 +0 -0
  102. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cylinder__dark.md5 +0 -0
  103. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__cylinder__light.md5 +0 -0
  104. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_bearing__dark.md5 +0 -0
  105. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_bearing__light.md5 +0 -0
  106. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_dice__dark.md5 +0 -0
  107. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_dice__light.md5 +0 -0
  108. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_extruded_plate__dark.md5 +0 -0
  109. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_extruded_plate__light.md5 +0 -0
  110. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_honeycomb_extruded_plate__dark.md5 +0 -0
  111. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_honeycomb_extruded_plate__light.md5 +0 -0
  112. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_labelized_extruded_plate__dark.md5 +0 -0
  113. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_labelized_extruded_plate__light.md5 +0 -0
  114. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_plate__dark.md5 +0 -0
  115. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_plate__light.md5 +0 -0
  116. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_storage_box__dark.md5 +0 -0
  117. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_storage_box__light.md5 +0 -0
  118. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_vertex_holes__dark.md5 +0 -0
  119. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_vertex_holes__light.md5 +0 -0
  120. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_waved_sphere__dark.md5 +0 -0
  121. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__examples_waved_sphere__light.md5 +0 -0
  122. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__exclude_shape__dark.md5 +0 -0
  123. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__exclude_shape__light.md5 +0 -0
  124. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__exclude_solid__dark.md5 +0 -0
  125. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__exclude_solid__light.md5 +0 -0
  126. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fill_shape__dark.md5 +0 -0
  127. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fill_shape__light.md5 +0 -0
  128. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fill_shape_partial__dark.md5 +0 -0
  129. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fill_shape_partial__light.md5 +0 -0
  130. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_all__dark.md5 +0 -0
  131. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_all__light.md5 +0 -0
  132. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_clamp_proportional__dark.md5 +0 -0
  133. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_clamp_proportional__light.md5 +0 -0
  134. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_concave_asymmetric__dark.md5 +0 -0
  135. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_concave_asymmetric__light.md5 +0 -0
  136. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_convex_only__dark.md5 +0 -0
  137. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_convex_only__light.md5 +0 -0
  138. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_sharp_convex__dark.md5 +0 -0
  139. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__fillet_shape_sharp_convex__light.md5 +0 -0
  140. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__grow_shape__dark.md5 +0 -0
  141. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__grow_shape__light.md5 +0 -0
  142. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__grow_shape_partial__dark.md5 +0 -0
  143. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__grow_shape_partial__light.md5 +0 -0
  144. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__grow_shape_shrink__dark.md5 +0 -0
  145. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__grow_shape_shrink__light.md5 +0 -0
  146. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__hexagonal_cone__dark.md5 +0 -0
  147. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__hexagonal_cone__light.md5 +0 -0
  148. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__hexagonal_cylinder__dark.md5 +0 -0
  149. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__hexagonal_cylinder__light.md5 +0 -0
  150. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_2d__dark.md5 +0 -0
  151. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_2d__light.md5 +0 -0
  152. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_3d__dark.md5 +0 -0
  153. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_3d__light.md5 +0 -0
  154. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_bearing__dark.md5 +0 -0
  155. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_bearing__light.md5 +0 -0
  156. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_dice__dark.md5 +0 -0
  157. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_dice__light.md5 +0 -0
  158. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_extruded_plate__dark.md5 +0 -0
  159. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_extruded_plate__light.md5 +0 -0
  160. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_plate__dark.md5 +0 -0
  161. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_plate__light.md5 +0 -0
  162. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_storage_box__dark.md5 +0 -0
  163. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__index_storage_box__light.md5 +0 -0
  164. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_shape__dark.md5 +0 -0
  165. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_shape__light.md5 +0 -0
  166. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_shape_parts_example__dark.md5 +0 -0
  167. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_shape_parts_example__light.md5 +0 -0
  168. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_solid__dark.md5 +0 -0
  169. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_solid__light.md5 +0 -0
  170. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_solid_parts_example__dark.md5 +0 -0
  171. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__intersect_solid_parts_example__light.md5 +0 -0
  172. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_cut_shape__dark.md5 +0 -0
  173. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_cut_shape__light.md5 +0 -0
  174. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_cut_shape_diagonal__dark.md5 +0 -0
  175. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_cut_shape_diagonal__light.md5 +0 -0
  176. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_extrude_shape_square__dark.md5 +0 -0
  177. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_extrude_shape_square__light.md5 +0 -0
  178. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_extrude_shape_tube__dark.md5 +0 -0
  179. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_extrude_shape_tube__light.md5 +0 -0
  180. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_shape_method_2d__dark.md5 +0 -0
  181. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_shape_method_2d__light.md5 +0 -0
  182. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_shape_method__dark.md5 +0 -0
  183. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_shape_method__light.md5 +0 -0
  184. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_solid_method_2d__dark.md5 +0 -0
  185. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_solid_method_2d__light.md5 +0 -0
  186. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_solid_method_3d__dark.md5 +0 -0
  187. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_solid_method_3d__light.md5 +0 -0
  188. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_solid_method__dark.md5 +0 -0
  189. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_pattern_solid_method__light.md5 +0 -0
  190. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_diagonal__dark.md5 +0 -0
  191. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_diagonal__light.md5 +0 -0
  192. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_horizontal__dark.md5 +0 -0
  193. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_horizontal__light.md5 +0 -0
  194. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_partial__dark.md5 +0 -0
  195. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_partial__light.md5 +0 -0
  196. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_pivot__dark.md5 +0 -0
  197. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__linear_slice_shape_pivot__light.md5 +0 -0
  198. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__low_resolution_sphere__dark.md5 +0 -0
  199. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__low_resolution_sphere__light.md5 +0 -0
  200. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_dxf_to_shape__dark.md5 +0 -0
  201. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_dxf_to_shape__light.md5 +0 -0
  202. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometries_to_shape__dark.md5 +0 -0
  203. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometries_to_shape__light.md5 +0 -0
  204. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometries_to_solid__dark.md5 +0 -0
  205. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometries_to_solid__light.md5 +0 -0
  206. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometry_to_shape__dark.md5 +0 -0
  207. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometry_to_shape__light.md5 +0 -0
  208. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometry_to_solid__dark.md5 +0 -0
  209. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_geometry_to_solid__light.md5 +0 -0
  210. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_parts_to_shape__dark.md5 +0 -0
  211. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_parts_to_shape__light.md5 +0 -0
  212. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_parts_to_solid__dark.md5 +0 -0
  213. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_parts_to_solid__light.md5 +0 -0
  214. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_svg_to_shape__dark.md5 +0 -0
  215. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__map_svg_to_shape__light.md5 +0 -0
  216. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__mirror_shape__dark.md5 +0 -0
  217. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__mirror_shape__light.md5 +0 -0
  218. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__mirror_solid__dark.md5 +0 -0
  219. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__mirror_solid__light.md5 +0 -0
  220. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__path_extrude_shape_tube__dark.md5 +0 -0
  221. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__path_extrude_shape_tube__light.md5 +0 -0
  222. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__path_extrude_shape_tube_strategy__dark.md5 +0 -0
  223. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__path_extrude_shape_tube_strategy__light.md5 +0 -0
  224. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__polyhedron__dark.md5 +0 -0
  225. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__polyhedron__light.md5 +0 -0
  226. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__pull_shape__dark.md5 +0 -0
  227. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__pull_shape__light.md5 +0 -0
  228. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__pull_solid__dark.md5 +0 -0
  229. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__pull_solid__light.md5 +0 -0
  230. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__push_shape__dark.md5 +0 -0
  231. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__push_shape__light.md5 +0 -0
  232. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__push_solid__dark.md5 +0 -0
  233. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__push_solid__light.md5 +0 -0
  234. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_extrude_shape__dark.md5 +0 -0
  235. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_extrude_shape__light.md5 +0 -0
  236. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_extrude_shape_partial__dark.md5 +0 -0
  237. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_extrude_shape_partial__light.md5 +0 -0
  238. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_pattern_shape_method__dark.md5 +0 -0
  239. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_pattern_shape_method__light.md5 +0 -0
  240. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_pattern_solid_method__dark.md5 +0 -0
  241. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_pattern_solid_method__light.md5 +0 -0
  242. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_partial__dark.md5 +0 -0
  243. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_partial__light.md5 +0 -0
  244. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_pivot__dark.md5 +0 -0
  245. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_pivot__light.md5 +0 -0
  246. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_quarter__dark.md5 +0 -0
  247. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_quarter__light.md5 +0 -0
  248. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_three_quarter__dark.md5 +0 -0
  249. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__radial_slice_shape_three_quarter__light.md5 +0 -0
  250. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__recoordinate_shape__dark.md5 +0 -0
  251. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__recoordinate_shape__light.md5 +0 -0
  252. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__recoordinate_solid__dark.md5 +0 -0
  253. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__recoordinate_solid__light.md5 +0 -0
  254. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_shape_auto__dark.md5 +0 -0
  255. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_shape_auto__light.md5 +0 -0
  256. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_shape_exact__dark.md5 +0 -0
  257. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_shape_exact__light.md5 +0 -0
  258. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_shape_freeze__dark.md5 +0 -0
  259. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_shape_freeze__light.md5 +0 -0
  260. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_solid_auto__dark.md5 +0 -0
  261. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_solid_auto__light.md5 +0 -0
  262. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_solid_exact__dark.md5 +0 -0
  263. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_solid_exact__light.md5 +0 -0
  264. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_solid_freeze__dark.md5 +0 -0
  265. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__resize_solid_freeze__light.md5 +0 -0
  266. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__rotate_shape__dark.md5 +0 -0
  267. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__rotate_shape__light.md5 +0 -0
  268. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__rotate_solid__dark.md5 +0 -0
  269. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__rotate_solid__light.md5 +0 -0
  270. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__scale_shape__dark.md5 +0 -0
  271. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__scale_shape__light.md5 +0 -0
  272. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__scale_solid__dark.md5 +0 -0
  273. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__scale_solid__light.md5 +0 -0
  274. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__shrink_shape__dark.md5 +0 -0
  275. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__shrink_shape__light.md5 +0 -0
  276. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__shrink_shape_negative__dark.md5 +0 -0
  277. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__shrink_shape_negative__light.md5 +0 -0
  278. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__shrink_shape_partial__dark.md5 +0 -0
  279. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__shrink_shape_partial__light.md5 +0 -0
  280. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__sphere__dark.md5 +0 -0
  281. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__sphere__light.md5 +0 -0
  282. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_shape__dark.md5 +0 -0
  283. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_shape__light.md5 +0 -0
  284. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_shape_parts_example__dark.md5 +0 -0
  285. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_shape_parts_example__light.md5 +0 -0
  286. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_solid__dark.md5 +0 -0
  287. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_solid__light.md5 +0 -0
  288. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_solid_parts_example__dark.md5 +0 -0
  289. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__subtract_solid_parts_example__light.md5 +0 -0
  290. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__text_example__dark.md5 +0 -0
  291. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__text_example__light.md5 +0 -0
  292. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__translate_shape__dark.md5 +0 -0
  293. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__translate_shape__light.md5 +0 -0
  294. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__translate_solid__dark.md5 +0 -0
  295. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__translate_solid__light.md5 +0 -0
  296. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_shape__dark.md5 +0 -0
  297. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_shape__light.md5 +0 -0
  298. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_shape_parts_example__dark.md5 +0 -0
  299. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_shape_parts_example__light.md5 +0 -0
  300. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_solid__dark.md5 +0 -0
  301. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_solid__light.md5 +0 -0
  302. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_solid_parts_example__dark.md5 +0 -0
  303. {scadpy-0.4.5 → scadpy-0.4.6}/docs/snapshots/d2__unify_solid_parts_example__light.md5 +0 -0
  304. {scadpy-0.4.5 → scadpy-0.4.6}/project_bundle.json +0 -0
  305. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/BEIGE.py +0 -0
  306. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/BLACK.py +0 -0
  307. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/BLUE.py +0 -0
  308. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/BROWN.py +0 -0
  309. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/DARK_GRAY.py +0 -0
  310. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/DEFAULT_COLOR.py +0 -0
  311. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/DEFAULT_OPACITY.py +0 -0
  312. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/GRAY.py +0 -0
  313. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/GREEN.py +0 -0
  314. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/ORANGE.py +0 -0
  315. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/RED.py +0 -0
  316. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/WHITE.py +0 -0
  317. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/YELLOW.py +0 -0
  318. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/constants/__init__.py +0 -0
  319. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/type/__init__.py +0 -0
  320. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/type/color.py +0 -0
  321. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/utils/__init__.py +0 -0
  322. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/color/utils/get_random_color.py +0 -0
  323. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/__init__.py +0 -0
  324. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/combinations/__init__.py +0 -0
  325. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/combinations/concat_assemblies.py +0 -0
  326. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/combinations/exclude_assemblies.py +0 -0
  327. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/combinations/intersect_assemblies.py +0 -0
  328. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/combinations/subtract_assemblies.py +0 -0
  329. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/combinations/unify_assemblies.py +0 -0
  330. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/__init__.py +0 -0
  331. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/directed_edge/__init__.py +0 -0
  332. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/directed_edge/get_assembly_directed_edge_directions.py +0 -0
  333. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/directed_edge/get_assembly_directed_edge_to_edge.py +0 -0
  334. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/directed_edge/get_assembly_directed_edge_to_vertex.py +0 -0
  335. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/edge/__init__.py +0 -0
  336. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/edge/get_assembly_edge_lengths.py +0 -0
  337. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/edge/get_assembly_edge_midpoints.py +0 -0
  338. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/edge/get_assembly_edge_normals.py +0 -0
  339. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/face_vertex/__init__.py +0 -0
  340. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/face_vertex/get_assembly_face_vertex_angles.py +0 -0
  341. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/face_vertex/get_assembly_face_vertex_normals.py +0 -0
  342. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/face_vertex/get_assembly_face_vertex_to_incoming_directed_edge.py +0 -0
  343. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/face_vertex/get_assembly_face_vertex_to_outgoing_directed_edge.py +0 -0
  344. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/part/__init__.py +0 -0
  345. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/part/get_assembly_part_colors.py +0 -0
  346. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/vertex/__init__.py +0 -0
  347. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/vertex/get_assembly_vertex_coordinates.py +0 -0
  348. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/topologies/vertex/get_assembly_vertex_to_part.py +0 -0
  349. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/__init__.py +0 -0
  350. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/color_assembly.py +0 -0
  351. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/linear_pattern_assembly.py +0 -0
  352. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/mirror_vertex_coordinates.py +0 -0
  353. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/pull_vertex_coordinates.py +0 -0
  354. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/push_vertex_coordinates.py +0 -0
  355. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/radial_pattern_assembly.py +0 -0
  356. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/resize_vertex_coordinates.py +0 -0
  357. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/rotate_vertex_coordinates.py +0 -0
  358. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/scale_vertex_coordinates.py +0 -0
  359. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/transformations/translate_vertex_coordinates.py +0 -0
  360. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/types/__init__.py +0 -0
  361. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/types/assembly.py +0 -0
  362. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/types/topology_filter.py +0 -0
  363. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/utils/__init__.py +0 -0
  364. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/utils/lookup_pairs.py +0 -0
  365. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/utils/resolve_topology_filter.py +0 -0
  366. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/assembly/utils/transform_filtered_parts.py +0 -0
  367. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/__init__.py +0 -0
  368. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/exporters/__init__.py +0 -0
  369. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/exporters/map_component_to_html_file.py +0 -0
  370. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/exporters/map_component_to_screen.py +0 -0
  371. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/features/__init__.py +0 -0
  372. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/features/get_component_bounds.py +0 -0
  373. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/utils/__init__.py +0 -0
  374. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/utils/blend_component_colors.py +0 -0
  375. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/component/utils/get_intersecting_component_index_groups.py +0 -0
  376. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/__init__.py +0 -0
  377. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/combinations/__init__.py +0 -0
  378. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/combinations/concat_parts.py +0 -0
  379. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/combinations/intersect_parts.py +0 -0
  380. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/combinations/subtract_parts.py +0 -0
  381. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/combinations/unify_parts.py +0 -0
  382. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/types/__init__.py +0 -0
  383. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/types/part.py +0 -0
  384. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/utils/__init__.py +0 -0
  385. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/core/part/utils/blend_part_colors.py +0 -0
  386. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/__init__.py +0 -0
  387. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/are_shape_parts_intersecting.py +0 -0
  388. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/concat_shape.py +0 -0
  389. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/exclude_shape.py +0 -0
  390. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/intersect_shape.py +0 -0
  391. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/intersect_shape_parts.py +0 -0
  392. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/subtract_shape.py +0 -0
  393. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/subtract_shape_parts.py +0 -0
  394. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/unify_shape.py +0 -0
  395. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/combinations/unify_shape_parts.py +0 -0
  396. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/__init__.py +0 -0
  397. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/map_shape_to_dxf.py +0 -0
  398. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/map_shape_to_dxf_file.py +0 -0
  399. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/map_shape_to_html_file.py +0 -0
  400. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/map_shape_to_screen.py +0 -0
  401. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/map_shape_to_svg.py +0 -0
  402. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/exporters/map_shape_to_svg_file.py +0 -0
  403. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/features/__init__.py +0 -0
  404. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/features/get_shape_bounding_box.py +0 -0
  405. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/features/get_shape_bounds.py +0 -0
  406. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/features/get_shape_centroid.py +0 -0
  407. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/features/get_shape_part_bounds.py +0 -0
  408. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/features/is_shape_empty.py +0 -0
  409. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/importers/__init__.py +0 -0
  410. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/importers/map_dxf_to_shape.py +0 -0
  411. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/importers/map_geometries_to_shape.py +0 -0
  412. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/importers/map_geometry_to_shape.py +0 -0
  413. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/importers/map_parts_to_shape.py +0 -0
  414. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/importers/map_svg_to_shape.py +0 -0
  415. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/primitives/__init__.py +0 -0
  416. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/primitives/circle.py +0 -0
  417. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/primitives/polygon.py +0 -0
  418. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/primitives/rectangle.py +0 -0
  419. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/primitives/square.py +0 -0
  420. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/primitives/text.py +0 -0
  421. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/__init__.py +0 -0
  422. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/directed_edge/__init__.py +0 -0
  423. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/directed_edge/get_shape_directed_edge_directions.py +0 -0
  424. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/directed_edge/get_shape_directed_edge_to_edge.py +0 -0
  425. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/directed_edge/get_shape_directed_edge_to_vertex.py +0 -0
  426. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/edge/__init__.py +0 -0
  427. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/edge/get_shape_edge_lengths.py +0 -0
  428. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/edge/get_shape_edge_midpoints.py +0 -0
  429. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/edge/get_shape_edge_normals.py +0 -0
  430. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/edge/get_shape_edge_to_vertex.py +0 -0
  431. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/ring/__init__.py +0 -0
  432. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/ring/get_shape_ring_to_part.py +0 -0
  433. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/ring/get_shape_ring_types.py +0 -0
  434. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/__init__.py +0 -0
  435. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/are_shape_vertices_convex.py +0 -0
  436. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_part_vertex_coordinates.py +0 -0
  437. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_angles.py +0 -0
  438. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_coordinates.py +0 -0
  439. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_normals.py +0 -0
  440. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_to_incoming_directed_edge.py +0 -0
  441. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_to_neighbor_vertex.py +0 -0
  442. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_to_outgoing_directed_edge.py +0 -0
  443. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_to_part.py +0 -0
  444. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/topologies/vertex/get_shape_vertex_to_ring.py +0 -0
  445. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/__init__.py +0 -0
  446. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/chamfer_shape.py +0 -0
  447. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/color_shape.py +0 -0
  448. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/convexify_shape.py +0 -0
  449. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/extrusion_strategies/__init__.py +0 -0
  450. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/extrusion_strategies/resize_sweep.py +0 -0
  451. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/extrusion_strategies/reverse_sweep.py +0 -0
  452. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/extrusion_strategies/rotate_sweep.py +0 -0
  453. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/extrusion_strategies/scale_sweep.py +0 -0
  454. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/fill_shape.py +0 -0
  455. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/fillet_shape.py +0 -0
  456. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/grow_shape.py +0 -0
  457. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/linear_cut_shape.py +0 -0
  458. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/linear_extrude_shape.py +0 -0
  459. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/linear_pattern_shape.py +0 -0
  460. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/linear_slice_shape.py +0 -0
  461. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/mirror_shape.py +0 -0
  462. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/path_extrude_shape.py +0 -0
  463. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/pull_shape.py +0 -0
  464. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/push_shape.py +0 -0
  465. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/radial_pattern_shape.py +0 -0
  466. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/radial_slice_shape.py +0 -0
  467. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/recoordinate_shape.py +0 -0
  468. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/resize_shape.py +0 -0
  469. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/rotate_shape.py +0 -0
  470. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/scale_shape.py +0 -0
  471. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/shrink_shape.py +0 -0
  472. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/transformations/translate_shape.py +0 -0
  473. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/types/__init__.py +0 -0
  474. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/types/shape.py +0 -0
  475. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/types/utils/__init__.py +0 -0
  476. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/types/utils/shapely_base_geometry_to_shapely_polygons.py +0 -0
  477. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/utils/__init__.py +0 -0
  478. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/shape/utils/shapely_base_geometry_to_shapely_polygons.py +0 -0
  479. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/utils/__init__.py +0 -0
  480. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d2/utils/resolve_vector_2d.py +0 -0
  481. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/__init__.py +0 -0
  482. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/are_solid_parts_intersecting.py +0 -0
  483. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/concat_solid.py +0 -0
  484. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/exclude_solid.py +0 -0
  485. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/intersect_solid.py +0 -0
  486. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/intersect_solid_parts.py +0 -0
  487. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/subtract_solid.py +0 -0
  488. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/subtract_solid_parts.py +0 -0
  489. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/unify_solid.py +0 -0
  490. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/combinations/unify_solid_parts.py +0 -0
  491. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/exporters/__init__.py +0 -0
  492. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/exporters/map_solid_to_html.py +0 -0
  493. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/exporters/map_solid_to_html_file.py +0 -0
  494. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/exporters/map_solid_to_screen.py +0 -0
  495. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/exporters/map_solid_to_stl_file.py +0 -0
  496. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/features/__init__.py +0 -0
  497. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/features/get_solid_bounding_box.py +0 -0
  498. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/features/get_solid_bounds.py +0 -0
  499. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/features/get_solid_centroid.py +0 -0
  500. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/features/get_solid_part_bounds.py +0 -0
  501. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/features/get_solid_part_colors.py +0 -0
  502. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/features/is_solid_empty.py +0 -0
  503. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/importers/__init__.py +0 -0
  504. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/importers/map_geometries_to_solid.py +0 -0
  505. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/importers/map_geometry_to_solid.py +0 -0
  506. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/importers/map_parts_to_solid.py +0 -0
  507. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/importers/map_stl_to_solid.py +0 -0
  508. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/primitives/__init__.py +0 -0
  509. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/primitives/cone.py +0 -0
  510. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/primitives/cuboid.py +0 -0
  511. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/primitives/cylinder.py +0 -0
  512. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/primitives/polyhedron.py +0 -0
  513. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/primitives/sphere.py +0 -0
  514. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/topologies/__init__.py +0 -0
  515. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/topologies/triangle/__init__.py +0 -0
  516. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/topologies/triangle/get_solid_triangle_to_vertex.py +0 -0
  517. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/topologies/vertex/__init__.py +0 -0
  518. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/topologies/vertex/get_solid_vertex_coordinates.py +0 -0
  519. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/topologies/vertex/get_solid_vertex_to_part.py +0 -0
  520. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/__init__.py +0 -0
  521. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/color_solid.py +0 -0
  522. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/convexify_solid.py +0 -0
  523. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/linear_pattern_solid.py +0 -0
  524. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/mirror_solid.py +0 -0
  525. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/pull_solid.py +0 -0
  526. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/push_solid.py +0 -0
  527. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/radial_pattern_solid.py +0 -0
  528. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/recoordinate_solid.py +0 -0
  529. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/resize_solid.py +0 -0
  530. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/rotate_solid.py +0 -0
  531. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/scale_solid.py +0 -0
  532. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/transformations/translate_solid.py +0 -0
  533. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/types/__init__.py +0 -0
  534. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/solid/types/solid.py +0 -0
  535. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/utils/__init__.py +0 -0
  536. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/d3/utils/resolve_vector_3d.py +0 -0
  537. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/utils/__init__.py +0 -0
  538. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/utils/available_fonts.py +0 -0
  539. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/utils/resolve_vector.py +0 -0
  540. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/utils/x.py +0 -0
  541. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/utils/y.py +0 -0
  542. {scadpy-0.4.5 → scadpy-0.4.6}/scadpy/utils/z.py +0 -0
@@ -0,0 +1,60 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - "**"
7
+ pull_request:
8
+
9
+ jobs:
10
+ typecheck:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - uses: actions/setup-python@v5
16
+ with:
17
+ python-version: "3.12"
18
+
19
+ - name: Install dependencies
20
+ run: pip install -e .[dev]
21
+
22
+ - name: Run basedpyright
23
+ run: basedpyright
24
+
25
+ doctest:
26
+ runs-on: ${{ matrix.os }}
27
+ strategy:
28
+ fail-fast: false
29
+ matrix:
30
+ os: [ubuntu-latest, macos-latest, windows-latest]
31
+ python-version: ["3.12", "3.13"]
32
+ include:
33
+ # Snapshot comparison is only meaningful on the reference platform.
34
+ # On macOS and Windows, matplotlib produces slightly different SVG
35
+ # floating-point values, so we use doctest-without-snapshots there.
36
+ - os: ubuntu-latest
37
+ doctest_target: doctest
38
+ - os: macos-latest
39
+ doctest_target: doctest-without-snapshots
40
+ - os: windows-latest
41
+ doctest_target: doctest-without-snapshots
42
+
43
+ steps:
44
+ - uses: actions/checkout@v4
45
+
46
+ - uses: actions/setup-python@v5
47
+ with:
48
+ python-version: ${{ matrix.python-version }}
49
+
50
+ - name: Install make (Windows)
51
+ if: runner.os == 'Windows'
52
+ run: choco install make
53
+
54
+ - name: Install dependencies
55
+ run: pip install -e .[dev]
56
+
57
+ - name: Run doctests
58
+ run: cd docs && make ${{ matrix.doctest_target }}
59
+ env:
60
+ MPLBACKEND: Agg
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ScadPy
3
- Version: 0.4.5
3
+ Version: 0.4.6
4
4
  Summary: Simplified 2D/3D modeling for Python with fluent API and boolean operations
5
5
  Author: m-fabregue
6
6
  License: # MIT License
@@ -59,6 +59,7 @@ Requires-Dist: python-fcl~=0.7
59
59
  Requires-Dist: triangle==20250106
60
60
  Requires-Dist: trimesh[easy]~=4.10
61
61
  Provides-Extra: dev
62
+ Requires-Dist: basedpyright; extra == 'dev'
62
63
  Requires-Dist: coverage; extra == 'dev'
63
64
  Requires-Dist: furo==2025.7.19; extra == 'dev'
64
65
  Requires-Dist: genbadge[coverage]; extra == 'dev'
@@ -15,7 +15,7 @@ skills:
15
15
  help:
16
16
  @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
17
17
 
18
- .PHONY: help Makefile snapshots
18
+ .PHONY: help Makefile snapshots doctest-without-snapshots
19
19
 
20
20
  # Build the documentation
21
21
  html:
@@ -27,6 +27,10 @@ doctest:
27
27
  @$(SPHINXBUILD) -b doctest "$(SOURCEDIR)" "$(BUILDDIR)/doctest" $(SPHINXOPTS)
28
28
  @rm -rf $(BUILDDIR)/doctrees
29
29
 
30
+ doctest-without-snapshots:
31
+ @SCADPY_UPDATE_SNAPSHOTS=1 $(SPHINXBUILD) -b doctest "$(SOURCEDIR)" "$(BUILDDIR)/doctest" $(SPHINXOPTS)
32
+ @rm -rf $(BUILDDIR)/doctrees
33
+
30
34
  snapshots:
31
35
  @SCADPY_UPDATE_SNAPSHOTS=1 $(SPHINXBUILD) -b doctest "$(SOURCEDIR)" "$(BUILDDIR)/doctest" $(SPHINXOPTS)
32
36
  @rm -rf $(BUILDDIR)/doctrees
@@ -1 +1 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 90.20%"><title>coverage: 90.20%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#4c1"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="865" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">90.20%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">90.20%</text></g></svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="114" height="20" role="img" aria-label="coverage: 90.21%"><title>coverage: 90.21%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="114" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="61" height="20" fill="#555"/><rect x="61" width="53" height="20" fill="#4c1"/><rect width="114" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="315" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="510">coverage</text><text x="315" y="140" transform="scale(.1)" fill="#fff" textLength="510">coverage</text><text aria-hidden="true" x="865" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="430">90.21%</text><text x="865" y="140" transform="scale(.1)" fill="#fff" textLength="430">90.21%</text></g></svg>
@@ -8,6 +8,7 @@ import json
8
8
  import re
9
9
  import tomllib
10
10
  from pathlib import Path
11
+ from typing import Any
11
12
 
12
13
  # Dunder → operator symbol
13
14
  DUNDER_OPERATORS: dict[str, str] = {
@@ -239,15 +240,15 @@ def _referenced_func(description: str | None) -> str | None:
239
240
  # ---------------------------------------------------------------------------
240
241
 
241
242
 
242
- def _extract_params(func: ast.FunctionDef | ast.AsyncFunctionDef) -> list[dict]:
243
- params: list[dict] = []
243
+ def _extract_params(func: ast.FunctionDef | ast.AsyncFunctionDef) -> list[dict[str, Any]]:
244
+ params: list[dict[str, Any]] = []
244
245
  args = func.args
245
246
  defaults_start = len(args.args) - len(args.defaults)
246
247
 
247
248
  for i, arg in enumerate(args.args):
248
249
  if arg.arg in ("self", "cls"):
249
250
  continue
250
- p: dict = {"name": arg.arg}
251
+ p: dict[str, Any] = {"name": arg.arg}
251
252
  if arg.annotation:
252
253
  p["type"] = _unparse_annotation(arg.annotation)
253
254
  di = i - defaults_start
@@ -259,15 +260,16 @@ def _extract_params(func: ast.FunctionDef | ast.AsyncFunctionDef) -> list[dict]:
259
260
  p = {"name": arg.arg}
260
261
  if arg.annotation:
261
262
  p["type"] = _unparse_annotation(arg.annotation)
262
- if args.kw_defaults[i] is not None:
263
- p["default"] = ast.unparse(args.kw_defaults[i])
263
+ kw_default = args.kw_defaults[i]
264
+ if kw_default is not None:
265
+ p["default"] = ast.unparse(kw_default)
264
266
  params.append(p)
265
267
 
266
268
  return params
267
269
 
268
270
 
269
271
  def _build_signature(
270
- name: str, params: list[dict], returns: str | None, is_property: bool
272
+ name: str, params: list[dict[str, Any]], returns: str | None, is_property: bool
271
273
  ) -> str:
272
274
  if is_property:
273
275
  sig = name
@@ -290,7 +292,7 @@ def _parse_function(
290
292
  node: ast.FunctionDef | ast.AsyncFunctionDef,
291
293
  func_index: dict[str, str],
292
294
  is_method: bool = False,
293
- ) -> dict:
295
+ ) -> dict[str, Any]:
294
296
  decorator_names = [
295
297
  (
296
298
  d.id
@@ -323,7 +325,7 @@ def _parse_function(
323
325
  if p["name"] in param_descs and param_descs[p["name"]]:
324
326
  p["description"] = param_descs[p["name"]]
325
327
 
326
- entry: dict = {
328
+ entry: dict[str, Any] = {
327
329
  "kind": kind,
328
330
  "signature": _build_signature(node.name, params, returns, is_property),
329
331
  "description": _extract_description(raw_docstring),
@@ -339,8 +341,8 @@ def _parse_function(
339
341
  return entry
340
342
 
341
343
 
342
- def _parse_class(node: ast.ClassDef, func_index: dict[str, str]) -> dict:
343
- methods: dict[str, dict] = {}
344
+ def _parse_class(node: ast.ClassDef, func_index: dict[str, str]) -> dict[str, Any]:
345
+ methods: dict[str, dict[str, Any]] = {}
344
346
  for item in ast.iter_child_nodes(node):
345
347
  if isinstance(item, (ast.FunctionDef, ast.AsyncFunctionDef)):
346
348
  methods[item.name] = _parse_function(item, func_index, is_method=True)
@@ -352,9 +354,9 @@ def _parse_class(node: ast.ClassDef, func_index: dict[str, str]) -> dict:
352
354
  }
353
355
 
354
356
 
355
- def parse_file(path: Path, func_index: dict[str, str]) -> dict:
357
+ def parse_file(path: Path, func_index: dict[str, str]) -> dict[str, Any]:
356
358
  tree = ast.parse(path.read_text())
357
- result: dict = {}
359
+ result: dict[str, Any] = {}
358
360
  for node in ast.iter_child_nodes(tree):
359
361
  if isinstance(node, ast.ClassDef):
360
362
  result[node.name] = _parse_class(node, func_index)
@@ -382,7 +384,7 @@ def main() -> None:
382
384
  func_index = _build_function_index(root)
383
385
  print(f" {len(func_index)} functions indexed")
384
386
 
385
- skills: dict = {}
387
+ skills: dict[str, Any] = {}
386
388
  for src in sources:
387
389
  p = root / src
388
390
  if p.is_dir():
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "ScadPy"
7
- version = "0.4.5"
7
+ version = "0.4.6"
8
8
  description = "Simplified 2D/3D modeling for Python with fluent API and boolean operations"
9
9
  requires-python = ">= 3.12"
10
10
  authors = [{ name = "m-fabregue" }]
@@ -20,14 +20,15 @@ dependencies = ["triangle == 20250106", "trimesh[easy] ~= 4.10", "manifold3d ==
20
20
 
21
21
  [project.optional-dependencies]
22
22
  dev = [
23
- "sphinx",
24
- "sphinx-pyproject",
25
- "numpydoc",
26
- "sphinx-autodoc-typehints",
23
+ "basedpyright",
24
+ "coverage",
27
25
  "furo == 2025.7.19",
26
+ "genbadge[coverage]",
28
27
  "interrogate",
29
- "coverage",
30
- "genbadge[coverage]"
28
+ "numpydoc",
29
+ "sphinx",
30
+ "sphinx-autodoc-typehints",
31
+ "sphinx-pyproject",
31
32
  ]
32
33
 
33
34
  [tool.pyright]
@@ -1,3 +1,4 @@
1
+ # pyright: reportImportCycles=false
1
2
  from .color import * # noqa: F403
2
3
  from .core import * # noqa: F403
3
4
  from .d2 import * # noqa: F403
@@ -1,3 +1,4 @@
1
+ # pyright: reportImportCycles=false
1
2
  from .constants import *
2
3
  from .type import *
3
4
  from .utils import *
@@ -1,3 +1,4 @@
1
+ # pyright: reportImportCycles=false
1
2
  from .combinations import * # noqa: F403
2
3
  from .topologies import * # noqa: F403
3
4
  from .transformations import * # noqa: F403
@@ -1,2 +1,3 @@
1
+ # pyright: reportImportCycles=false
1
2
  from .shape import * # noqa: F403
2
3
  from .utils import * # noqa: F403
@@ -1,3 +1,4 @@
1
+ # pyright: reportImportCycles=false
1
2
  from .combinations import * # noqa: F403
2
3
  from .exporters import * # noqa: F403
3
4
  from .features import * # noqa: F403
@@ -84,13 +84,16 @@ def map_shape_to_html(
84
84
 
85
85
  for part in shape._parts:
86
86
  color = part.color
87
- edge_color = tuple((c + b) / 2 for c, b in zip(color[:3], background_color[:3]))
87
+ edge_color = [(c + b) / 2 for c, b in zip(color[:3], background_color[:3])]
88
+ edge_color_rgba: tuple[float, float, float, float] = (
89
+ edge_color[0], edge_color[1], edge_color[2], 1.0
90
+ )
88
91
  plot_polygon(
89
92
  part.geometry,
90
93
  ax=ax,
91
94
  add_points=False,
92
95
  facecolor=(color[0], color[1], color[2], color[3]),
93
- edgecolor=(*edge_color, 1.0),
96
+ edgecolor=edge_color_rgba,
94
97
  linewidth=2,
95
98
  )
96
99
 
@@ -88,11 +88,11 @@ def _radial_extrude_shapely_polygon_into_trimesh(
88
88
 
89
89
  triangulated_border_vertex_count = len(triangulated_vertex_coordinates)
90
90
  triangulated_edge_to_vertex_sorted = np.sort(triangulated_edge_to_vertex, axis=1)
91
- triangulated_edge_unique = group_rows(
92
- triangulated_edge_to_vertex_sorted, require_count=1
91
+ triangulated_edge_unique = np.asarray(
92
+ group_rows(triangulated_edge_to_vertex_sorted, require_count=1), dtype=np.intp
93
93
  )
94
94
  slice_border_faces = _create_slice_border_faces(
95
- triangulated_edge_to_vertex[triangulated_edge_unique],
95
+ triangulated_edge_to_vertex[triangulated_edge_unique].astype(np.int64),
96
96
  triangulated_border_vertex_count,
97
97
  slice_count - 1,
98
98
  is_ring,
@@ -1,2 +1,3 @@
1
+ # pyright: reportImportCycles=false
1
2
  from .solid import * # noqa: F403
2
3
  from .utils import * # noqa: F403
@@ -1,3 +1,4 @@
1
+ # pyright: reportImportCycles=false
1
2
  from .combinations import * # noqa: F403
2
3
  from .exporters import * # noqa: F403
3
4
  from .features import * # noqa: F403
@@ -1,26 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches:
6
- - "**"
7
- pull_request:
8
-
9
- jobs:
10
- test:
11
- runs-on: ubuntu-latest
12
- steps:
13
- - uses: actions/checkout@v4
14
-
15
- - uses: actions/setup-python@v5
16
- with:
17
- python-version: "3.12"
18
-
19
- - name: Install system dependencies
20
- run: sudo apt-get install -y libegl1
21
-
22
- - name: Install dependencies
23
- run: pip install -e .[dev]
24
-
25
- - name: Run doctests
26
- run: cd docs && make doctest
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes