Skip to content

Commit

Permalink
🏷️ Type interface for all cell-level layouts
Browse files Browse the repository at this point in the history
  • Loading branch information
marcelwa committed Dec 3, 2024
1 parent edf4b03 commit 7f82138
Showing 1 changed file with 177 additions and 0 deletions.
177 changes: 177 additions & 0 deletions bindings/mnt/pyfiction/pyfiction.pyi
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from typing import overload, Union, List, Optional, Tuple
from enum import Enum


class offset_coordinate:
Expand Down Expand Up @@ -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: ...

0 comments on commit 7f82138

Please sign in to comment.