diff --git a/bindings/mnt/pyfiction/pyfiction.pyi b/bindings/mnt/pyfiction/pyfiction.pyi index 2fdcda499..2086b4c4a 100644 --- a/bindings/mnt/pyfiction/pyfiction.pyi +++ b/bindings/mnt/pyfiction/pyfiction.pyi @@ -1,4 +1,5 @@ from typing import overload, Union, List, Optional, Tuple +from enum import Enum class offset_coordinate: @@ -1031,3 +1032,179 @@ class hexagonal_gate_layout(clocked_hexagonal_layout): def is_dead(self, n: int) -> bool: ... def __repr__(self) -> str: ... + + +class qca_technology: + class cell_type(Enum): + EMPTY = ... + NORMAL = ... + INPUT = ... + OUTPUT = ... + CONST_0 = ... + CONST_1 = ... + + +class inml_technology: + class cell_type(Enum): + EMPTY = ... + NORMAL = ... + INPUT = ... + OUTPUT = ... + SLANTED_EDGE_UP_MAGNET = ... + SLANTED_EDGE_DOWN_MAGNET = ... + INVERTER_MAGNET = ... + CROSSWIRE_MAGNET = ... + FANOUT_COUPLER_MAGNET = ... + + +class sidb_technology: + class cell_type(Enum): + EMPTY = ... + NORMAL = ... + INPUT = ... + OUTPUT = ... + LOGIC = ... + + +class qca_layout(clocked_cartesian_layout): + @overload + def __init__(self) -> None: ... + + @overload + def __init__(self, dimension: offset_coordinate) -> None: ... + + @overload + def __init__(self, dimension: offset_coordinate, clocking_scheme: str = "2DDWave", + layout_name: str = "") -> None: ... + + def assign_cell_type(self, c: offset_coordinate, ct: qca_technology.cell_type) -> None: ... + + def get_cell_type(self, c: offset_coordinate) -> qca_technology.cell_type: ... + + def is_empty_cell(self, c: offset_coordinate) -> bool: ... + + def assign_cell_name(self, c: offset_coordinate, n: str) -> None: ... + + def get_cell_name(self, c: offset_coordinate) -> Optional[str]: ... + + def set_layout_name(self, name: str) -> None: ... + + def get_layout_name(self) -> str: ... + + def num_cells(self) -> int: ... + + def is_empty(self) -> bool: ... + + def num_pis(self) -> int: ... + + def num_pos(self) -> int: ... + + def is_pi(self, c: offset_coordinate) -> bool: ... + + def is_po(self, c: offset_coordinate) -> bool: ... + + def cells(self) -> List[offset_coordinate]: ... + + def pis(self) -> List[offset_coordinate]: ... + + def pos(self) -> List[offset_coordinate]: ... + + def bounding_box_2d(self) -> Tuple[offset_coordinate, offset_coordinate]: ... + + def __repr__(self) -> str: ... + + +class inml_layout(clocked_cartesian_layout): + @overload + def __init__(self) -> None: ... + + @overload + def __init__(self, dimension: offset_coordinate) -> None: ... + + @overload + def __init__(self, dimension: offset_coordinate, clocking_scheme: str = "2DDWave", + layout_name: str = "") -> None: ... + + def assign_cell_type(self, c: offset_coordinate, ct: inml_technology.cell_type) -> None: ... + + def get_cell_type(self, c: offset_coordinate) -> inml_technology.cell_type: ... + + def is_empty_cell(self, c: offset_coordinate) -> bool: ... + + def assign_cell_name(self, c: offset_coordinate, n: str) -> None: ... + + def get_cell_name(self, c: offset_coordinate) -> Optional[str]: ... + + def set_layout_name(self, name: str) -> None: ... + + def get_layout_name(self) -> str: ... + + def num_cells(self) -> int: ... + + def is_empty(self) -> bool: ... + + def num_pis(self) -> int: ... + + def num_pos(self) -> int: ... + + def is_pi(self, c: offset_coordinate) -> bool: ... + + def is_po(self, c: offset_coordinate) -> bool: ... + + def cells(self) -> List[offset_coordinate]: ... + + def pis(self) -> List[offset_coordinate]: ... + + def pos(self) -> List[offset_coordinate]: ... + + def bounding_box_2d(self) -> Tuple[offset_coordinate, offset_coordinate]: ... + + def __repr__(self) -> str: ... + + +class sidb_layout(clocked_cartesian_layout): + @overload + def __init__(self) -> None: ... + + @overload + def __init__(self, dimension: offset_coordinate) -> None: ... + + @overload + def __init__(self, dimension: offset_coordinate, clocking_scheme: str = "2DDWave", + layout_name: str = "") -> None: ... + + def assign_cell_type(self, c: offset_coordinate, ct: sidb_technology.cell_type) -> None: ... + + def get_cell_type(self, c: offset_coordinate) -> sidb_technology.cell_type: ... + + def is_empty_cell(self, c: offset_coordinate) -> bool: ... + + def assign_cell_name(self, c: offset_coordinate, n: str) -> None: ... + + def get_cell_name(self, c: offset_coordinate) -> Optional[str]: ... + + def set_layout_name(self, name: str) -> None: ... + + def get_layout_name(self) -> str: ... + + def num_cells(self) -> int: ... + + def is_empty(self) -> bool: ... + + def num_pis(self) -> int: ... + + def num_pos(self) -> int: ... + + def is_pi(self, c: offset_coordinate) -> bool: ... + + def is_po(self, c: offset_coordinate) -> bool: ... + + def cells(self) -> List[offset_coordinate]: ... + + def pis(self) -> List[offset_coordinate]: ... + + def pos(self) -> List[offset_coordinate]: ... + + def bounding_box_2d(self) -> Tuple[offset_coordinate, offset_coordinate]: ... + + def __repr__(self) -> str: ...