Technolgy file archetecture revised with dictionary input method

This commit is contained in:
=
2026-06-07 17:07:20 +08:00
parent 8a17f1dde0
commit 54d20eb154
163 changed files with 5948 additions and 1297 deletions
+54 -5
View File
@@ -1,18 +1,67 @@
"""Dataclass models used by manifest-backed technologies."""
from dataclasses import dataclass
from typing import Any, Optional, Tuple
@dataclass(frozen=True)
class LayerSpec:
native_name: str
gds: Any
"""One canonical foundry GDS layer plus optional process metadata."""
name: str
layer: Tuple[int, int]
aliases: Tuple[str, ...] = ()
material: Optional[str] = None
z_start: Optional[float] = None
thickness: Optional[float] = None
sidewall_angle: Optional[float] = None
process: Optional[str] = None
description: str = ""
@dataclass(frozen=True)
class XSectionLayerSpec:
"""One layer contribution inside a Nazca xsection."""
layer: str
growx: Optional[float] = None
growy: Optional[float] = None
leftedge: Optional[Tuple[float, float]] = None
rightedge: Optional[Tuple[float, float]] = None
overwrite: bool = True
@dataclass(frozen=True)
class XSectionSpec:
"""Named cross-section made from one or more layer contributions."""
name: str
layers: Tuple[Any, ...]
growth: Tuple[Any, ...]
growy: Optional[Any] = None
layers: Tuple[XSectionLayerSpec, ...]
@dataclass(frozen=True)
class MaterialSpec:
"""Material metadata and optional refractive-index data reference."""
name: str
display_name: Optional[str] = None
source_file: Optional[str] = None
source_revision: Optional[str] = None
data_file: Optional[str] = None
notes: str = ""
@dataclass(frozen=True)
class ProcessLayerSpec:
"""Detailed process-stack row reserved for full process exports."""
name: str
gds: Any = None
z_start_um: Optional[float] = None
thickness_um: Optional[float] = None
material: Optional[str] = None
pattern_material: Optional[str] = None
process: Optional[str] = None
sidewall_angle: Optional[float] = None
pattern_growth_delta_um: Optional[float] = None
enabled: Optional[bool] = None