semi_cr.core.lab package

Subpackages

Submodules

semi_cr.core.lab.env module

semi_cr.core.lab.gdsfile module

semi_cr.core.lab.gdsfile.is_gate_polygon(polygon: Polygon) bool[source]
class semi_cr.core.lab.gdsfile.GDSGate(name: str, polygon: list[tuple[float, float]])[source]

Bases: object

name: str
polygon: list[tuple[float, float]]
semi_cr.core.lab.gdsfile.sort_gate_names(names: list[str]) list[str][source]

Sort gate names: measurement plungers, numbered plungers, barriers, sensors.

Examples

>>> sort_gate_names(['B2', 'P1', 'PN', 'B1', 'P2', 'PE', 'S1'])
['PN', 'PE', 'P1', 'P2', 'B1', 'B2', 'S1']
>>> sort_gate_names(['P10', 'P2', 'P1'])
['P1', 'P2', 'P10']
class semi_cr.core.lab.gdsfile.GDSFile(path: str | None = None)[source]

Bases: object

Loads a GDS2 file, and can output the polygons in a neutral format

TODO: Improve validation (and write test cases)
  • gdspy.Polygon may include more than one actual polygon, enforce that properly (and write a test case)

  • We do not allow non-unique gate names.

get_gates() Iterator[GDSGate][source]
get_gate_names() list[str][source]

Return gate names in domain-appropriate order.

Order: measurement plungers (PN, PE, PS, PW) -> numbered plungers -> barriers -> sensors

get_bbox() tuple[tuple[float, float], tuple[float, float]][source]

Module contents