feat(silo): DAG extraction engine — extract_dag, classify_type, properties_hash #220
Reference in New Issue
Block a user
Delete Branch "feat/silo-dag-extraction"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements the DAG extraction engine for FreeCAD documents (issue #214).
New file:
mods/silo/freecad/dag.pyPublic API
classify_type(type_id)— maps ~50 FreeCAD TypeIds to 8 DAG node types (sketch,pad,pocket,fillet,chamfer,body,part,datum)compute_properties_hash(obj)— SHA-256 hex digest of per-feature parametric inputs for memoizationextract_dag(doc)— two-pass walk ofdoc.Objectsproducing(nodes, edges)matching the SiloPUT /dagpayload schemaDesign decisions
--console) mode_safe_float()duplicated fromsilo_commands.pyrather than imported (that module importsFreeCADGui)OutListfor edge direction (notInListas in contract sample code — follows the contract field definitions where source=depended-upon, target=dependent)obj.Property.Valuereads wrapped in try/exceptCloses #214