sldkit 0.3.0__tar.gz → 0.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. {sldkit-0.3.0 → sldkit-0.3.1}/Cargo.lock +5 -5
  2. {sldkit-0.3.0 → sldkit-0.3.1}/Cargo.toml +1 -1
  3. {sldkit-0.3.0 → sldkit-0.3.1}/PKG-INFO +5 -1
  4. {sldkit-0.3.0/crates/sldkit-core → sldkit-0.3.1}/README.md +4 -0
  5. {sldkit-0.3.0 → sldkit-0.3.1/crates/sldkit-container}/README.md +4 -0
  6. {sldkit-0.3.0/crates/sldkit-container → sldkit-0.3.1/crates/sldkit-core}/README.md +4 -0
  7. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/README.md +4 -0
  8. sldkit-0.3.1/crates/sldkit-python/README.md +227 -0
  9. {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/releasing.md +33 -1
  10. {sldkit-0.3.0 → sldkit-0.3.1}/pyproject.toml +14 -1
  11. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/__init__.py +3 -1
  12. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/README.md +1 -0
  13. sldkit-0.3.1/scripts/bump_version.py +92 -0
  14. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/check_license.py +9 -10
  15. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/verify_release_artifacts.py +1 -0
  16. sldkit-0.3.1/scripts/verify_release_version.py +124 -0
  17. {sldkit-0.3.0 → sldkit-0.3.1}/viewer/package-lock.json +3 -5
  18. {sldkit-0.3.0 → sldkit-0.3.1}/viewer/package.json +0 -1
  19. sldkit-0.3.0/crates/sldkit-python/README.md +0 -223
  20. sldkit-0.3.0/scripts/verify_release_version.py +0 -96
  21. {sldkit-0.3.0 → sldkit-0.3.1}/CLA.md +0 -0
  22. {sldkit-0.3.0 → sldkit-0.3.1}/COMMERCIAL-LICENSE.md +0 -0
  23. {sldkit-0.3.0 → sldkit-0.3.1}/CONTRIBUTING.md +0 -0
  24. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSE +0 -0
  25. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/Apache-2.0.txt +0 -0
  26. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/PolyForm-Noncommercial-1.0.0.md +0 -0
  27. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/README.md +0 -0
  28. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/parasolid-core-MIT.txt +0 -0
  29. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/parasolid-core-PARTIAL_READERS.md +0 -0
  30. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/rust-dependencies.json +0 -0
  31. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/rust-dependencies.txt +0 -0
  32. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/sldkit-legacy-MIT.txt +0 -0
  33. {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/three-MIT.txt +0 -0
  34. {sldkit-0.3.0 → sldkit-0.3.1}/THIRD_PARTY_NOTICES.md +0 -0
  35. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/Cargo.toml +0 -0
  36. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/LICENSE +0 -0
  37. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/common.rs +0 -0
  38. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/lib.rs +0 -0
  39. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/modern.rs +0 -0
  40. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/ole2.rs +0 -0
  41. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/zip.rs +0 -0
  42. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/Cargo.toml +0 -0
  43. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/LICENSE +0 -0
  44. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/bom.rs +0 -0
  45. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/diagnostic.rs +0 -0
  46. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/display.rs +0 -0
  47. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/drawing.rs +0 -0
  48. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/geometry.rs +0 -0
  49. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/geometry_evaluation.rs +0 -0
  50. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/inventory.rs +0 -0
  51. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/lib.rs +0 -0
  52. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/limits.rs +0 -0
  53. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/model.rs +0 -0
  54. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/project.rs +0 -0
  55. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/result.rs +0 -0
  56. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/Cargo.toml +0 -0
  57. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/LICENSE +0 -0
  58. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/bom.rs +0 -0
  59. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display/appearance.rs +0 -0
  60. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display/tables.rs +0 -0
  61. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display/tests.rs +0 -0
  62. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display.rs +0 -0
  63. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/drawing.rs +0 -0
  64. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/byte_partition.rs +0 -0
  65. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/cylindrical_loops/tests.rs +0 -0
  66. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/cylindrical_loops.rs +0 -0
  67. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/carriers.rs +0 -0
  68. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/mesh.rs +0 -0
  69. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/mod.rs +0 -0
  70. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/tests.rs +0 -0
  71. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/intervals.rs +0 -0
  72. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/nurbs_intervals.rs +0 -0
  73. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/parasolid.rs +0 -0
  74. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/planar_loops.rs +0 -0
  75. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry.rs +0 -0
  76. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/legacy_semantics.rs +0 -0
  77. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/lib.rs +0 -0
  78. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/modern_semantics.rs +0 -0
  79. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/project.rs +0 -0
  80. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/units.rs +0 -0
  81. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-python/Cargo.toml +0 -0
  82. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-python/LICENSE +0 -0
  83. {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-python/src/lib.rs +0 -0
  84. {sldkit-0.3.0 → sldkit-0.3.1}/docs/README.md +0 -0
  85. {sldkit-0.3.0 → sldkit-0.3.1}/docs/architecture.md +0 -0
  86. {sldkit-0.3.0 → sldkit-0.3.1}/docs/compatibility.md +0 -0
  87. {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/README.md +0 -0
  88. {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/assembly-validation.md +0 -0
  89. {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/drawing-validation.md +0 -0
  90. {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/geometry-validation.md +0 -0
  91. {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/part-validation.md +0 -0
  92. {sldkit-0.3.0 → sldkit-0.3.1}/docs/display-mesh.md +0 -0
  93. {sldkit-0.3.0 → sldkit-0.3.1}/docs/document-facts.md +0 -0
  94. {sldkit-0.3.0 → sldkit-0.3.1}/docs/drawing-structure.md +0 -0
  95. {sldkit-0.3.0 → sldkit-0.3.1}/docs/geometry-evaluation.md +0 -0
  96. {sldkit-0.3.0 → sldkit-0.3.1}/docs/geometry.md +0 -0
  97. {sldkit-0.3.0 → sldkit-0.3.1}/docs/license.ja.md +0 -0
  98. {sldkit-0.3.0 → sldkit-0.3.1}/docs/license.md +0 -0
  99. {sldkit-0.3.0 → sldkit-0.3.1}/docs/parser-provenance.md +0 -0
  100. {sldkit-0.3.0 → sldkit-0.3.1}/docs/project-scanning.md +0 -0
  101. {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/drawing-ground-truth.schema.json +0 -0
  102. {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/geometry-oracle.schema.json +0 -0
  103. {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/nurbs-geometry-oracle.schema.json +0 -0
  104. {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/nurbs-trim-oracle.schema.json +0 -0
  105. {sldkit-0.3.0 → sldkit-0.3.1}/docs/viewer.md +0 -0
  106. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/__main__.py +0 -0
  107. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/_core.pyi +0 -0
  108. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/api.py +0 -0
  109. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/cli.py +0 -0
  110. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/errors.py +0 -0
  111. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/model.py +0 -0
  112. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/py.typed +0 -0
  113. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/__init__.py +0 -0
  114. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/LICENSE.txt +0 -0
  115. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/three-LICENSE.txt +0 -0
  116. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/viewer.css +0 -0
  117. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/viewer.html +0 -0
  118. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/viewer.js +0 -0
  119. {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_html.py +0 -0
  120. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_assembly_transforms.ps1 +0 -0
  121. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_drawing_ground_truth.ps1 +0 -0
  122. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_part_orientation.swb +0 -0
  123. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_step_geometry.py +0 -0
  124. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/compare_drawing_structures.py +0 -0
  125. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/nurbs_geometry.py +0 -0
  126. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/smoke_installed_package.py +0 -0
  127. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/smoke_wheel_artifact.py +0 -0
  128. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/sync_license_notices.py +0 -0
  129. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/test_assembly_capture.ps1 +0 -0
  130. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_geometry_oracle.py +0 -0
  131. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_nurbs_geometry.py +0 -0
  132. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_nurbs_trim.py +0 -0
  133. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_part_boundaries.py +0 -0
  134. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_part_orientation.py +0 -0
  135. {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_partial_nurbs.py +0 -0
  136. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/Cargo.lock +0 -0
  137. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/Cargo.toml +0 -0
  138. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/LICENSE +0 -0
  139. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/PATCHES.md +0 -0
  140. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/README.md +0 -0
  141. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/annotations.rs +0 -0
  142. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/appearance/tests.rs +0 -0
  143. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/appearance.rs +0 -0
  144. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/attrib.rs +0 -0
  145. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/blend.rs +0 -0
  146. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/entity.rs +0 -0
  147. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/graph.rs +0 -0
  148. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/intersection.rs +0 -0
  149. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_fin/tests.rs +0 -0
  150. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_fin.rs +0 -0
  151. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_hierarchy/tests.rs +0 -0
  152. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_hierarchy.rs +0 -0
  153. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/offset.rs +0 -0
  154. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/spline.rs +0 -0
  155. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/subset.rs +0 -0
  156. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/sweep.rs +0 -0
  157. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/topology.rs +0 -0
  158. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep.rs +0 -0
  159. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/byte_ledger.rs +0 -0
  160. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/classification.rs +0 -0
  161. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/container/tests.rs +0 -0
  162. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/container.rs +0 -0
  163. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/admission.rs +0 -0
  164. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/body_membership.rs +0 -0
  165. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration.rs +0 -0
  166. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration_completeness.rs +0 -0
  167. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration_sites.rs +0 -0
  168. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/curves_and_loops.rs +0 -0
  169. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/design_completeness.rs +0 -0
  170. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/display_fallback.rs +0 -0
  171. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/feature_degradation.rs +0 -0
  172. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/geometry_report.rs +0 -0
  173. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/metadata_fallback.rs +0 -0
  174. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/mod.rs +0 -0
  175. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/nurbs_surfaces.rs +0 -0
  176. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/partition_merge.rs +0 -0
  177. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/pcurves.rs +0 -0
  178. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/round_trip.rs +0 -0
  179. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/schema_shells.rs +0 -0
  180. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/site_keys.rs +0 -0
  181. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/sketch_losses.rs +0 -0
  182. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode.rs +0 -0
  183. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/feature_schema.rs +0 -0
  184. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/fuzz.rs +0 -0
  185. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/golden_tests.rs +0 -0
  186. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/bind.rs +0 -0
  187. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/classify.rs +0 -0
  188. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/configuration.rs +0 -0
  189. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/datum.rs +0 -0
  190. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/format.rs +0 -0
  191. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/misc.rs +0 -0
  192. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/mod.rs +0 -0
  193. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/modify.rs +0 -0
  194. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/pattern.rs +0 -0
  195. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/sketch.rs +0 -0
  196. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/solid.rs +0 -0
  197. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/spin.rs +0 -0
  198. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/support.rs +0 -0
  199. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/surface.rs +0 -0
  200. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/hash.rs +0 -0
  201. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/literals.rs +0 -0
  202. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/mod.rs +0 -0
  203. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/parameters/eval.rs +0 -0
  204. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/parameters/mod.rs +0 -0
  205. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/datum.rs +0 -0
  206. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/mod.rs +0 -0
  207. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/modify.rs +0 -0
  208. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/pattern.rs +0 -0
  209. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/sketch.rs +0 -0
  210. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/solid.rs +0 -0
  211. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/spin.rs +0 -0
  212. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/surface.rs +0 -0
  213. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/selections.rs +0 -0
  214. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/configuration.rs +0 -0
  215. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/equations.rs +0 -0
  216. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/extrusion_profile.rs +0 -0
  217. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/feature_operations.rs +0 -0
  218. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/feature_projection.rs +0 -0
  219. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/mod.rs +0 -0
  220. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/offset_planes.rs +0 -0
  221. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/parameters.rs +0 -0
  222. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/sketch_bind.rs +0 -0
  223. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/sketch_relations.rs +0 -0
  224. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/split_and_identity.rs +0 -0
  225. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/tree_binding.rs +0 -0
  226. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/configurations.rs +0 -0
  227. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/features.rs +0 -0
  228. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/mod.rs +0 -0
  229. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/parameters.rs +0 -0
  230. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/xml.rs +0 -0
  231. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/integration_tests.rs +0 -0
  232. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/layout.rs +0 -0
  233. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/lib.rs +0 -0
  234. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/loss.rs +0 -0
  235. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/metadata/tests.rs +0 -0
  236. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/metadata.rs +0 -0
  237. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/native/tests.rs +0 -0
  238. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/native.rs +0 -0
  239. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/parasolid/tests.rs +0 -0
  240. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/parasolid.rs +0 -0
  241. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/pmi/tests.rs +0 -0
  242. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/pmi.rs +0 -0
  243. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/records.rs +0 -0
  244. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/assembly/assembly_tests.rs +0 -0
  245. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/assembly.rs +0 -0
  246. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/axes/axes_tests.rs +0 -0
  247. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/axes.rs +0 -0
  248. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/bindings/bindings_tests.rs +0 -0
  249. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/bindings.rs +0 -0
  250. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/classes.rs +0 -0
  251. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/compact_reference_planes/compact_reference_planes_tests.rs +0 -0
  252. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/compact_reference_planes.rs +0 -0
  253. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/component_paths/component_paths_tests.rs +0 -0
  254. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/component_paths.rs +0 -0
  255. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/curves/curves_tests.rs +0 -0
  256. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/curves.rs +0 -0
  257. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/dimensions/dimensions_tests.rs +0 -0
  258. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/dimensions.rs +0 -0
  259. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/direct_edits.rs +0 -0
  260. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/drafts.rs +0 -0
  261. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/arcs.rs +0 -0
  262. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/circles.rs +0 -0
  263. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/compact.rs +0 -0
  264. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/extended.rs +0 -0
  265. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/mod.rs +0 -0
  266. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/profile_lines.rs +0 -0
  267. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints.rs +0 -0
  268. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/hashes.rs +0 -0
  269. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/helix.rs +0 -0
  270. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/axial_profile.rs +0 -0
  271. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/hole_axis.rs +0 -0
  272. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/mod.rs +0 -0
  273. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/position.rs +0 -0
  274. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/writer.rs +0 -0
  275. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes.rs +0 -0
  276. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/lanes.rs +0 -0
  277. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/mod.rs +0 -0
  278. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/profile_points.rs +0 -0
  279. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/spatial.rs +0 -0
  280. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers.rs +0 -0
  281. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/mod.rs +0 -0
  282. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/names/names_tests.rs +0 -0
  283. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/names.rs +0 -0
  284. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operands/operands_tests.rs +0 -0
  285. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operands.rs +0 -0
  286. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operations/operations_tests.rs +0 -0
  287. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operations.rs +0 -0
  288. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/parameters/parameters_tests.rs +0 -0
  289. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/parameters.rs +0 -0
  290. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/profiles.rs +0 -0
  291. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/projections/projections_tests.rs +0 -0
  292. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/projections.rs +0 -0
  293. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry/reference_geometry_tests.rs +0 -0
  294. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry/tests.rs +0 -0
  295. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry.rs +0 -0
  296. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_geometry.rs +0 -0
  297. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_loci/relation_loci_tests.rs +0 -0
  298. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_loci.rs +0 -0
  299. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_records.rs +0 -0
  300. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/scalars/scalars_tests.rs +0 -0
  301. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/scalars.rs +0 -0
  302. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/compact_edge.rs +0 -0
  303. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/delete_body.rs +0 -0
  304. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/mod.rs +0 -0
  305. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/surfaces.rs +0 -0
  306. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/writer.rs +0 -0
  307. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections.rs +0 -0
  308. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_edges/sketch_edges_tests.rs +0 -0
  309. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_edges.rs +0 -0
  310. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_projection/sketch_projection_tests.rs +0 -0
  311. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_projection.rs +0 -0
  312. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_write/sketch_write_tests.rs +0 -0
  313. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_write.rs +0 -0
  314. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/terminations/terminations_tests.rs +0 -0
  315. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/terminations.rs +0 -0
  316. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/frames.rs +0 -0
  317. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/join.rs +0 -0
  318. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/mod.rs +0 -0
  319. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/patterns.rs +0 -0
  320. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/profile.rs +0 -0
  321. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_geometry.rs +0 -0
  322. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_links.rs +0 -0
  323. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_operands.rs +0 -0
  324. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/selection.rs +0 -0
  325. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms.rs +0 -0
  326. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/typed_relations/typed_relations_tests.rs +0 -0
  327. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/typed_relations.rs +0 -0
  328. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/validate/tests.rs +0 -0
  329. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/validate.rs +0 -0
  330. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_generate.rs +0 -0
  331. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_prepare/write_prepare_tests.rs +0 -0
  332. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_prepare.rs +0 -0
  333. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/swift.rs +0 -0
  334. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation/ownership/tests.rs +0 -0
  335. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation/ownership.rs +0 -0
  336. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation/tests.rs +0 -0
  337. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation.rs +0 -0
  338. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/appearance.rs +0 -0
  339. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/container.rs +0 -0
  340. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/history.rs +0 -0
  341. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/ir.rs +0 -0
  342. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/mod.rs +0 -0
  343. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/native.rs +0 -0
  344. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/parasolid.rs +0 -0
  345. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/pmi.rs +0 -0
  346. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/tessellation.rs +0 -0
  347. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/configuration_carriers.rs +0 -0
  348. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/flex_history.rs +0 -0
  349. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/helix_surfaces.rs +0 -0
  350. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/mod.rs +0 -0
  351. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/parameters_extrude.rs +0 -0
  352. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/patterns_history.rs +0 -0
  353. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/round_trip.rs +0 -0
  354. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/sketch_tessellation.rs +0 -0
  355. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/swobjects.rs +0 -0
  356. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/thicken_reference.rs +0 -0
  357. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer.rs +0 -0
  358. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer_patch/tests.rs +0 -0
  359. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer_patch.rs +0 -0
  360. {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer_transform.rs +0 -0
  361. {sldkit-0.3.0 → sldkit-0.3.1}/viewer/LICENSE.txt +0 -0
  362. {sldkit-0.3.0 → sldkit-0.3.1}/viewer/build.mjs +0 -0
  363. {sldkit-0.3.0 → sldkit-0.3.1}/viewer/src/viewer.js +0 -0
@@ -675,7 +675,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
675
675
 
676
676
  [[package]]
677
677
  name = "sldkit-cli"
678
- version = "0.3.0"
678
+ version = "0.3.1"
679
679
  dependencies = [
680
680
  "clap",
681
681
  "serde",
@@ -686,7 +686,7 @@ dependencies = [
686
686
 
687
687
  [[package]]
688
688
  name = "sldkit-container"
689
- version = "0.3.0"
689
+ version = "0.3.1"
690
690
  dependencies = [
691
691
  "cfb",
692
692
  "crc32fast",
@@ -697,7 +697,7 @@ dependencies = [
697
697
 
698
698
  [[package]]
699
699
  name = "sldkit-core"
700
- version = "0.3.0"
700
+ version = "0.3.1"
701
701
  dependencies = [
702
702
  "serde",
703
703
  "serde_json",
@@ -705,7 +705,7 @@ dependencies = [
705
705
 
706
706
  [[package]]
707
707
  name = "sldkit-parser"
708
- version = "0.3.0"
708
+ version = "0.3.1"
709
709
  dependencies = [
710
710
  "cadmpeg-codec-sldprt",
711
711
  "cadmpeg-core",
@@ -725,7 +725,7 @@ dependencies = [
725
725
 
726
726
  [[package]]
727
727
  name = "sldkit-python"
728
- version = "0.3.0"
728
+ version = "0.3.1"
729
729
  dependencies = [
730
730
  "pyo3",
731
731
  "serde",
@@ -4,7 +4,7 @@ exclude = ["vendor/cadmpeg-codec-sldprt"]
4
4
  resolver = "3"
5
5
 
6
6
  [workspace.package]
7
- version = "0.3.0"
7
+ version = "0.3.1"
8
8
  edition = "2024"
9
9
  rust-version = "1.88"
10
10
  description = "Source-faithful parsing foundations for SolidWorks files"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sldkit
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Classifier: Development Status :: 2 - Pre-Alpha
5
5
  Classifier: Intended Audience :: Developers
6
6
  Classifier: Programming Language :: Python :: 3
@@ -250,6 +250,10 @@ uv run --frozen python scripts/verify_release_artifacts.py dist
250
250
  uv run --frozen python scripts/smoke_wheel_artifact.py dist
251
251
  ```
252
252
 
253
+ To change the release version, run `python scripts/bump_version.py X.Y.Z`.
254
+ The command updates the shared Cargo version and lockfiles; see the
255
+ [release guide](docs/development/releasing.md#change-the-version).
256
+
253
257
  ## License
254
258
 
255
259
  Starting with 0.2.0, new material is source-available under PolyForm Noncommercial
@@ -210,6 +210,10 @@ uv run --frozen python scripts/verify_release_artifacts.py dist
210
210
  uv run --frozen python scripts/smoke_wheel_artifact.py dist
211
211
  ```
212
212
 
213
+ To change the release version, run `python scripts/bump_version.py X.Y.Z`.
214
+ The command updates the shared Cargo version and lockfiles; see the
215
+ [release guide](docs/development/releasing.md#change-the-version).
216
+
213
217
  ## License
214
218
 
215
219
  Starting with 0.2.0, new material is source-available under PolyForm Noncommercial
@@ -210,6 +210,10 @@ uv run --frozen python scripts/verify_release_artifacts.py dist
210
210
  uv run --frozen python scripts/smoke_wheel_artifact.py dist
211
211
  ```
212
212
 
213
+ To change the release version, run `python scripts/bump_version.py X.Y.Z`.
214
+ The command updates the shared Cargo version and lockfiles; see the
215
+ [release guide](docs/development/releasing.md#change-the-version).
216
+
213
217
  ## License
214
218
 
215
219
  Starting with 0.2.0, new material is source-available under PolyForm Noncommercial
@@ -210,6 +210,10 @@ uv run --frozen python scripts/verify_release_artifacts.py dist
210
210
  uv run --frozen python scripts/smoke_wheel_artifact.py dist
211
211
  ```
212
212
 
213
+ To change the release version, run `python scripts/bump_version.py X.Y.Z`.
214
+ The command updates the shared Cargo version and lockfiles; see the
215
+ [release guide](docs/development/releasing.md#change-the-version).
216
+
213
217
  ## License
214
218
 
215
219
  Starting with 0.2.0, new material is source-available under PolyForm Noncommercial
@@ -210,6 +210,10 @@ uv run --frozen python scripts/verify_release_artifacts.py dist
210
210
  uv run --frozen python scripts/smoke_wheel_artifact.py dist
211
211
  ```
212
212
 
213
+ To change the release version, run `python scripts/bump_version.py X.Y.Z`.
214
+ The command updates the shared Cargo version and lockfiles; see the
215
+ [release guide](docs/development/releasing.md#change-the-version).
216
+
213
217
  ## License
214
218
 
215
219
  Starting with 0.2.0, new material is source-available under PolyForm Noncommercial
@@ -0,0 +1,227 @@
1
+ # sldkit
2
+
3
+ `sldkit` is an experimental, source-faithful parser for SolidWorks `.SLDPRT`,
4
+ `.SLDASM`, and `.SLDDRW` files. The parsing core is written in Rust and exposed
5
+ as a typed Python package through PyO3.
6
+
7
+ ## Capabilities
8
+
9
+ | Capability | Support |
10
+ |---|---|
11
+ | Container detection and bounded inventory | Modern chunk, OLE2/CFB, and ZIP/OPC candidates |
12
+ | Stored and decoded stream extraction | Supported where the container decoder recognizes the encoding |
13
+ | Exact binary-resource extraction | Revalidates parser-produced path, decoded range, and SHA-256 before returning preview bytes |
14
+ | Modern metadata, properties, configurations, and references | Partial, source-faithful profile |
15
+ | Typed component flags, unit settings, material labels, feature records, sheet facts, embedded virtual components | Source tokens plus labelled inferences |
16
+ | Modern `.SLDPRT` B-Rep and tessellation | Explicit partial profile with provenance and loss records |
17
+ | Saved display meshes | Packed `DisplayLists` meshes, colors, and face outlines for Parts, Assemblies, and `__ZLB` OLE2 Parts without B-Rep decoding |
18
+ | Modern `.SLDDRW` source structure | Exact XML record inventory plus unframed Drawing carrier candidates; no render semantics |
19
+ | Kernel-free geometry evaluation | Sampled edge polylines, bounds, edge smoothness, and mesh quantities with explicit withheld states |
20
+ | Directory project graph | Bounded and deterministic for decoded references, including embedded virtual components |
21
+ | Project index and bill of materials | Reverse references across a project and occurrence expansion with quantities |
22
+ | Legacy OLE2/CFB metadata, properties, configurations, and previews | Partial, bounded profile for observed layouts |
23
+ | ZIP/OPC document semantics | Unsupported |
24
+ | Feature history, mates, and occurrence transforms | Unsupported; raw transform tokens are retained as evidence |
25
+ | Drawing entities, dimensions, and view transforms | Unsupported |
26
+ | Offline HTML viewer | Recovered Part meshes, saved previews, and parse diagnostics |
27
+
28
+ The package returns structured diagnostics and byte coverage. Missing,
29
+ unsupported, malformed, and inferred source data are not collapsed into empty
30
+ values or successful parses.
31
+
32
+ See the [public documentation](https://github.com/monozukuri-ai/sldkit/tree/main/docs)
33
+ for architecture, compatibility boundaries, project scanning, and parser-rule
34
+ provenance.
35
+
36
+ ## Python
37
+
38
+ ```python
39
+ import sldkit
40
+
41
+ probe = sldkit.probe_file("part.SLDPRT")
42
+ print(probe.envelope, probe.confidence)
43
+
44
+ inventory = sldkit.inspect_file("part.SLDPRT")
45
+ for entry in inventory.inventory.entries if inventory.inventory else ():
46
+ print(entry.id, entry.path, entry.checksum)
47
+
48
+ entry = inventory.inventory.entries[0]
49
+ extracted = sldkit.extract_file("part.SLDPRT", entry.id)
50
+ assert extracted.data is not None
51
+
52
+ result = sldkit.parse_file("part.SLDPRT")
53
+ for config in result.document.configurations if result.document else ():
54
+ print(config.index.value, config.name.value if config.name else None)
55
+ for prop in result.document.properties if result.document else ():
56
+ print(prop.name.value, prop.value_state, prop.raw_value)
57
+ for diagnostic in result.diagnostics:
58
+ print(diagnostic.code, diagnostic.kind, diagnostic.message)
59
+
60
+ for sheet in result.document.sheets if result.document else ():
61
+ if sheet.preview is not None:
62
+ preview = sldkit.extract_resource_file("drawing.SLDDRW", sheet.preview)
63
+ assert preview.data is not None
64
+
65
+ geometry = sldkit.decode_geometry_file("part.SLDPRT")
66
+ if geometry.geometry is not None:
67
+ print(len(geometry.geometry.model.bodies))
68
+ for metric in geometry.geometry.topology_metrics:
69
+ print(metric.body_id, metric.faces, metric.edges, metric.vertices)
70
+ for loss in geometry.geometry.fidelity.losses:
71
+ print(loss.code, loss.category, loss.severity)
72
+
73
+ drawing = sldkit.decode_drawing_structure_file("drawing.SLDDRW")
74
+ if drawing.structure is not None:
75
+ for record in drawing.structure.records:
76
+ print(record.id, record.record_class, record.source.decoded_offset)
77
+ for carrier in drawing.structure.source_streams:
78
+ print(carrier.stream_path, carrier.record_framing_verified)
79
+
80
+ graph = sldkit.scan_project(
81
+ "project/top.SLDASM",
82
+ project_root="project",
83
+ configuration="Default",
84
+ )
85
+ for edge in graph.edges:
86
+ print(edge.stored_path, edge.resolution_status, edge.resolved_path)
87
+
88
+ bom = sldkit.build_bom(graph)
89
+ for item in bom.part_items():
90
+ print(item.display_name, item.key.configuration, item.quantity)
91
+
92
+ index = sldkit.index_project("project")
93
+ part = index.node_by_path("parts/bracket.SLDPRT")
94
+ if part is not None:
95
+ for drawing in index.referencing_nodes(part.id, kind=sldkit.ReferenceKind.DRAWING_VIEW):
96
+ print(drawing.path)
97
+
98
+ display = sldkit.decode_display_mesh_file("part.SLDPRT", profile="service")
99
+ if display.mesh is not None:
100
+ print(display.mesh.triangle_count, len(display.positions), len(display.edges))
101
+
102
+ evaluation = sldkit.evaluate_geometry_file("part.SLDPRT", chord_tolerance_mm=0.05)
103
+ if evaluation.evaluation is not None:
104
+ print(evaluation.evaluation.bounding_box, evaluation.evaluation.summary)
105
+ ```
106
+
107
+ Typed component flags, document units, material labels, feature records, and
108
+ sheet facts are described in [document facts](docs/document-facts.md);
109
+ [geometry evaluation](docs/geometry-evaluation.md),
110
+ [saved display meshes](docs/display-mesh.md), and
111
+ [project scanning](docs/project-scanning.md) cover the derived APIs.
112
+
113
+ Use `strict=True` with `parse_file` or `parse_bytes` when an unsupported or
114
+ partial result must raise `sldkit.ParseError`. Geometry decoding has the same
115
+ option and raises `sldkit.GeometryError` unless its status is `decoded`.
116
+ Drawing structure inventory raises `sldkit.DrawingStructureError` in strict
117
+ mode unless its status is `inventoried`; a `partial` result retains all located
118
+ records and exact candidate-stream identities.
119
+
120
+ If no configuration is selected, the graph is the union of all decoded source
121
+ configurations. Configuration names are matched exactly. Suppressed references
122
+ are resolved but not traversed unless `follow_suppressed=True` is set.
123
+
124
+ The full graph contains source paths and hashes. Use the path-free aggregate
125
+ when sharing compatibility results:
126
+
127
+ ```bash
128
+ sldkit scan project/top.SLDASM --project-root project --summary
129
+ sldkit-rs scan project/top.SLDASM --project-root project --summary
130
+ sldkit drawing drawing.SLDDRW --limits service
131
+ sldkit display part.SLDPRT --limits service
132
+ sldkit-rs drawing drawing.SLDDRW --limits service
133
+ sldkit evaluate part.SLDPRT --chord-tolerance 0.05
134
+ sldkit index project --summary
135
+ sldkit bom project/top.SLDASM --project-root project --configuration Default --items-only
136
+ uv run python scripts/compare_drawing_structures.py baseline.SLDDRW variant.SLDDRW
137
+ ```
138
+
139
+ Windows absolute paths are never opened as host paths on Linux or macOS. An
140
+ explicit relocation can be supplied with
141
+ `--windows-prefix-map 'Z:\\CAD=/mnt/cad'`; unresolved basename fallback remains
142
+ labeled and never selects among multiple candidates.
143
+
144
+ Geometry fidelity includes verified per-domain field spans and typed/uninterpreted
145
+ byte ranges. Complete byte accounting is separate from semantic geometry coverage;
146
+ see [geometry fidelity](docs/geometry.md).
147
+
148
+ ## Architecture boundary
149
+
150
+ `sldkit-parser` uses the published Rust `parasolid-core` crate for embedded
151
+ Parasolid headers and shared partial topology/geometry readers. No Python `parasolid-kit` installation or adjacent
152
+ checkout is required. See the [dependency boundary](docs/geometry.md#parasolid-dependency).
153
+
154
+ `sldkit` owns SolidWorks-specific parsing and source models. It does not depend
155
+ on `cad3d-ir`, CadQuery, Open CASCADE, a vendor SDK, or COM. The opt-in Python
156
+ viewer consumes public results and bundles Three.js for browser rendering. A separate
157
+ adapter can depend on both `sldkit` and a downstream interchange model.
158
+ The source distribution's optional SolidWorks capture script is controlled
159
+ validation tooling; it is not imported by the package or included in wheels.
160
+
161
+ ## Offline viewer
162
+
163
+ ```bash
164
+ sldkit view part.SLDPRT --output preview.html
165
+ sldkit view drawing.SLDDRW --output drawing.html --open
166
+ ```
167
+
168
+ Open the generated HTML in a WebGL2-capable browser. JavaScript, meshes, and
169
+ available saved previews are embedded; no server, CDN, or Node.js installation
170
+ is needed to use it. Existing output requires `--force`.
171
+
172
+ ```python
173
+ from sldkit import decode_geometry_file
174
+ from sldkit.viewer import write_html
175
+
176
+ result = decode_geometry_file("part.SLDPRT")
177
+ write_html(result, "preview.html", title="My part")
178
+ ```
179
+
180
+ The viewer displays only recovered meshes. A partial result may have incomplete
181
+ or no geometry; saved images are labeled separately. Assembly placement and
182
+ Drawing entity rendering remain unsupported. See [viewer behavior](docs/viewer.md).
183
+
184
+ ## Development
185
+
186
+ See the [developer documentation](docs/development/README.md) for independent
187
+ validation, release checks, and the development script catalog.
188
+
189
+ ```bash
190
+ cargo test --workspace
191
+ CARGO_TARGET_DIR=target cargo test --locked --manifest-path vendor/cadmpeg-codec-sldprt/Cargo.toml --lib
192
+ cargo fmt --all -- --check
193
+ cargo clippy --workspace --all-targets -- -D warnings
194
+ cargo +nightly fuzz run inventory -- -runs=10000
195
+ uv sync --dev
196
+ uv run maturin develop
197
+ uv run pytest
198
+ uv run ruff check .
199
+ ```
200
+
201
+ The cross-platform wheel gate builds one CPython 3.10+ ABI3 wheel per configured
202
+ OS, inspects its contents, and installs it without dependencies or an index on
203
+ both Python 3.10 and 3.14 before running semantic parsing, exact-resource
204
+ extraction, and project-graph smoke checks. A separate job rebuilds a Linux wheel
205
+ from the source distribution and applies the same checks.
206
+
207
+ ```bash
208
+ uv run --frozen maturin build --release --locked --out dist
209
+ uv run --frozen python scripts/verify_release_artifacts.py dist
210
+ uv run --frozen python scripts/smoke_wheel_artifact.py dist
211
+ ```
212
+
213
+ To change the release version, run `python scripts/bump_version.py X.Y.Z`.
214
+ The command updates the shared Cargo version and lockfiles; see the
215
+ [release guide](docs/development/releasing.md#change-the-version).
216
+
217
+ ## License
218
+
219
+ Starting with 0.2.0, new material is source-available under PolyForm Noncommercial
220
+ 1.0.0, with separate commercial licenses from **UnRobotics Inc.** Previously
221
+ published MIT material and third-party components retain their original rights.
222
+ See [licensing](docs/license.md) ([日本語](docs/license.ja.md)),
223
+ [commercial licensing](COMMERCIAL-LICENSE.md), and [third-party notices](THIRD_PARTY_NOTICES.md).
224
+ External validation inputs are excluded from distributions.
225
+
226
+ Required Notice: sldkit is licensed by UnRobotics Inc. (https://www.un-robotics.com/).
227
+ Required Notice: sldkit 0.2.0 and later offer new material under PolyForm Noncommercial 1.0.0; separate commercial licenses are available.
@@ -6,6 +6,38 @@ the published `parasolid-core 0.3.2` crate without a local source patch.
6
6
  Keep previously published MIT and third-party permissions intact. Use a new
7
7
  version for corrections; do not replace existing public artifacts with different terms.
8
8
 
9
+ ## Change the version
10
+
11
+ `Cargo.toml`'s `[workspace.package].version` is the single version definition.
12
+ Rust crates inherit it, Maturin derives Python package metadata from it, and
13
+ `sldkit.__version__` reads the installed distribution metadata. The private
14
+ Viewer asset build does not have a separate package version.
15
+
16
+ From a full checkout, use Python 3.11+, Cargo and uv:
17
+
18
+ ```bash
19
+ python scripts/bump_version.py 0.4.0
20
+ python scripts/bump_version.py --check
21
+ uv sync --locked --inexact
22
+ ```
23
+
24
+ Replace `0.4.0` with the intended version. The command updates `Cargo.toml`,
25
+ refreshes the main and fuzz Cargo lockfiles plus `uv.lock`, and checks consistency.
26
+ It restores those files, including any pre-existing edits, if an update fails.
27
+ Use `--offline` when dependencies are already cached. If you have already edited
28
+ the Cargo version, omit the version argument to synchronize the lockfiles.
29
+ The vendor workspace has its own upstream version and is unaffected.
30
+ Run `uv sync --locked --inexact` afterwards to rebuild your installed development
31
+ package while keeping optional validation dependencies already in the environment.
32
+
33
+ Supported versions are `X.Y.Z`, `X.Y.Z-rc.N` and `X.Y.Z-devN`; Python metadata
34
+ uses `X.Y.ZrcN` and `X.Y.Z.devN` for the latter two. Tags always use Cargo's
35
+ spelling, for example `v0.4.0-rc.1`. Before tagging, run
36
+ `python scripts/bump_version.py --check --tag vYOUR_VERSION` with the actual tag.
37
+ CI checks inherited/dynamic metadata, the private Viewer manifest and lockfiles
38
+ before building. Version-only changes do not require regenerating license notices
39
+ or Viewer assets.
40
+
9
41
  ## Source and notice updates
10
42
 
11
43
  Use Python 3.11+ for the release-check scripts. After changing dependencies,
@@ -20,7 +52,7 @@ python scripts/sync_license_notices.py --refresh-rust
20
52
  npm ci --prefix viewer
21
53
  npm run build --prefix viewer
22
54
  python scripts/check_license.py
23
- python scripts/verify_release_version.py --tag v0.3.0
55
+ python scripts/bump_version.py --check
24
56
  ```
25
57
 
26
58
  For a legal-text change without dependency changes, omit `--refresh-rust`.
@@ -4,7 +4,7 @@ build-backend = "maturin"
4
4
 
5
5
  [project]
6
6
  name = "sldkit"
7
- version = "0.3.0"
7
+ dynamic = ["version"]
8
8
  description = "Source-faithful parsing foundations for SolidWorks files"
9
9
  readme = "README.md"
10
10
  license = "PolyForm-Noncommercial-1.0.0 AND MIT AND Apache-2.0 AND BSD-3-Clause"
@@ -63,6 +63,7 @@ include = [
63
63
  { path = "scripts/validate_geometry_oracle.py", format = "sdist" },
64
64
  { path = "scripts/test_assembly_capture.ps1", format = "sdist" },
65
65
  { path = "scripts/check_license.py", format = "sdist" },
66
+ { path = "scripts/bump_version.py", format = "sdist" },
66
67
  { path = "scripts/sync_license_notices.py", format = "sdist" },
67
68
  { path = "scripts/verify_release_artifacts.py", format = "sdist" },
68
69
  { path = "scripts/verify_release_version.py", format = "sdist" },
@@ -116,6 +117,18 @@ exclude = [
116
117
  "viewer/node_modules/**",
117
118
  ]
118
119
 
120
+ [tool.uv]
121
+ # Cargo owns the dynamic package version; changes must invalidate uv's metadata.
122
+ cache-keys = [
123
+ { file = "pyproject.toml" },
124
+ { file = "Cargo.toml" },
125
+ { file = "Cargo.lock" },
126
+ { file = "crates/**/Cargo.toml" },
127
+ { file = "crates/**/*.rs" },
128
+ { file = "vendor/**/Cargo.toml" },
129
+ { file = "vendor/**/*.rs" },
130
+ ]
131
+
119
132
  [tool.pytest.ini_options]
120
133
  testpaths = ["tests"]
121
134
 
@@ -1,3 +1,5 @@
1
+ from importlib.metadata import version as _distribution_version
2
+
1
3
  from .api import (
2
4
  build_bom,
3
5
  decode_display_mesh_bytes,
@@ -189,7 +191,7 @@ from .model import (
189
191
  ValueOrigin,
190
192
  )
191
193
 
192
- __version__ = "0.3.0"
194
+ __version__ = _distribution_version("sldkit")
193
195
 
194
196
  __all__ = [
195
197
  "AssemblyComponent",
@@ -7,6 +7,7 @@ an extracted source distribution. See the
7
7
 
8
8
  | Tools | Purpose | Environment |
9
9
  |---|---|---|
10
+ | `bump_version.py` | Update the shared Cargo version and synchronize lockfiles; `--check` verifies without changes | Python 3.11+, Cargo and uv; run from a full checkout |
10
11
  | `check_license.py`, `sync_license_notices.py`, `verify_release_version.py`, `verify_release_artifacts.py` | License notices, version consistency, and distribution contents | Python 3.11+; notice refresh also needs the locked Cargo sources |
11
12
  | `smoke_wheel_artifact.py`, `smoke_installed_package.py` | Install one wheel into an isolated venv and exercise the installed package | Python with `venv` and `ensurepip`; see the release guide |
12
13
  | `capture_part_orientation.swb` | Observe a saved active Part's body/face/coedge facts | Interactive SolidWorks |
@@ -0,0 +1,92 @@
1
+ #!/usr/bin/env python3
2
+ """Update the shared version and refresh lockfiles (Python 3.11+, Cargo, uv)."""
3
+
4
+ from __future__ import annotations
5
+
6
+ import argparse
7
+ import re
8
+ import subprocess
9
+ import sys
10
+ from pathlib import Path
11
+
12
+ sys.path.insert(0, str(Path(__file__).resolve().parent))
13
+ from verify_release_version import ( # noqa: E402
14
+ ROOT,
15
+ python_version,
16
+ source_version,
17
+ verify_release_version,
18
+ )
19
+
20
+ MANAGED_FILES = ("Cargo.toml", "Cargo.lock", "fuzz/Cargo.lock", "uv.lock")
21
+
22
+
23
+ def bump_version(
24
+ version: str | None = None, root: Path = ROOT, *, offline: bool = False
25
+ ) -> str:
26
+ current = source_version(root)
27
+ version = current if version is None else version
28
+ python_version(version) # Validate before writing or invoking package managers.
29
+ original = {name: (root / name).read_bytes() for name in MANAGED_FILES}
30
+ updated, count = re.subn(
31
+ r"""(\[workspace\.package\]\s*\n(?:[^\[\n]*\n)*?version\s*=\s*)(["'])([^"']+)\2""",
32
+ lambda match: f"{match[1]}{match[2]}{version}{match[2]}",
33
+ original["Cargo.toml"].decode("utf-8"),
34
+ )
35
+ if count != 1:
36
+ raise ValueError("expected one workspace.package.version in Cargo.toml")
37
+ options = ["--offline"] if offline else []
38
+ try:
39
+ (root / "Cargo.toml").write_bytes(updated.encode("utf-8"))
40
+ for command in (
41
+ ["cargo", "update", "--workspace", *options],
42
+ [
43
+ "cargo",
44
+ "update",
45
+ "--workspace",
46
+ "--manifest-path",
47
+ "fuzz/Cargo.toml",
48
+ *options,
49
+ ],
50
+ ["uv", "lock", *options],
51
+ ):
52
+ subprocess.run(command, cwd=root, check=True)
53
+ verify_release_version(root)
54
+ except BaseException:
55
+ # Keep pre-existing edits too, including when a tool is interrupted.
56
+ for name, content in original.items():
57
+ (root / name).write_bytes(content)
58
+ raise
59
+ return version
60
+
61
+
62
+ def main() -> None:
63
+ parser = argparse.ArgumentParser(description=__doc__)
64
+ parser.add_argument(
65
+ "version",
66
+ nargs="?",
67
+ help="X.Y.Z, X.Y.Z-rc.N or X.Y.Z-devN; omit to sync Cargo.toml",
68
+ )
69
+ parser.add_argument(
70
+ "--offline", action="store_true", help="use cached dependencies"
71
+ )
72
+ parser.add_argument(
73
+ "--check", action="store_true", help="verify without changing files"
74
+ )
75
+ parser.add_argument("--tag", help="expected release tag (with --check)")
76
+ args = parser.parse_args()
77
+ if args.check and args.version:
78
+ parser.error("--check cannot be combined with a new version")
79
+ if args.tag and not args.check:
80
+ parser.error("--tag requires --check")
81
+ try:
82
+ if args.check:
83
+ version = verify_release_version(tag=args.tag)
84
+ else:
85
+ version = bump_version(args.version, offline=args.offline)
86
+ except (ValueError, OSError, KeyError, subprocess.CalledProcessError) as error:
87
+ parser.error(str(error))
88
+ print(f"Rust {version}; Python {python_version(version)}; release tag v{version}")
89
+
90
+
91
+ if __name__ == "__main__":
92
+ main()
@@ -4,12 +4,16 @@ from __future__ import annotations
4
4
 
5
5
  import hashlib
6
6
  import json
7
+ import sys
7
8
  from collections.abc import Callable
8
9
  from email.message import Message
9
10
  from pathlib import Path
10
11
 
11
12
  import tomllib
12
13
 
14
+ sys.path.insert(0, str(Path(__file__).resolve().parent))
15
+ from verify_release_version import python_version, source_version # noqa: E402
16
+
13
17
  ROOT = Path(__file__).resolve().parents[1]
14
18
  PROJECT_LICENSE = "PolyForm-Noncommercial-1.0.0 AND MIT"
15
19
  DISTRIBUTION_LICENSE = PROJECT_LICENSE + " AND Apache-2.0 AND BSD-3-Clause"
@@ -100,8 +104,8 @@ def check_archive_licenses(
100
104
  read: Callable[[str], bytes], metadata: Message, prefix: str, root: Path = ROOT
101
105
  ) -> None:
102
106
  """Require declared paths and bytes, rather than permissive suffix matches."""
103
- project = read_toml(root / "pyproject.toml")["project"]
104
- if metadata["Name"] != "sldkit" or metadata["Version"] != project["version"]:
107
+ version = python_version(source_version(root))
108
+ if metadata["Name"] != "sldkit" or metadata["Version"] != version:
105
109
  raise ValueError("Unexpected distribution identity/version")
106
110
  if metadata["License-Expression"] != DISTRIBUTION_LICENSE:
107
111
  raise ValueError("Unexpected License-Expression")
@@ -236,19 +240,14 @@ def check(root: Path = ROOT) -> str:
236
240
  viewer = json.loads((root / "viewer/package.json").read_bytes())
237
241
  npm_lock = json.loads((root / "viewer/package-lock.json").read_bytes())
238
242
  for package in (viewer, npm_lock["packages"][""]):
239
- if (
240
- package["license"] != PROJECT_LICENSE
241
- or package["version"] != project["version"]
242
- ):
243
- raise ValueError("Unexpected viewer license/version")
244
- if npm_lock["version"] != project["version"]:
245
- raise ValueError("Stale npm lock version")
243
+ if package["license"] != PROJECT_LICENSE:
244
+ raise ValueError("Unexpected viewer license")
246
245
  if (root / "viewer/LICENSE.txt").read_bytes() != notice_bundle(root, viewer=True):
247
246
  raise ValueError("Stale viewer source notice")
248
247
  assets = root / "python/sldkit/viewer/_assets"
249
248
  check_viewer_assets(lambda p: (assets / p).read_bytes(), root)
250
249
  check_catalog(root)
251
- return project["version"]
250
+ return python_version(source_version(root))
252
251
 
253
252
 
254
253
  if __name__ == "__main__":
@@ -52,6 +52,7 @@ SDIST_DOCS = frozenset(
52
52
  SDIST_SCRIPTS = frozenset(
53
53
  (
54
54
  "scripts/README.md",
55
+ "scripts/bump_version.py",
55
56
  "scripts/capture_assembly_transforms.ps1",
56
57
  "scripts/capture_drawing_ground_truth.ps1",
57
58
  "scripts/capture_part_orientation.swb",