40 lines
815 B
Python
40 lines
815 B
Python
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 = ""
|