9898####################################################################################################
9999
100100import logging
101+ from typing import TYPE_CHECKING
101102
102103# pylint: disable=no-name-in-module
103104from ..Unit import U_m , U_s , U_A , U_V , U_Degree , U_Ω , U_F , U_H , U_Hz
104105# pylint: enable=no-name-in-module
105106from .Element import (
107+ Element ,
106108 AnyPinElement ,
107109 FixedPinElement ,
108110 NPinElement ,
128130from .StringTools import join_list , join_dict
129131from .unit import str_spice
130132
133+ if TYPE_CHECKING :
134+ from .Netlist import Netlist
135+
131136####################################################################################################
132137
133138_module_logger = logging .getLogger (__name__ )
@@ -159,10 +164,8 @@ class SubCircuitElement(NPinElement):
159164
160165 ##############################################
161166
162- def __init__ (self , netlist , name , subcircuit_name , * nodes , ** parameters ):
163-
167+ def __init__ (self , netlist : 'Netlist' , name : str , subcircuit_name , * nodes , ** parameters ) -> None :
164168 super ().__init__ (netlist , name , nodes , subcircuit_name )
165-
166169 # Fixme: match parameters to subcircuit
167170 self .parameters = parameters
168171
@@ -175,14 +178,14 @@ def __init__(self, netlist, name, subcircuit_name, *nodes, **parameters):
175178
176179 ##############################################
177180
178- def copy_to (self , netlist ) :
181+ def copy_to (self , netlist : 'Netlist' ) -> Element :
179182 element = self .__class__ (netlist , self ._name , self .subcircuit_name , * self .node_names , ** self .parameters )
180183 # Element.copy_to(self, element)
181184 return element
182185
183186 ##############################################
184187
185- def format_spice_parameters (self ):
188+ def format_spice_parameters (self ) -> str :
186189 """ Return the formatted list of parameters. """
187190 spice_parameters = super ().format_spice_parameters ()
188191 if self .parameters :
@@ -663,7 +666,7 @@ class CoupledInductor(AnyPinElement):
663666
664667 ##############################################
665668
666- def __init__ (self , name , * args , ** kwargs ):
669+ def __init__ (self , name : str , * args , ** kwargs ) -> None :
667670 super ().__init__ (name , * args , ** kwargs )
668671 self ._inductors = []
669672 for inductor in (self .inductor1 , self .inductor2 ):
@@ -1015,14 +1018,14 @@ class NonLinearVoltageSource(DipoleElement):
10151018
10161019 ##############################################
10171020
1018- def __init__ (self , name , * args , ** kwargs ):
1021+ def __init__ (self , name : str , * args , ** kwargs ) -> None :
10191022 super ().__init__ (name , * args , ** kwargs )
10201023 self .expression = kwargs .get ('expression' , None )
10211024 self .table = kwargs .get ('table' , None )
10221025
10231026 ##############################################
10241027
1025- def __str__ (self ):
1028+ def __str__ (self ) -> str :
10261029 spice_element = self .format_node_names ()
10271030 # Fixme: expression
10281031 if self .table is not None :
@@ -1499,7 +1502,7 @@ class LosslessTransmissionLine(TwoPortElement):
14991502
15001503 ##############################################
15011504
1502- def __init__ (self , name , * args , ** kwargs ):
1505+ def __init__ (self , name : str , * args , ** kwargs ) -> None :
15031506 super ().__init__ (name , * args , ** kwargs )
15041507 if not (self .has_parameter ('time_delay' ) or
15051508 (self .has_parameter ('frequency' ) and self .has_parameter ('normalized_length' ))):
@@ -1562,7 +1565,7 @@ class CoupledMulticonductorLine(NPinElement):
15621565
15631566 ##############################################
15641567
1565- def __init__ (self , netlist , name , * nodes , ** parameters ):
1568+ def __init__ (self , netlist : 'Netlist' , name : str , * nodes , ** parameters ) -> None :
15661569 super ().__init__ (netlist , name , nodes , ** parameters )
15671570
15681571####################################################################################################
@@ -1676,7 +1679,7 @@ class XSpiceElement(NPinElement):
16761679
16771680 ##############################################
16781681
1679- def __init__ (self , netlist , name , * nodes , ** parameters ):
1682+ def __init__ (self , netlist : 'Netlist' , name : str , * nodes , ** parameters ) -> None :
16801683 # Fixme: ok ???
16811684 super ().__init__ (netlist , name , nodes , ** parameters )
16821685
@@ -1698,5 +1701,5 @@ class GSSElement(NPinElement):
16981701
16991702 ##############################################
17001703
1701- def __init__ (self ):
1704+ def __init__ (self ) -> None :
17021705 raise NotImplementedError
0 commit comments