from __future__ import annotations from dataclasses import dataclass, field from typing import Any @dataclass class Call: name: str args: list[Any] = field(default_factory=list) line: int = 0 raw: str = "" @dataclass class FeatureIR: feature_id: str operation: str params: dict[str, Any] queries: list[Any] = field(default_factory=list) line_start: int = 0 line_end: int = 0 raw_source: str = "" @dataclass class SketchIR: feature_id: str workplane: Any entities: list[FeatureIR] = field(default_factory=list) @dataclass class ModelIR: sample_id: str features: list[FeatureIR] = field(default_factory=list) sketches: list[SketchIR] = field(default_factory=list) steps: list[Any] = field(default_factory=list) raw_source: str = ""