python-cad-tools 0.1.0rc1__tar.gz → 0.1.2__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.
- python_cad_tools-0.1.2/.gitattributes +2 -0
- python_cad_tools-0.1.2/.github/workflows/ci.yml +313 -0
- python_cad_tools-0.1.2/.github/workflows/downstream-compatibility.yml +40 -0
- python_cad_tools-0.1.2/.github/workflows/release-candidate.yml +92 -0
- python_cad_tools-0.1.2/.gitignore +16 -0
- python_cad_tools-0.1.2/.opencode/commands/autocommit.md +15 -0
- python_cad_tools-0.1.2/.opencode/tools/specrepo-autocommit.js +25 -0
- python_cad_tools-0.1.2/.opencode/tools/specrepo-autocommit.py +205 -0
- python_cad_tools-0.1.2/AGENTS.md +66 -0
- python_cad_tools-0.1.2/CHANGELOG.md +69 -0
- python_cad_tools-0.1.2/CLAUDE.md +66 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/MANIFEST.in +2 -0
- {python_cad_tools-0.1.0rc1/src/python_cad_tools.egg-info → python_cad_tools-0.1.2}/PKG-INFO +1 -1
- python_cad_tools-0.1.2/PYTHON_CAD_TOOLS_REPOSITORY_MIGRATION_PLAN.md +1802 -0
- python_cad_tools-0.1.2/docs/build-semantics.md +32 -0
- python_cad_tools-0.1.2/docs/drawing-extensions.md +146 -0
- python_cad_tools-0.1.2/docs/manifests.md +45 -0
- python_cad_tools-0.1.2/docs/migration/02-package-identity-report.md +158 -0
- python_cad_tools-0.1.2/docs/migration/03-public-api-report.md +51 -0
- python_cad_tools-0.1.2/docs/migration/04-build-artifacts-report.md +83 -0
- python_cad_tools-0.1.2/docs/migration/05-drawings-report.md +102 -0
- python_cad_tools-0.1.2/docs/migration/06-viewer-report.md +121 -0
- python_cad_tools-0.1.2/docs/migration/07-cleanup-ci-report.md +209 -0
- python_cad_tools-0.1.2/docs/migration/08-local-rc-report.md +165 -0
- python_cad_tools-0.1.2/docs/migration/baseline-report.md +359 -0
- python_cad_tools-0.1.2/docs/migration-prompts/00-execution-profile.md +89 -0
- python_cad_tools-0.1.2/docs/migration-prompts/01-preserve-and-baseline.md +53 -0
- python_cad_tools-0.1.2/docs/migration-prompts/02-package-identity-and-skeleton.md +53 -0
- python_cad_tools-0.1.2/docs/migration-prompts/03-public-api-and-project-loading.md +45 -0
- python_cad_tools-0.1.2/docs/migration-prompts/04-build-artifacts-and-determinism.md +53 -0
- python_cad_tools-0.1.2/docs/migration-prompts/05-format-neutral-drawings.md +45 -0
- python_cad_tools-0.1.2/docs/migration-prompts/06-viewer-site-and-offline.md +53 -0
- python_cad_tools-0.1.2/docs/migration-prompts/07-legacy-removal-governance-and-ci.md +64 -0
- python_cad_tools-0.1.2/docs/migration-prompts/08-local-release-candidate.md +73 -0
- python_cad_tools-0.1.2/docs/migration-prompts/README.md +50 -0
- python_cad_tools-0.1.2/docs/project-configuration.md +91 -0
- python_cad_tools-0.1.2/docs/public-api.md +83 -0
- python_cad_tools-0.1.2/docs/spikes/format-feasibility.md +46 -0
- python_cad_tools-0.1.2/docs/viewer-delivery.md +94 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/pyproject.toml +5 -2
- python_cad_tools-0.1.2/src/python_cad_tools/__main__.py +4 -0
- python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/asset-manifest.json +1 -0
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/animationGroup-Sd34ntWg.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/animationGroup-CjhCwiIi.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-Cd_pRdrn.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/bakedVertexAnimation-_xBvgBl7.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/basisTextureLoader-DWgvS_1G.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/basisTextureLoader-D5LtrhD-.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/brdfTextureTools-CWGiG1W2.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/brdfTextureTools-D9U08KSH.js +2 -2
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/bumpFragment-CWULheF1.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/bumpFragment-BkzgDMwt.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/bumpVertex-DqzFZayE.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/bumpVertex-BXtiaDZI.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-C5EFyTio.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/bumpVertexDeclaration-CchYDl1F.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-BXRtt4jj.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/clipPlaneFragment-pIdOfJ_5.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-B_VhD1oQ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/clipPlaneVertex-Kl_G8tpP.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-DRpaukza.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/cubemapToSphericalPolynomial-CJ4cRmPh.js +1 -1
- python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/dds-YsWo1VVF.js +1 -0
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/dds.pure-DtvJsKvY.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/dds.pure-BoNGq59u.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-H78xux1g.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/ddsTextureLoader-D8JRisWC.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/default.fragment-oSQ-tWhe.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/default.fragment-D0gXI89M.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/default.vertex-DhFjw_Da.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/default.vertex-BdO0XLk6.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BMDHNppx.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/defaultUboDeclaration-BJ4b62qj.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/dumpTools-BaNZPjUX.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/dumpTools-B7F8Ed3A.js +2 -2
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/envTextureLoader-V0YnLcIM.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/envTextureLoader-BnvTfKgF.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/exrTextureLoader-CjGyIK3x.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/exrTextureLoader-C2D3Wx-p.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-CW5nuobR.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphApplyForceBlock-C08kKLog.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-LFqYIkhj.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphApplyImpulseBlock-GzK2l9nm.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-BMOHUbBm.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphArrayIndexBlock-DkRHIuYC.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-knmTiuEk.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphBezierCurveEasingBlock-Csol8jUn.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-DFLuCAKJ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphBinaryOperationBlock-C-xEeg-Z.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-BJRHMXMo.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphBranchBlock-D7bstQqM.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-Dng-6jE0.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphCachedOperationBlock-C0pDPzaF.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-CgbK3CQZ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphCancelDelayBlock-VwnDZhN9.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-8zMtq9tg.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphCodeExecutionBlock-C5aa0K7t.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-BiLr2rkI.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphConditionalDataBlock-B4vfaSDi.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-J1vcCtNP.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphConsoleLogBlock-CuLlYu4c.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-CFb5nuaV.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphConstantBlock-DkyD6_YZ.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-DAeGVzhC.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphContextBlock-IKUbfY32.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-lZlAQiJd.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphCounterBlock-tP_5qAQn.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-BIzvmbVy.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphDataSwitchBlock-DiTgopj3.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-DvNuMVwy.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphDebounceBlock-FLUJTpdt.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-Dymd2VEE.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphDebugBlock-C0EH9zPP.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-v68aoNLH.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphDoNBlock-DiAdBjnD.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-CTnGv92q.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphEasingBlock-CXlIILZe.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-DXsO0Chw.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphFlipFlopBlock-5XRf4KeD.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-CPpe9T75.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphForLoopBlock-RitJ6OS_.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DjDev4Pq.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphFunctionReferenceBlock-DvVIlipg.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-GIYCz4AQ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGLTFDataProvider-BxBUrprf.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-BStkOVeL.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGetAngularVelocityBlock-CqBDBjqf.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Eiqoivbz.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGetAssetBlock-Dk4qKn1w.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-B0cpV5ws.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGetLinearVelocityBlock-DNN6N9mt.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-B-H64yaI.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGetPhysicsMassPropertiesBlock-CTsHqDvM.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CUyOsPw0.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGetPropertyBlock-CjX3cseU.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-C0FjrsUz.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGetSoundVolumeBlock-DzWJtlM9.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-O4597zBl.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphGetVariableBlock-uBq6vXOw.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-E00Z3KXM.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphIndexOfBlock-MpANR6P1.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-DnkA9MNH.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphInterpolationBlock-BM2_pZfB.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-DDfeuAyf.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphIsKeyPressedBlock-X1Q2SR0H.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-DMXg8jdM.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphIsSoundPlayingBlock-C_ir8hba.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-OmCorK0y.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphJsonPointerParserBlock-I5tJhTaw.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-RuVtj6g2.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphKeyDownEventBlock-DSmmDXBR.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-DO4pAfHi.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphKeyUpEventBlock-BDViriRD.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-Bx3pAzzh.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphKeyboardEventBlock-B7EQjaZe.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-7W1XYOC8.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphMathBlocks-RIndR7Kr.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-a4f0Kv6e.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphMathCombineExtractBlocks-BEMkyBCM.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-C5Z-y1Au.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphMatrixMathBlocks-BAV1wScN.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-D4m-I4CS.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphMeshPickEventBlock-CcNT5f0d.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-BISVSMw6.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphMultiGateBlock-DSEbX2Mj.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-BYP2Z-HG.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPauseAnimationBlock-Dfthx2s-.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-Drh1EeW6.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPauseSoundBlock-DSu8v9Kr.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-BoziAQ75.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPhysicsCollisionEventBlock-jvE_54c8.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-Clry-68M.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPlayAnimationBlock-DK8Z5heh.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-LbBVxGBE.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPlaySoundBlock-XiF7wfi1.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-DIVXCSHh.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPointerDownEventBlock-BOqQHgdZ.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-BNNOzY2W.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPointerMoveEventBlock-DggBfxkF.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-B8f2dOFT.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOutEventBlock-DvZyyUF4.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-CQr8LCee.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPointerOverEventBlock-YLki8WEB.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-DMg_iEHl.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphPointerUpEventBlock-D1tqJ9jF.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-B8GJm9Ai.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphReceiveCustomEventBlock-D3VAKTpt.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dcdb29K2.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSceneReadyEventBlock-Dt8AsNSg.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BLE5p4mi.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSceneTickEventBlock-BtuZ_Spn.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-BMzDItQ5.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSendCustomEventBlock-B8Dzycmf.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-DRURovjn.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSequenceBlock-CQsb2okn.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-Ba8dhkLM.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSetAngularVelocityBlock-C3zOq5X7.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-CnQR--Gn.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSetDelayBlock-DxyUb-8k.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-Dm1r3vkh.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSetLinearVelocityBlock-DeNTJQ42.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-BNtMLimi.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSetPhysicsMotionTypeBlock-i233RoWe.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-C-uv2jhP.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSetPropertyBlock-Darrnz2o.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-D9LDx3lg.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSetSoundVolumeBlock-KrTTGHr6.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-DszzRB5X.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSetVariableBlock-8CdS1h8e.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-DeTDSudb.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSoundEndedEventBlock-Cuk8JjDG.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DWuwoFWr.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphStopAnimationBlock-DOsG4sc5.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-DEnj2cQw.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphStopSoundBlock-C5IaCPpa.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-zs8Fp9ky.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphSwitchBlock-ClqiypjM.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-BYAKUQXd.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphThrottleBlock-C7hhfNo2.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-DYP54m5P.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphTransformCoordinatesSystemBlock-BksU6sPJ.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-vFwn79bS.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphTypeToTypeBlocks-DJi_CBW-.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-CaRh4Ef0.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphUnaryOperationBlock-U15mYQbJ.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-BEIhMs-A.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphVectorMathBlocks-D4QAvgsk.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-DFbELP_j.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphWaitAllBlock-UV6LDk1r.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-C1OKQ-_F.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/flowGraphWhileLoopBlock-DPpNHwZP.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/fogFragment-DtDlQBnz.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/fogFragment-pKchdx3M.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-Cfigjb15.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DgjcxjKa.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-DIn8R8oF.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplatting-oRLzV71m.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BxeRJ2k-.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-BKYuCXf7.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-DNDmvRs-.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.fragment-NCxeyHg7.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-D92z5jYn.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-CW0PXB4s.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-DSWfFnKQ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplatting.vertex-zmXoP8p9.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-qwx5ntqJ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment--IDQcS1p.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-DBQE2gDk.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.fragment-CgX-XH5m.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-CP2kd3jU.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-DzuuyEGB.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-Dr-fEg_W.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/gaussianSplattingVoxel.vertex-YB1C1Muy.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/geometry.fragment-Dph3muZt.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/geometry.fragment-DuBDWlLB.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/geometry.fragment-CsJIm2H0.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/geometry.fragment-EEbMy57o.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/geometry.vertex-Bm9Wg3Gi.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/geometry.vertex-3cVZEKxJ.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/geometry.vertex-BXGMTA_J.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/geometry.vertex-B--XA-QK.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-BJSwKIJD.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/glowBlurPostProcess.fragment-UNz8njEJ.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-DcyS1cTF.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.fragment-CsSqgq6c.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-BGq1Fakj.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/glowMapGeneration.vertex-DOMHadFA.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DxcneU_F.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/glowMapMerge.fragment-DXi2v5pz.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-DaJJKqMV.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/glowMapMerge.vertex-DgBSWFHP.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-DzJcvNWG.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/harmonicsFunctions-BkifmnNV.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/helperFunctions-Cugfp1Fz.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/helperFunctions-Bx8RYYvi.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/iesTextureLoader-CO4G0p2M.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/iesTextureLoader-Dj5K0vc1.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/index-B2zBEWsq.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/index-JRwY7p9T.js +18 -18
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BkKbudbW.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B9YDiI_M.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-B6CTXTxY.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/kernelBlur.fragment-BRdwtDs7.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-D371zUfT.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-A7OpqdrG.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-BYwFU5IS.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/kernelBlur.vertex-CWlIunB6.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YS8JpqdO.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-PE5ICZNw.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-CgBGaCHg.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/kernelBlurVaryingDeclaration-YMenN7Se.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-ncMSJTjl.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/ktxTextureLoader-uG9TUdGM.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/lightFragment-skHiFbKB.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/lightFragment-CDLhoaId.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-BR8XRz9F.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/logDepthDeclaration-BOlhc3aa.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/logDepthVertex-UKrhEIvg.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/logDepthVertex-BIA9Xrid.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-BxQWGFcG.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/mainUVVaryingDeclaration-PmIDYGIz.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-BnX046aQ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/meshUboDeclaration-BfPhZsyr.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/oitFragment-CTMCOfNP.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/oitFragment-DpKfMtsk.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-Dv6qTVVi.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-BAOdoy3Z.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-DPJPqi6p.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbr.fragment-BmgNfxS4.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-CHESW3gB.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-BpB-7aXl.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-Bn2wrdGL.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbr.vertex-D-IjPutK.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-BdK7VgO_.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbrMaterial.pure-C6V2SeQx.js +3 -3
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-Bm_AHDUN.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbrMaterialLoadingAdapter-CbcwuEwB.js +2 -2
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-Ba_ly4LE.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-1U_DHNWK.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BDa9qEoN.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbrTransmissionLayerData-BClMu_zp.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DajhikDS.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-DLujw3YH.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-BY2lSH2C.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/openpbrUboDeclaration-piwBvKOi.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/packingFunctions-DTwzBRBx.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/packingFunctions-BD5WZtBT.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/packingFunctions-BHPwcGG2.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/packingFunctions-D3gaUkUa.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pass.fragment-9oKU4pI3.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pass.fragment-CzZpaqYk.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/passCube.fragment-CpAeiYx1.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/passCube.fragment-Bso78Amo.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/passCube.fragment-DHtSWVRF.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/passCube.fragment-DwRJ1H1s.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbr.fragment-cIhMKwLs.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbr.fragment-sZ-foSaO.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbr.vertex-BfdONsf2.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbr.vertex-PBjkpyNN.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-B_ppOzPO.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbrBRDFFunctions-Dv8-Akv1.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbrDebug-DDdwL5_t.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbrDebug-5RaK38tC.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-b1zdpzOP.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbrIBLFunctions-D_X-tzpO.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-BZA7yVhu.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbrMaterial.pure-RJ6tVczH.js +2 -2
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BRvKRnjl.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbrMaterialLoadingAdapter-BqlfZ1xs.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-CMZp25k3.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/pbrUboDeclaration-BqNgF1qB.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/postprocess.vertex-DzdUpNbW.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/postprocess.vertex-9J4kRI6V.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/procedural.vertex-Dp-Ng7Pc.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/procedural.vertex-Bq_A-zE0.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/procedural.vertex-BnbuQ-1f.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/procedural.vertex-DzkBufoo.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/reflectionFunction-DBlr3oDs.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/reflectionFunction-n0dvho3A.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-CyvnZFOJ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/rgbdDecode.fragment-0BuGamw5.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-iscgpA1_.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-BBGe9kwu.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-Dz4zLnoD.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/rgbdEncode.fragment-DiiD2NE-.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BzFIc4mb.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/sceneUboDeclaration-BmpwedcW.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-JMKyWZng.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-CwNRejEe.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-C9D0rd-M.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/textureProcessor.fragment-CyBHPXX2.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-oxTElIQJ.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/tgaTextureLoader-ClB6SRY9.js +1 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/vertexColorMixing-mdC9xZe1.js → python_cad_tools-0.1.2/src/python_cad_tools/_viewer_static/assets/vertexColorMixing-f4wQRwGI.js +1 -1
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_viewer_static/index.html +1 -1
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/artifacts.py +0 -1
- python_cad_tools-0.1.2/src/python_cad_tools/build-info.json +1 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/templates/project/pyproject.toml +1 -1
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2/src/python_cad_tools.egg-info}/PKG-INFO +1 -1
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools.egg-info/SOURCES.txt +207 -167
- python_cad_tools-0.1.2/src/python_cad_tools.egg-info/scm_file_list.json +335 -0
- python_cad_tools-0.1.2/src/python_cad_tools.egg-info/scm_version.json +8 -0
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/asset-manifest.json +0 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/_viewer_static/assets/dds-Dkb2Cx2N.js +0 -1
- python_cad_tools-0.1.0rc1/src/python_cad_tools/build-info.json +0 -1
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/LICENSE +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/README.md +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/setup.cfg +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/__init__.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_locking.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_project_loader.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_project_state.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_scaffold.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_transaction.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_viewer_static/app.webmanifest +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_viewer_static/assets/hdrTextureLoader-BGQvgh0h.js +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_viewer_static/assets/index-DcTTrc-8.css +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_viewer_static/assets/mesh.vertexData.functions-ayNlGC5K.js +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_viewer_static/favicon.svg +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/_viewer_static/sw.js +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/build.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/cli.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/context.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/determinism.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/drawings/__init__.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/drawings/_catalog.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/drawings/_validation.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/elements.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exceptions.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/__init__.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/base.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/__init__.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/annotations.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/dxf.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/model.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/pdf.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/primitives.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/projection.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/drawings/svg.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/glb.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/ifc.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/quantities.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/exporters/step.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/geometry.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/manifests.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/project_config.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/py.typed +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/runtime_sync.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/build-manifest-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/design-manifest-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/download-manifest-2.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/drawing-annotations-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/glb-manifest-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/ifc-validation-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/quantities-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/run-metadata-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/site-metadata-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/schemas/step-validation-1.json +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/site.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/templates/project/.gitignore +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/templates/project/README.md +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/templates/project/config.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/templates/project/drawing_annotations.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/templates/project/generated/.gitkeep +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/templates/project/model.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/units.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools/validation.py +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools.egg-info/dependency_links.txt +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools.egg-info/entry_points.txt +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools.egg-info/requires.txt +0 -0
- {python_cad_tools-0.1.0rc1 → python_cad_tools-0.1.2}/src/python_cad_tools.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
tags: ['v*']
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
lint-type-unit:
|
|
14
|
+
name: Lint, type, unit
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
18
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.13"
|
|
21
|
+
cache: pip
|
|
22
|
+
- run: python -m pip install --upgrade pip
|
|
23
|
+
- run: pip install -e '.[dev]'
|
|
24
|
+
- run: ruff check src tests
|
|
25
|
+
- run: mypy
|
|
26
|
+
- run: pytest -q
|
|
27
|
+
|
|
28
|
+
exporter-integration:
|
|
29
|
+
name: Exporter integration
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
33
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
34
|
+
with:
|
|
35
|
+
python-version: "3.13"
|
|
36
|
+
cache: pip
|
|
37
|
+
- run: python -m pip install --upgrade pip
|
|
38
|
+
- run: pip install -e '.[dev]'
|
|
39
|
+
- run: pytest tests/integration -q
|
|
40
|
+
|
|
41
|
+
viewer-browser:
|
|
42
|
+
name: Viewer and browser tests
|
|
43
|
+
runs-on: ubuntu-latest
|
|
44
|
+
steps:
|
|
45
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
46
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
47
|
+
with:
|
|
48
|
+
python-version: "3.13"
|
|
49
|
+
cache: pip
|
|
50
|
+
- run: python -m pip install --upgrade pip
|
|
51
|
+
- run: pip install -e .
|
|
52
|
+
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020
|
|
53
|
+
with:
|
|
54
|
+
node-version: "22.15.0"
|
|
55
|
+
cache: npm
|
|
56
|
+
cache-dependency-path: viewer/package-lock.json
|
|
57
|
+
- working-directory: viewer
|
|
58
|
+
run: npm ci
|
|
59
|
+
- working-directory: viewer
|
|
60
|
+
run: npm test
|
|
61
|
+
- working-directory: viewer
|
|
62
|
+
run: npm run build
|
|
63
|
+
- working-directory: viewer
|
|
64
|
+
run: npx playwright install --with-deps chromium
|
|
65
|
+
- working-directory: viewer
|
|
66
|
+
run: npm run test:e2e
|
|
67
|
+
|
|
68
|
+
wheel-sdist:
|
|
69
|
+
name: Wheel and sdist inspection
|
|
70
|
+
runs-on: ubuntu-latest
|
|
71
|
+
steps:
|
|
72
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
73
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
74
|
+
with:
|
|
75
|
+
python-version: "3.13"
|
|
76
|
+
cache: pip
|
|
77
|
+
- run: python -m pip install --upgrade pip
|
|
78
|
+
- run: pip install -e '.[dev]'
|
|
79
|
+
- run: python -m build --wheel --sdist --outdir dist .
|
|
80
|
+
- run: python -m twine check dist/*
|
|
81
|
+
- run: pytest tests/packaging -q
|
|
82
|
+
|
|
83
|
+
clean-install:
|
|
84
|
+
name: Clean non-editable install
|
|
85
|
+
runs-on: ubuntu-latest
|
|
86
|
+
steps:
|
|
87
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
88
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
89
|
+
with:
|
|
90
|
+
python-version: "3.13"
|
|
91
|
+
cache: pip
|
|
92
|
+
- run: python -m pip install --upgrade pip
|
|
93
|
+
- run: pip install -e '.[dev]'
|
|
94
|
+
- run: python -m build --wheel --outdir dist .
|
|
95
|
+
- name: Install wheel into clean venv
|
|
96
|
+
run: |
|
|
97
|
+
python -m venv /tmp/clean-venv
|
|
98
|
+
/tmp/clean-venv/bin/pip install dist/*.whl
|
|
99
|
+
/tmp/clean-venv/bin/python-cad --version
|
|
100
|
+
- name: Init and build generic project
|
|
101
|
+
run: |
|
|
102
|
+
mkdir /tmp/generic-project
|
|
103
|
+
/tmp/clean-venv/bin/python-cad init --destination /tmp/generic-project
|
|
104
|
+
/tmp/clean-venv/bin/python-cad build --project-root /tmp/generic-project
|
|
105
|
+
/tmp/clean-venv/bin/python-cad verify --project-root /tmp/generic-project
|
|
106
|
+
|
|
107
|
+
generic-e2e:
|
|
108
|
+
name: Generic E2E
|
|
109
|
+
runs-on: ubuntu-latest
|
|
110
|
+
steps:
|
|
111
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
112
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
113
|
+
with:
|
|
114
|
+
python-version: "3.13"
|
|
115
|
+
cache: pip
|
|
116
|
+
- run: python -m pip install --upgrade pip
|
|
117
|
+
- run: pip install -e '.[dev]'
|
|
118
|
+
- name: Init, build, verify, clean
|
|
119
|
+
run: |
|
|
120
|
+
python-cad init --destination /tmp/e2e-project
|
|
121
|
+
python-cad build --project-root /tmp/e2e-project
|
|
122
|
+
python-cad verify --project-root /tmp/e2e-project
|
|
123
|
+
python-cad clean --project-root /tmp/e2e-project
|
|
124
|
+
|
|
125
|
+
public-api:
|
|
126
|
+
name: Public API surface
|
|
127
|
+
runs-on: ubuntu-latest
|
|
128
|
+
steps:
|
|
129
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
130
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
131
|
+
with:
|
|
132
|
+
python-version: "3.13"
|
|
133
|
+
cache: pip
|
|
134
|
+
- run: python -m pip install --upgrade pip
|
|
135
|
+
- run: pip install -e '.[dev]'
|
|
136
|
+
- run: pytest tests/unit/test_public_api.py -q
|
|
137
|
+
|
|
138
|
+
active-terminology:
|
|
139
|
+
name: Active terminology scan
|
|
140
|
+
runs-on: ubuntu-latest
|
|
141
|
+
steps:
|
|
142
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
143
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
144
|
+
with:
|
|
145
|
+
python-version: "3.13"
|
|
146
|
+
- name: Scan for active legacy concepts
|
|
147
|
+
run: |
|
|
148
|
+
set -euo pipefail
|
|
149
|
+
EXCLUDES="\.git/|\.venv/|__pycache__|\.back_agents/|back_AGENTS|back_opencode|PYTHON_CAD_TOOLS_REPOSITORY_MIGRATION_PLAN|docs/migration-prompts/|docs/migration/|node_modules|\.egg-info|\.mypy_cache|\.pytest_cache|\.ruff_cache|\.coverage|\.opencode/node_modules|\.opencode/package|\.opencode/tools|\.opencode/commands|generated/|\.github/workflows/ci\.yml"
|
|
150
|
+
HITS=$(grep -rliE "freecad|fcstd|freecadcmd|benge_freecad_project|python-cad-project|python-cad-artifact-viewer|bengecomplexfunctional|functional\.benge_complex|complex-functional|benge_functional_output|freecad macro project template" \
|
|
151
|
+
--include="*.py" --include="*.toml" --include="*.json" --include="*.jsonc" --include="*.md" --include="*.yml" --include="*.yaml" --include="*.sh" --include="*.txt" --include="*.in" . 2>/dev/null \
|
|
152
|
+
| grep -vE "$EXCLUDES" || true)
|
|
153
|
+
if [ -n "$HITS" ]; then
|
|
154
|
+
echo "Active legacy concepts found:"
|
|
155
|
+
echo "$HITS"
|
|
156
|
+
exit 1
|
|
157
|
+
fi
|
|
158
|
+
echo "No active legacy concepts found."
|
|
159
|
+
|
|
160
|
+
tree-shape:
|
|
161
|
+
name: Tree shape and policy checks
|
|
162
|
+
runs-on: ubuntu-latest
|
|
163
|
+
steps:
|
|
164
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
165
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
166
|
+
with:
|
|
167
|
+
python-version: "3.13"
|
|
168
|
+
- name: Verify tree shape, symlinks, allowlists, backup exclusions
|
|
169
|
+
run: |
|
|
170
|
+
set -euo pipefail
|
|
171
|
+
echo "=== Check .tools/ is absent ==="
|
|
172
|
+
test ! -d .tools
|
|
173
|
+
echo "=== Check root legacy files are absent ==="
|
|
174
|
+
for f in build.py start.sh config.py model.py drawing_annotations.py; do
|
|
175
|
+
test ! -f "$f"
|
|
176
|
+
done
|
|
177
|
+
echo "=== Check CLAUDE.md resolves to AGENTS.md ==="
|
|
178
|
+
test "$(readlink CLAUDE.md)" = "AGENTS.md"
|
|
179
|
+
test -f AGENTS.md
|
|
180
|
+
echo "=== Check backups are untracked ==="
|
|
181
|
+
git status --short .back_agents/ back_AGENTS.md back_opencode.jsonc | grep -qE '^\?\?' || true
|
|
182
|
+
echo "=== Check no dangling symlinks ==="
|
|
183
|
+
find .claude .codex .opencode -type l ! -exec test -e {} \; -print 2>/dev/null | grep -v node_modules || true
|
|
184
|
+
echo "=== Check .github/workflows has expected files ==="
|
|
185
|
+
for f in ci.yml release-candidate.yml downstream-compatibility.yml; do
|
|
186
|
+
test -f ".github/workflows/$f"
|
|
187
|
+
done
|
|
188
|
+
echo "All tree shape checks passed."
|
|
189
|
+
|
|
190
|
+
supported-platforms:
|
|
191
|
+
name: Supported platforms (${{ matrix.os }})
|
|
192
|
+
strategy:
|
|
193
|
+
fail-fast: false
|
|
194
|
+
matrix:
|
|
195
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
196
|
+
runs-on: ${{ matrix.os }}
|
|
197
|
+
steps:
|
|
198
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
199
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
200
|
+
with:
|
|
201
|
+
python-version: "3.13"
|
|
202
|
+
cache: pip
|
|
203
|
+
- run: python -m pip install --upgrade pip
|
|
204
|
+
- run: pip install -e '.[dev]'
|
|
205
|
+
- run: ruff check src tests
|
|
206
|
+
if: matrix.os != 'windows-latest'
|
|
207
|
+
- run: mypy
|
|
208
|
+
if: matrix.os != 'windows-latest'
|
|
209
|
+
- run: pytest tests/unit -q
|
|
210
|
+
- name: Init and build on platform
|
|
211
|
+
run: |
|
|
212
|
+
python-cad init --destination /tmp/platform-test
|
|
213
|
+
python-cad build --project-root /tmp/platform-test
|
|
214
|
+
if: matrix.os != 'windows-latest'
|
|
215
|
+
- name: Init and build on Windows
|
|
216
|
+
run: |
|
|
217
|
+
python-cad init --destination C:\platform-test
|
|
218
|
+
python-cad build --project-root C:\platform-test
|
|
219
|
+
if: matrix.os == 'windows-latest'
|
|
220
|
+
|
|
221
|
+
platform-locks:
|
|
222
|
+
name: Platform lock generation (${{ matrix.os }})
|
|
223
|
+
strategy:
|
|
224
|
+
fail-fast: false
|
|
225
|
+
matrix:
|
|
226
|
+
include:
|
|
227
|
+
- os: ubuntu-latest
|
|
228
|
+
lock: requirements-linux.lock
|
|
229
|
+
- os: macos-latest
|
|
230
|
+
lock: requirements-macos.lock
|
|
231
|
+
- os: windows-latest
|
|
232
|
+
lock: requirements-windows.lock
|
|
233
|
+
|
|
234
|
+
runs-on: ${{ matrix.os }}
|
|
235
|
+
steps:
|
|
236
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
237
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
238
|
+
with:
|
|
239
|
+
python-version: "3.13"
|
|
240
|
+
cache: pip
|
|
241
|
+
- run: python -m pip install --upgrade pip
|
|
242
|
+
- run: pip install -e '.[dev]'
|
|
243
|
+
- name: Generate platform lock
|
|
244
|
+
run: |
|
|
245
|
+
pip freeze > ${{ matrix.lock }}
|
|
246
|
+
echo "Generated ${{ matrix.lock }} on ${{ matrix.os }}"
|
|
247
|
+
cat ${{ matrix.lock }}
|
|
248
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
|
|
249
|
+
with:
|
|
250
|
+
name: ${{ matrix.lock }}
|
|
251
|
+
path: ${{ matrix.lock }}
|
|
252
|
+
|
|
253
|
+
build-publish:
|
|
254
|
+
name: Build and publish to PyPI
|
|
255
|
+
if: |
|
|
256
|
+
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
|
|
257
|
+
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v'))
|
|
258
|
+
needs:
|
|
259
|
+
- lint-type-unit
|
|
260
|
+
- exporter-integration
|
|
261
|
+
- viewer-browser
|
|
262
|
+
- wheel-sdist
|
|
263
|
+
- clean-install
|
|
264
|
+
- generic-e2e
|
|
265
|
+
- public-api
|
|
266
|
+
- active-terminology
|
|
267
|
+
- tree-shape
|
|
268
|
+
- supported-platforms
|
|
269
|
+
- platform-locks
|
|
270
|
+
runs-on: ubuntu-latest
|
|
271
|
+
outputs:
|
|
272
|
+
hashes: ${{ steps.hash.outputs.hashes }}
|
|
273
|
+
steps:
|
|
274
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
275
|
+
with:
|
|
276
|
+
fetch-depth: 0
|
|
277
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
278
|
+
with:
|
|
279
|
+
python-version: "3.13"
|
|
280
|
+
cache: pip
|
|
281
|
+
- run: python -m pip install --upgrade pip
|
|
282
|
+
- run: pip install build twine
|
|
283
|
+
- name: Build wheel and sdist
|
|
284
|
+
run: python -m build --wheel --sdist --outdir dist .
|
|
285
|
+
- name: Generate hashes for provenance
|
|
286
|
+
id: hash
|
|
287
|
+
run: |
|
|
288
|
+
cd dist
|
|
289
|
+
HASHES=$(sha256sum * | base64 -w0)
|
|
290
|
+
echo "hashes=$HASHES" >> "$GITHUB_OUTPUT"
|
|
291
|
+
- name: Twine check
|
|
292
|
+
run: python -m twine check dist/*
|
|
293
|
+
- name: Publish to PyPI
|
|
294
|
+
run: python -m twine upload dist/*
|
|
295
|
+
env:
|
|
296
|
+
TWINE_USERNAME: __token__
|
|
297
|
+
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
|
|
298
|
+
|
|
299
|
+
provenance:
|
|
300
|
+
name: Generate SLSA provenance
|
|
301
|
+
if: |
|
|
302
|
+
(github.event_name == 'push' && github.ref == 'refs/heads/main') ||
|
|
303
|
+
(github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v'))
|
|
304
|
+
needs: [build-publish]
|
|
305
|
+
permissions:
|
|
306
|
+
actions: read
|
|
307
|
+
id-token: write
|
|
308
|
+
contents: write
|
|
309
|
+
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
|
|
310
|
+
with:
|
|
311
|
+
base64-subjects: ${{ needs.build-publish.outputs.hashes }}
|
|
312
|
+
upload-assets: true
|
|
313
|
+
private-repository: true
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
name: Downstream compatibility
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
companion-repository-url:
|
|
7
|
+
description: Future companion repository URL (e.g. https://github.com/owner/repo)
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
companion-commit:
|
|
11
|
+
description: Companion repository commit SHA to check out
|
|
12
|
+
required: true
|
|
13
|
+
type: string
|
|
14
|
+
candidate-wheel-sha256:
|
|
15
|
+
description: SHA-256 of the candidate wheel to test against
|
|
16
|
+
required: true
|
|
17
|
+
type: string
|
|
18
|
+
|
|
19
|
+
permissions:
|
|
20
|
+
contents: read
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
downstream-compatibility:
|
|
24
|
+
name: Downstream compatibility (manual, deferred)
|
|
25
|
+
runs-on: ubuntu-latest
|
|
26
|
+
steps:
|
|
27
|
+
- name: Report deferred downstream compatibility
|
|
28
|
+
run: |
|
|
29
|
+
echo "Downstream compatibility verification is deferred."
|
|
30
|
+
echo ""
|
|
31
|
+
echo "Inputs recorded for a future companion repository:"
|
|
32
|
+
echo " companion-repository-url: ${{ inputs.companion-repository-url }}"
|
|
33
|
+
echo " companion-commit: ${{ inputs.companion-commit }}"
|
|
34
|
+
echo " candidate-wheel-sha256: ${{ inputs.candidate-wheel-sha256 }}"
|
|
35
|
+
echo ""
|
|
36
|
+
echo "This workflow does not check out, build, or test a companion"
|
|
37
|
+
echo "repository. It must not be run until a companion repository"
|
|
38
|
+
echo "exists at the provided URL. No companion revision is"
|
|
39
|
+
echo "hard-coded in this repository."
|
|
40
|
+
exit 1
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
name: Release candidate
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
inputs:
|
|
6
|
+
candidate-label:
|
|
7
|
+
description: Candidate label (e.g. 0.1.0rc1)
|
|
8
|
+
required: true
|
|
9
|
+
type: string
|
|
10
|
+
|
|
11
|
+
permissions:
|
|
12
|
+
contents: read
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
build:
|
|
16
|
+
name: Build wheel and sdist
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
outputs:
|
|
19
|
+
wheel-sha256: ${{ steps.hashes.outputs.wheel-sha256 }}
|
|
20
|
+
sdist-sha256: ${{ steps.hashes.outputs.sdist-sha256 }}
|
|
21
|
+
wheel-name: ${{ steps.hashes.outputs.wheel-name }}
|
|
22
|
+
sdist-name: ${{ steps.hashes.outputs.sdist-name }}
|
|
23
|
+
steps:
|
|
24
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
25
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
26
|
+
with:
|
|
27
|
+
python-version: "3.13"
|
|
28
|
+
cache: pip
|
|
29
|
+
- run: python -m pip install --upgrade pip
|
|
30
|
+
- run: pip install -e '.[dev]'
|
|
31
|
+
- run: ruff check src tests
|
|
32
|
+
- run: mypy
|
|
33
|
+
- run: pytest -q
|
|
34
|
+
- name: Build wheel and sdist
|
|
35
|
+
run: python -m build --wheel --sdist --outdir dist .
|
|
36
|
+
- name: Twine check
|
|
37
|
+
run: python -m twine check dist/*
|
|
38
|
+
- name: Record hashes
|
|
39
|
+
id: hashes
|
|
40
|
+
run: |
|
|
41
|
+
WHEEL=$(ls dist/*.whl)
|
|
42
|
+
SDIST=$(ls dist/*.tar.gz)
|
|
43
|
+
WHEEL_SHA=$(sha256sum "$WHEEL" | cut -d' ' -f1)
|
|
44
|
+
SDIST_SHA=$(sha256sum "$SDIST" | cut -d' ' -f1)
|
|
45
|
+
echo "wheel-sha256=$WHEEL_SHA" >> "$GITHUB_OUTPUT"
|
|
46
|
+
echo "sdist-sha256=$SDIST_SHA" >> "$GITHUB_OUTPUT"
|
|
47
|
+
echo "wheel-name=$(basename "$WHEEL")" >> "$GITHUB_OUTPUT"
|
|
48
|
+
echo "sdist-name=$(basename "$SDIST")" >> "$GITHUB_OUTPUT"
|
|
49
|
+
echo "WHEEL_SHA256=$WHEEL_SHA" > dist/CHECKSUMS
|
|
50
|
+
echo "SDIST_SHA256=$SDIST_SHA" >> dist/CHECKSUMS
|
|
51
|
+
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
|
|
52
|
+
with:
|
|
53
|
+
name: release-candidate-${{ inputs.candidate-label }}
|
|
54
|
+
path: dist/
|
|
55
|
+
retention-days: 90
|
|
56
|
+
|
|
57
|
+
verify:
|
|
58
|
+
name: Verify candidate hashes
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
needs: build
|
|
61
|
+
steps:
|
|
62
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
63
|
+
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
64
|
+
with:
|
|
65
|
+
python-version: "3.13"
|
|
66
|
+
cache: pip
|
|
67
|
+
- run: python -m pip install --upgrade pip
|
|
68
|
+
- run: pip install -e '.[dev]'
|
|
69
|
+
- uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093
|
|
70
|
+
with:
|
|
71
|
+
name: release-candidate-${{ inputs.candidate-label }}
|
|
72
|
+
path: dist
|
|
73
|
+
- name: Verify hashes match
|
|
74
|
+
run: |
|
|
75
|
+
set -euo pipefail
|
|
76
|
+
WHEEL=$(ls dist/*.whl)
|
|
77
|
+
SDIST=$(ls dist/*.tar.gz)
|
|
78
|
+
WHEEL_SHA=$(sha256sum "$WHEEL" | cut -d' ' -f1)
|
|
79
|
+
SDIST_SHA=$(sha256sum "$SDIST" | cut -d' ' -f1)
|
|
80
|
+
echo "Wheel: $WHEEL_SHA"
|
|
81
|
+
echo "Expected: ${{ needs.build.outputs.wheel-sha256 }}"
|
|
82
|
+
test "$WHEEL_SHA" = "${{ needs.build.outputs.wheel-sha256 }}"
|
|
83
|
+
echo "Sdist: $SDIST_SHA"
|
|
84
|
+
echo "Expected: ${{ needs.build.outputs.sdist-sha256 }}"
|
|
85
|
+
test "$SDIST_SHA" = "${{ needs.build.outputs.sdist-sha256 }}"
|
|
86
|
+
- name: Install wheel non-editably and verify
|
|
87
|
+
run: |
|
|
88
|
+
python -m venv /tmp/candidate-venv
|
|
89
|
+
/tmp/candidate-venv/bin/pip install dist/*.whl
|
|
90
|
+
/tmp/candidate-venv/bin/python-cad --version
|
|
91
|
+
- name: Run packaging tests
|
|
92
|
+
run: pytest tests/packaging -q
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Save verified repository changes through the exclusive Save agent
|
|
3
|
+
agent: save
|
|
4
|
+
subtask: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Load the `save` skill and follow it exactly.
|
|
8
|
+
|
|
9
|
+
Save the already-verified repository changes by calling the native OpenCode
|
|
10
|
+
tool `specrepo-autocommit` exactly once. Use `$ARGUMENTS` as its `summary` when
|
|
11
|
+
the value is non-empty; otherwise use `Save verified repository changes`.
|
|
12
|
+
|
|
13
|
+
Do not inspect or edit files, run tests, call shell commands, invoke Git
|
|
14
|
+
directly, or use any fallback. Report the single tool call's completed,
|
|
15
|
+
blocked, rejected, or failed result.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { tool } from "@opencode-ai/plugin"
|
|
2
|
+
import { fileURLToPath } from "node:url"
|
|
3
|
+
|
|
4
|
+
const script = fileURLToPath(new URL("./specrepo-autocommit.py", import.meta.url))
|
|
5
|
+
|
|
6
|
+
export default tool({
|
|
7
|
+
description: "Save verified changes through SpecRepo autocommit; callable only by the save agent.",
|
|
8
|
+
args: {
|
|
9
|
+
summary: tool.schema.string().trim().min(1).describe("What changed and why"),
|
|
10
|
+
},
|
|
11
|
+
async execute({ summary }, context) {
|
|
12
|
+
if (context.agent !== "save") {
|
|
13
|
+
throw new Error("specrepo-autocommit is restricted to the save agent.")
|
|
14
|
+
}
|
|
15
|
+
const python = process.platform === "win32" ? "python" : "python3"
|
|
16
|
+
const result = await Bun.$`${python} ${script} ${summary}`
|
|
17
|
+
.cwd(context.worktree || context.directory)
|
|
18
|
+
.nothrow()
|
|
19
|
+
.quiet()
|
|
20
|
+
const output = `${result.stdout}${result.stderr}`.trim()
|
|
21
|
+
|
|
22
|
+
if (result.exitCode !== 0) throw new Error(output)
|
|
23
|
+
return output || "Autocommit completed successfully."
|
|
24
|
+
},
|
|
25
|
+
})
|