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.
- {sldkit-0.3.0 → sldkit-0.3.1}/Cargo.lock +5 -5
- {sldkit-0.3.0 → sldkit-0.3.1}/Cargo.toml +1 -1
- {sldkit-0.3.0 → sldkit-0.3.1}/PKG-INFO +5 -1
- {sldkit-0.3.0/crates/sldkit-core → sldkit-0.3.1}/README.md +4 -0
- {sldkit-0.3.0 → sldkit-0.3.1/crates/sldkit-container}/README.md +4 -0
- {sldkit-0.3.0/crates/sldkit-container → sldkit-0.3.1/crates/sldkit-core}/README.md +4 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/README.md +4 -0
- sldkit-0.3.1/crates/sldkit-python/README.md +227 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/releasing.md +33 -1
- {sldkit-0.3.0 → sldkit-0.3.1}/pyproject.toml +14 -1
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/__init__.py +3 -1
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/README.md +1 -0
- sldkit-0.3.1/scripts/bump_version.py +92 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/check_license.py +9 -10
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/verify_release_artifacts.py +1 -0
- sldkit-0.3.1/scripts/verify_release_version.py +124 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/viewer/package-lock.json +3 -5
- {sldkit-0.3.0 → sldkit-0.3.1}/viewer/package.json +0 -1
- sldkit-0.3.0/crates/sldkit-python/README.md +0 -223
- sldkit-0.3.0/scripts/verify_release_version.py +0 -96
- {sldkit-0.3.0 → sldkit-0.3.1}/CLA.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/COMMERCIAL-LICENSE.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/CONTRIBUTING.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSE +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/Apache-2.0.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/PolyForm-Noncommercial-1.0.0.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/README.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/parasolid-core-MIT.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/parasolid-core-PARTIAL_READERS.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/rust-dependencies.json +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/rust-dependencies.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/sldkit-legacy-MIT.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/LICENSES/three-MIT.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/THIRD_PARTY_NOTICES.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/Cargo.toml +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/LICENSE +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/common.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/lib.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/modern.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/ole2.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-container/src/zip.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/Cargo.toml +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/LICENSE +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/bom.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/diagnostic.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/display.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/drawing.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/geometry.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/geometry_evaluation.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/inventory.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/lib.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/limits.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/model.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/project.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-core/src/result.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/Cargo.toml +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/LICENSE +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/bom.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display/appearance.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display/tables.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/display.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/drawing.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/byte_partition.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/cylindrical_loops/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/cylindrical_loops.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/carriers.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/mesh.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/evaluation/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/intervals.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/nurbs_intervals.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/parasolid.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry/planar_loops.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/geometry.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/legacy_semantics.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/lib.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/modern_semantics.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/project.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-parser/src/units.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-python/Cargo.toml +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-python/LICENSE +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/crates/sldkit-python/src/lib.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/README.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/architecture.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/compatibility.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/README.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/assembly-validation.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/drawing-validation.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/geometry-validation.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/development/part-validation.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/display-mesh.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/document-facts.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/drawing-structure.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/geometry-evaluation.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/geometry.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/license.ja.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/license.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/parser-provenance.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/project-scanning.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/drawing-ground-truth.schema.json +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/geometry-oracle.schema.json +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/nurbs-geometry-oracle.schema.json +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/schemas/nurbs-trim-oracle.schema.json +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/docs/viewer.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/__main__.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/_core.pyi +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/api.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/cli.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/errors.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/model.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/py.typed +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/__init__.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/LICENSE.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/three-LICENSE.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/viewer.css +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/viewer.html +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_assets/viewer.js +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/python/sldkit/viewer/_html.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_assembly_transforms.ps1 +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_drawing_ground_truth.ps1 +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_part_orientation.swb +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/capture_step_geometry.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/compare_drawing_structures.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/nurbs_geometry.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/smoke_installed_package.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/smoke_wheel_artifact.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/sync_license_notices.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/test_assembly_capture.ps1 +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_geometry_oracle.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_nurbs_geometry.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_nurbs_trim.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_part_boundaries.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_part_orientation.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/scripts/validate_partial_nurbs.py +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/Cargo.lock +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/Cargo.toml +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/LICENSE +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/PATCHES.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/README.md +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/annotations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/appearance/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/appearance.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/attrib.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/blend.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/entity.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/graph.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/intersection.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_fin/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_fin.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_hierarchy/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/native_hierarchy.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/offset.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/spline.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/subset.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/sweep.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep/topology.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/brep.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/byte_ledger.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/classification.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/container/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/container.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/admission.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/body_membership.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration_completeness.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/configuration_sites.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/curves_and_loops.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/design_completeness.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/display_fallback.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/feature_degradation.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/geometry_report.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/metadata_fallback.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/nurbs_surfaces.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/partition_merge.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/pcurves.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/round_trip.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/schema_shells.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/site_keys.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode/tests/sketch_losses.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/decode.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/feature_schema.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/fuzz.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/golden_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/bind.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/classify.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/configuration.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/datum.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/format.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/misc.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/modify.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/pattern.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/sketch.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/solid.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/spin.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/support.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/encode/surface.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/hash.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/literals.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/parameters/eval.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/parameters/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/datum.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/modify.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/pattern.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/sketch.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/solid.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/spin.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/project/surface.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/selections.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/configuration.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/equations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/extrusion_profile.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/feature_operations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/feature_projection.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/offset_planes.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/parameters.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/sketch_bind.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/sketch_relations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/split_and_identity.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/tests/tree_binding.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/configurations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/features.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/parameters.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/history/write/xml.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/integration_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/layout.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/lib.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/loss.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/metadata/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/metadata.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/native/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/native.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/parasolid/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/parasolid.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/pmi/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/pmi.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/records.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/assembly/assembly_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/assembly.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/axes/axes_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/axes.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/bindings/bindings_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/bindings.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/classes.rs +0 -0
- {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
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/compact_reference_planes.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/component_paths/component_paths_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/component_paths.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/curves/curves_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/curves.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/dimensions/dimensions_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/dimensions.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/direct_edits.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/drafts.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/arcs.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/circles.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/compact.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/extended.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints/tests/profile_lines.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/endpoints.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/hashes.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/helix.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/axial_profile.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/hole_axis.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/position.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes/tests/writer.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/holes.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/lanes.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/profile_points.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers/tests/spatial.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/markers.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/names/names_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/names.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operands/operands_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operands.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operations/operations_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/operations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/parameters/parameters_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/parameters.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/profiles.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/projections/projections_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/projections.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry/reference_geometry_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/reference_geometry.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_geometry.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_loci/relation_loci_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_loci.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/relation_records.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/scalars/scalars_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/scalars.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/compact_edge.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/delete_body.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/surfaces.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections/tests/writer.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/selections.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_edges/sketch_edges_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_edges.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_projection/sketch_projection_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_projection.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_write/sketch_write_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/sketch_write.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/terminations/terminations_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/terminations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/frames.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/join.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/patterns.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/profile.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_geometry.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_links.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/relation_operands.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms/tests/selection.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/transforms.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/typed_relations/typed_relations_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/typed_relations.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/validate/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/validate.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_generate.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_prepare/write_prepare_tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/resolved_features/write_prepare.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/swift.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation/ownership/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation/ownership.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/tessellation.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/appearance.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/container.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/history.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/ir.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/native.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/parasolid.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/pmi.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/test_support/tessellation.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/configuration_carriers.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/flex_history.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/helix_surfaces.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/mod.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/parameters_extrude.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/patterns_history.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/round_trip.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/sketch_tessellation.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/swobjects.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer/tests/thicken_reference.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer_patch/tests.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer_patch.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/vendor/cadmpeg-codec-sldprt/src/writer_transform.rs +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/viewer/LICENSE.txt +0 -0
- {sldkit-0.3.0 → sldkit-0.3.1}/viewer/build.mjs +0 -0
- {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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
728
|
+
version = "0.3.1"
|
|
729
729
|
dependencies = [
|
|
730
730
|
"pyo3",
|
|
731
731
|
"serde",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sldkit
|
|
3
|
-
Version: 0.3.
|
|
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/
|
|
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
|
-
|
|
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__ = "
|
|
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
|
-
|
|
104
|
-
if metadata["Name"] != "sldkit" or metadata["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
|
-
|
|
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
|
|
250
|
+
return python_version(source_version(root))
|
|
252
251
|
|
|
253
252
|
|
|
254
253
|
if __name__ == "__main__":
|