pyedb 0.50.0__py3-none-any.whl → 0.51.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyedb might be problematic. Click here for more details.

Files changed (75) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_ports_sources.py +79 -239
  3. pyedb/configuration/configuration.py +27 -0
  4. pyedb/dotnet/clr_module.py +9 -3
  5. pyedb/dotnet/database/cell/hierarchy/component.py +3 -3
  6. pyedb/dotnet/database/cell/layout.py +10 -1
  7. pyedb/dotnet/database/dotnet/database.py +0 -2
  8. pyedb/dotnet/database/edb_data/padstacks_data.py +13 -0
  9. pyedb/dotnet/database/layout_validation.py +17 -13
  10. pyedb/dotnet/database/modeler.py +0 -1
  11. pyedb/dotnet/edb.py +7 -1
  12. pyedb/generic/design_types.py +183 -62
  13. pyedb/grpc/database/components.py +604 -652
  14. pyedb/grpc/database/control_file.py +597 -155
  15. pyedb/grpc/database/definition/component_def.py +17 -14
  16. pyedb/grpc/database/definition/materials.py +27 -27
  17. pyedb/grpc/database/definition/package_def.py +8 -8
  18. pyedb/grpc/database/definition/padstack_def.py +31 -33
  19. pyedb/grpc/database/definitions.py +36 -2
  20. pyedb/grpc/database/geometry/arc_data.py +5 -5
  21. pyedb/grpc/database/geometry/point_3d_data.py +3 -3
  22. pyedb/grpc/database/geometry/polygon_data.py +5 -5
  23. pyedb/grpc/database/hfss.py +412 -395
  24. pyedb/grpc/database/hierarchy/component.py +67 -58
  25. pyedb/grpc/database/hierarchy/pin_pair_model.py +6 -6
  26. pyedb/grpc/database/hierarchy/pingroup.py +13 -11
  27. pyedb/grpc/database/hierarchy/s_parameter_model.py +1 -1
  28. pyedb/grpc/database/hierarchy/spice_model.py +1 -1
  29. pyedb/grpc/database/layers/layer.py +2 -2
  30. pyedb/grpc/database/layers/stackup_layer.py +26 -23
  31. pyedb/grpc/database/layout/layout.py +12 -12
  32. pyedb/grpc/database/layout/voltage_regulator.py +8 -8
  33. pyedb/grpc/database/layout_validation.py +58 -7
  34. pyedb/grpc/database/modeler.py +248 -245
  35. pyedb/grpc/database/net/differential_pair.py +4 -4
  36. pyedb/grpc/database/net/extended_net.py +7 -8
  37. pyedb/grpc/database/net/net.py +57 -46
  38. pyedb/grpc/database/nets.py +362 -116
  39. pyedb/grpc/database/padstacks.py +259 -178
  40. pyedb/grpc/database/ports/ports.py +23 -17
  41. pyedb/grpc/database/primitive/padstack_instance.py +45 -30
  42. pyedb/grpc/database/primitive/path.py +6 -6
  43. pyedb/grpc/database/primitive/polygon.py +9 -9
  44. pyedb/grpc/database/primitive/primitive.py +21 -21
  45. pyedb/grpc/database/primitive/rectangle.py +1 -1
  46. pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +1 -1
  47. pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
  48. pyedb/grpc/database/simulation_setup/hfss_settings_options.py +1 -1
  49. pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +6 -6
  50. pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +2 -2
  51. pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +2 -2
  52. pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +1 -1
  53. pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +3 -3
  54. pyedb/grpc/database/siwave.py +226 -214
  55. pyedb/grpc/database/source_excitations.py +307 -40
  56. pyedb/grpc/database/stackup.py +461 -283
  57. pyedb/grpc/database/terminal/bundle_terminal.py +12 -12
  58. pyedb/grpc/database/terminal/edge_terminal.py +6 -5
  59. pyedb/grpc/database/terminal/padstack_instance_terminal.py +13 -13
  60. pyedb/grpc/database/terminal/pingroup_terminal.py +12 -12
  61. pyedb/grpc/database/terminal/point_terminal.py +6 -6
  62. pyedb/grpc/database/terminal/terminal.py +26 -26
  63. pyedb/grpc/database/utility/heat_sink.py +5 -5
  64. pyedb/grpc/database/utility/hfss_extent_info.py +21 -21
  65. pyedb/grpc/database/utility/layout_statistics.py +13 -13
  66. pyedb/grpc/database/utility/rlc.py +3 -3
  67. pyedb/grpc/database/utility/sources.py +1 -1
  68. pyedb/grpc/database/utility/sweep_data_distribution.py +1 -1
  69. pyedb/grpc/edb.py +542 -739
  70. pyedb/grpc/edb_init.py +50 -3
  71. {pyedb-0.50.0.dist-info → pyedb-0.51.2.dist-info}/METADATA +1 -1
  72. {pyedb-0.50.0.dist-info → pyedb-0.51.2.dist-info}/RECORD +74 -75
  73. pyedb/grpc/database/utility/simulation_configuration.py +0 -3305
  74. {pyedb-0.50.0.dist-info → pyedb-0.51.2.dist-info}/LICENSE +0 -0
  75. {pyedb-0.50.0.dist-info → pyedb-0.51.2.dist-info}/WHEEL +0 -0
@@ -50,7 +50,7 @@ class BundleTerminal(GrpcBundleTerminal):
50
50
  self._pedb = pedb
51
51
  self._edb_object = edb_object
52
52
 
53
- def decouple(self):
53
+ def decouple(self) -> bool:
54
54
  """Ungroup a bundle of terminals.
55
55
 
56
56
  Returns
@@ -60,7 +60,7 @@ class BundleTerminal(GrpcBundleTerminal):
60
60
  return self.ungroup()
61
61
 
62
62
  @property
63
- def component(self):
63
+ def component(self) -> Component:
64
64
  """Component.
65
65
 
66
66
  Returns
@@ -70,7 +70,7 @@ class BundleTerminal(GrpcBundleTerminal):
70
70
  return Component(self._pedb, self.component)
71
71
 
72
72
  @property
73
- def impedance(self):
73
+ def impedance(self) -> float:
74
74
  """Impedance value.
75
75
 
76
76
  Returns
@@ -85,7 +85,7 @@ class BundleTerminal(GrpcBundleTerminal):
85
85
  self.impedance = GrpcValue(value)
86
86
 
87
87
  @property
88
- def net(self):
88
+ def net(self) -> Net:
89
89
  """Returns Net object.
90
90
 
91
91
  Returns
@@ -95,7 +95,7 @@ class BundleTerminal(GrpcBundleTerminal):
95
95
  return Net(self._pedb, self.net)
96
96
 
97
97
  @property
98
- def hfss_pi_type(self):
98
+ def hfss_pi_type(self) -> str:
99
99
  """Returns HFSS PI type.
100
100
 
101
101
  Returns
@@ -118,7 +118,7 @@ class BundleTerminal(GrpcBundleTerminal):
118
118
  self.hfss_pi_type = GrpcHfssPIType.LUMPED
119
119
 
120
120
  @property
121
- def reference_layer(self):
121
+ def reference_layer(self) -> Layer:
122
122
  """Returns reference layer.
123
123
 
124
124
  Returns
@@ -135,7 +135,7 @@ class BundleTerminal(GrpcBundleTerminal):
135
135
  self.reference_layer = self._pedb.stackup.signal_layer[value]._edb_object
136
136
 
137
137
  @property
138
- def reference_terminal(self):
138
+ def reference_terminal(self) -> Terminal:
139
139
  """Returns reference terminal.
140
140
 
141
141
  Returns
@@ -150,7 +150,7 @@ class BundleTerminal(GrpcBundleTerminal):
150
150
  self.reference_terminal = value._edb_object
151
151
 
152
152
  @property
153
- def rlc_boundary_parameters(self):
153
+ def rlc_boundary_parameters(self) -> Rlc:
154
154
  """Returns Rlc parameters
155
155
 
156
156
  Returns
@@ -160,7 +160,7 @@ class BundleTerminal(GrpcBundleTerminal):
160
160
  return Rlc(self._pedb, self.rlc)
161
161
 
162
162
  @property
163
- def source_amplitude(self):
163
+ def source_amplitude(self) -> float:
164
164
  """Returns source amplitude.
165
165
 
166
166
  Returns
@@ -174,7 +174,7 @@ class BundleTerminal(GrpcBundleTerminal):
174
174
  self.source_amplitude = GrpcValue(value)
175
175
 
176
176
  @property
177
- def source_phase(self):
177
+ def source_phase(self) -> float:
178
178
  """Returns source phase.
179
179
 
180
180
  Returns
@@ -188,7 +188,7 @@ class BundleTerminal(GrpcBundleTerminal):
188
188
  self.source_phase = GrpcValue(value)
189
189
 
190
190
  @property
191
- def term_to_ground(self):
191
+ def term_to_ground(self) -> str:
192
192
  """Returns terminal to ground.
193
193
 
194
194
  Returns
@@ -208,7 +208,7 @@ class BundleTerminal(GrpcBundleTerminal):
208
208
  self.term_to_ground = GrpcSourceTermToGroundType.POSITIVE
209
209
 
210
210
  @property
211
- def terminals(self):
211
+ def terminals(self) -> list[Terminal]:
212
212
  """Returns terminals list.
213
213
 
214
214
  Returns
@@ -50,7 +50,7 @@ class EdgeTerminal(GrpcEdgeTerminal):
50
50
  self._edb_object.set_product_property(GrpcProductIdType.DESIGNER, 1, value)
51
51
 
52
52
  @property
53
- def is_wave_port(self):
53
+ def is_wave_port(self) -> bool:
54
54
  if self._hfss_port_property:
55
55
  return True
56
56
  return False
@@ -112,11 +112,12 @@ class EdgeTerminal(GrpcEdgeTerminal):
112
112
  return self._pedb.ports[bundle_terminal.name]
113
113
 
114
114
  @property
115
- def is_port(self):
115
+ def is_port(self) -> bool:
116
+ """Added for dotnet compatibility"""
116
117
  return True
117
118
 
118
119
  @property
119
- def ref_terminal(self):
120
+ def ref_terminal(self) -> any:
120
121
  """Return refeference terminal.
121
122
 
122
123
  ..deprecated:: 0.44.0
@@ -132,7 +133,7 @@ class EdgeTerminal(GrpcEdgeTerminal):
132
133
  self.reference_terminal = value
133
134
 
134
135
  @property
135
- def hfss_type(self):
136
+ def hfss_type(self) -> str:
136
137
  return self._hfss_type
137
138
 
138
139
  @hfss_type.setter
@@ -140,5 +141,5 @@ class EdgeTerminal(GrpcEdgeTerminal):
140
141
  self._hfss_type = value
141
142
 
142
143
  @property
143
- def terminal_type(self):
144
+ def terminal_type(self) -> str:
144
145
  return "EdgeTerminal"
@@ -37,7 +37,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
37
37
  self._pedb = pedb
38
38
 
39
39
  @property
40
- def position(self):
40
+ def position(self) -> list[float]:
41
41
  """Terminal position.
42
42
 
43
43
  Returns
@@ -48,19 +48,19 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
48
48
  return [pos_x.value, pos_y.value]
49
49
 
50
50
  @property
51
- def padstack_instance(self):
51
+ def padstack_instance(self) -> any:
52
52
  from pyedb.grpc.database.primitive.padstack_instance import PadstackInstance
53
53
 
54
54
  return PadstackInstance(self._pedb, super().padstack_instance)
55
55
 
56
56
  @property
57
- def component(self):
57
+ def component(self) -> any:
58
58
  from pyedb.grpc.database.hierarchy.component import Component
59
59
 
60
60
  return Component(self._pedb, super().component)
61
61
 
62
62
  @property
63
- def location(self):
63
+ def location(self) -> list[float]:
64
64
  """Terminal position.
65
65
 
66
66
  Returns
@@ -72,7 +72,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
72
72
  return [pos_x.value, pos_y.value]
73
73
 
74
74
  @property
75
- def net_name(self):
75
+ def net_name(self) -> str:
76
76
  """Net name.
77
77
 
78
78
  Returns
@@ -92,7 +92,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
92
92
  self.net.name = val
93
93
 
94
94
  @property
95
- def magnitude(self):
95
+ def magnitude(self) -> float:
96
96
  """Source amplitude.
97
97
 
98
98
  Returns
@@ -106,7 +106,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
106
106
  self.source_amplitude = value
107
107
 
108
108
  @property
109
- def phase(self):
109
+ def phase(self) -> float:
110
110
  """Source phase.
111
111
 
112
112
  Returns
@@ -120,7 +120,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
120
120
  self.source_phase = value
121
121
 
122
122
  @property
123
- def source_amplitude(self):
123
+ def source_amplitude(self) -> float:
124
124
  """Source amplitude.
125
125
 
126
126
  Returns
@@ -134,7 +134,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
134
134
  super(PadstackInstanceTerminal, self.__class__).source_amplitude.__set__(self, value)
135
135
 
136
136
  @property
137
- def source_phase(self):
137
+ def source_phase(self) -> float:
138
138
  """Source phase.
139
139
 
140
140
  Returns
@@ -148,7 +148,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
148
148
  super(PadstackInstanceTerminal, self.__class__).source_phase.__set__(self, value)
149
149
 
150
150
  @property
151
- def impedance(self):
151
+ def impedance(self) -> float:
152
152
  """Impdeance value.
153
153
 
154
154
  Returns
@@ -162,7 +162,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
162
162
  super(PadstackInstanceTerminal, self.__class__).impedance.__set__(self, value)
163
163
 
164
164
  @property
165
- def boundary_type(self):
165
+ def boundary_type(self) -> str:
166
166
  """Boundary type.
167
167
 
168
168
  Returns
@@ -185,7 +185,7 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
185
185
  super(PadstackInstanceTerminal, self.__class__).boundary_type.__set__(self, mapping[value.name.lower()])
186
186
 
187
187
  @property
188
- def is_port(self):
188
+ def is_port(self) -> bool:
189
189
  if self.boundary_type == "port":
190
190
  return True
191
191
  return False
@@ -207,5 +207,5 @@ class PadstackInstanceTerminal(GrpcPadstackInstanceTerminal):
207
207
  self.reference_terminal = value
208
208
 
209
209
  @property
210
- def terminal_type(self):
210
+ def terminal_type(self) -> str:
211
211
  return "PadstackInstanceTerminal"
@@ -38,7 +38,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
38
38
  self._pedb = pedb
39
39
 
40
40
  @property
41
- def boundary_type(self):
41
+ def boundary_type(self) -> str:
42
42
  """Boundary type.
43
43
 
44
44
  Returns
@@ -60,13 +60,13 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
60
60
  super(PinGroupTerminal, self.__class__).boundary_type.__set__(self, value)
61
61
 
62
62
  @property
63
- def is_port(self):
63
+ def is_port(self) -> bool:
64
64
  if self.boundary_type == "port":
65
65
  return True
66
66
  return False
67
67
 
68
68
  @property
69
- def magnitude(self):
69
+ def magnitude(self) -> float:
70
70
  """Source magnitude.
71
71
 
72
72
  Returns
@@ -81,7 +81,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
81
81
  self.source_amplitude = value
82
82
 
83
83
  @property
84
- def phase(self):
84
+ def phase(self) -> float:
85
85
  """Source phase.
86
86
 
87
87
  Returns
@@ -96,7 +96,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
96
96
  self.source_phase = value
97
97
 
98
98
  @property
99
- def source_amplitude(self):
99
+ def source_amplitude(self) -> float:
100
100
  """Source amplitude.
101
101
 
102
102
  Returns
@@ -111,7 +111,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
111
111
  super(PinGroupTerminal, self.__class__).source_amplitude.__set__(self, value)
112
112
 
113
113
  @property
114
- def source_phase(self):
114
+ def source_phase(self) -> float:
115
115
  """Source phase.
116
116
 
117
117
  Returns
@@ -126,7 +126,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
126
126
  super(PinGroupTerminal, self.__class__).source_phase.__set__(self, value)
127
127
 
128
128
  @property
129
- def impedance(self):
129
+ def impedance(self) -> float:
130
130
  """Terminal impedance.
131
131
 
132
132
  Returns
@@ -141,7 +141,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
141
141
  super(PinGroupTerminal, self.__class__).impedance.__set__(self, value)
142
142
 
143
143
  @property
144
- def net(self):
144
+ def net(self) -> Net:
145
145
  """Terminal net.
146
146
 
147
147
  Returns
@@ -157,7 +157,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
157
157
  super(PinGroupTerminal, self.__class__).net.__set__(self, value)
158
158
 
159
159
  @property
160
- def pin_group(self):
160
+ def pin_group(self) -> any:
161
161
  """Pingroup.
162
162
 
163
163
  Returns
@@ -171,7 +171,7 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
171
171
  return PinGroup(self._pedb, super().pin_group)
172
172
 
173
173
  @property
174
- def terminal_type(self):
174
+ def terminal_type(self) -> str:
175
175
  return "PinGroupTerminal"
176
176
 
177
177
  @property
@@ -192,11 +192,11 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
192
192
  self.reference_terminal = value
193
193
 
194
194
  @property
195
- def hfss_type(self):
195
+ def hfss_type(self) -> str:
196
196
  return "circuit"
197
197
 
198
198
  @property
199
- def is_current_source(self):
199
+ def is_current_source(self) -> bool:
200
200
  if self.boundary_type == "current_source":
201
201
  return True
202
202
  return False
@@ -33,7 +33,7 @@ class PointTerminal(GrpcPointTerminal):
33
33
  self._pedb = pedb
34
34
 
35
35
  @property
36
- def location(self):
36
+ def location(self) -> list[float]:
37
37
  """Terminal position.
38
38
 
39
39
  Returns
@@ -51,7 +51,7 @@ class PointTerminal(GrpcPointTerminal):
51
51
  self.point = GrpcPointData(value)
52
52
 
53
53
  @property
54
- def layer(self):
54
+ def layer(self) -> any:
55
55
  """Terminal layer.
56
56
 
57
57
  Returns
@@ -69,7 +69,7 @@ class PointTerminal(GrpcPointTerminal):
69
69
  super(PointTerminal, self.__class__).layer.__set__(self, value)
70
70
 
71
71
  @property
72
- def ref_terminal(self):
72
+ def ref_terminal(self) -> any:
73
73
  """Reference terminal.
74
74
 
75
75
  Returns
@@ -84,7 +84,7 @@ class PointTerminal(GrpcPointTerminal):
84
84
  super().reference_terminal = value
85
85
 
86
86
  @property
87
- def reference_terminal(self):
87
+ def reference_terminal(self) -> any:
88
88
  """Reference terminal.
89
89
 
90
90
  Returns
@@ -99,10 +99,10 @@ class PointTerminal(GrpcPointTerminal):
99
99
  super(PointTerminal, self.__class__).reference_terminal.__set__(self, value)
100
100
 
101
101
  @property
102
- def terminal_type(self):
102
+ def terminal_type(self) -> str:
103
103
  return "PointTerminal"
104
104
 
105
105
  @property
106
- def is_port(self):
106
+ def is_port(self) -> bool:
107
107
  """Adding DotNet compatibility."""
108
108
  return True
@@ -28,8 +28,8 @@ from ansys.edb.core.terminal.terminal import Terminal as GrpcTerminal
28
28
  from ansys.edb.core.terminal.terminal import TerminalType as GrpcTerminalType
29
29
  from ansys.edb.core.utility.value import Value as GrpcValue
30
30
 
31
- from pyedb.dotnet.database.edb_data.padstacks_data import EDBPadstackInstance
32
- from pyedb.dotnet.database.edb_data.primitives_data import cast
31
+ from pyedb.grpc.database.primitive.padstack_instance import PadstackInstance
32
+ from pyedb.grpc.database.primitive.primitive import Primitive
33
33
 
34
34
 
35
35
  class Terminal(GrpcTerminal):
@@ -89,7 +89,7 @@ class Terminal(GrpcTerminal):
89
89
  return p
90
90
 
91
91
  @property
92
- def ref_terminal(self):
92
+ def ref_terminal(self) -> any:
93
93
  """Reference terminal.
94
94
 
95
95
  Returns
@@ -112,7 +112,7 @@ class Terminal(GrpcTerminal):
112
112
  self._edb_properties = "HFSS({})".format(txt)
113
113
 
114
114
  @property
115
- def hfss_type(self):
115
+ def hfss_type(self) -> str:
116
116
  """HFSS port type."""
117
117
  return self._hfss_port_property["HFSS Type"]
118
118
 
@@ -123,7 +123,7 @@ class Terminal(GrpcTerminal):
123
123
  self._hfss_port_property = p
124
124
 
125
125
  @property
126
- def layer(self):
126
+ def layer(self) -> str:
127
127
  """Get layer of the terminal.
128
128
 
129
129
  Returns
@@ -142,7 +142,7 @@ class Terminal(GrpcTerminal):
142
142
  self.reference_layer = self._pedb.stackup.layers[value]
143
143
 
144
144
  @property
145
- def do_renormalize(self):
145
+ def do_renormalize(self) -> bool:
146
146
  """Determine whether port renormalization is enabled.
147
147
 
148
148
  Returns
@@ -157,7 +157,7 @@ class Terminal(GrpcTerminal):
157
157
  self.port_post_processing_prop.do_renormalize = value
158
158
 
159
159
  @property
160
- def net_name(self):
160
+ def net_name(self) -> str:
161
161
  """Net name.
162
162
 
163
163
  Returns
@@ -168,7 +168,7 @@ class Terminal(GrpcTerminal):
168
168
  return self.net.name
169
169
 
170
170
  @property
171
- def terminal_type(self):
171
+ def terminal_type(self) -> str:
172
172
  """Terminal Type. Accepted values for setter: `"edge"`, `"point"`, `"terminal_instance"`,
173
173
  `"padstack_instance"`, `"bundle_terminal"`, `"pin_group"`.
174
174
 
@@ -183,7 +183,7 @@ class Terminal(GrpcTerminal):
183
183
  self.type = self._terminal_type_mapping[value]
184
184
 
185
185
  @property
186
- def boundary_type(self):
186
+ def boundary_type(self) -> str:
187
187
  """Boundary type.
188
188
 
189
189
  Returns
@@ -198,7 +198,7 @@ class Terminal(GrpcTerminal):
198
198
  super(Terminal, self.__class__).boundary_type.__set__(self, self._boundary_type_mapping[value])
199
199
 
200
200
  @property
201
- def is_port(self):
201
+ def is_port(self) -> bool:
202
202
  """Whether it is a port.
203
203
 
204
204
  Returns
@@ -209,7 +209,7 @@ class Terminal(GrpcTerminal):
209
209
  return True if self.boundary_type == "port" else False
210
210
 
211
211
  @property
212
- def is_current_source(self):
212
+ def is_current_source(self) -> bool:
213
213
  """Whether it is a current source.
214
214
 
215
215
  Returns
@@ -220,7 +220,7 @@ class Terminal(GrpcTerminal):
220
220
  return True if self.boundary_type == "current_source" else False
221
221
 
222
222
  @property
223
- def is_voltage_source(self):
223
+ def is_voltage_source(self) -> bool:
224
224
  """Whether it is a voltage source.
225
225
 
226
226
  Returns
@@ -231,7 +231,7 @@ class Terminal(GrpcTerminal):
231
231
  return True if self.boundary_type == "voltage_source" else False
232
232
 
233
233
  @property
234
- def impedance(self):
234
+ def impedance(self) -> float:
235
235
  """Impedance of the port.
236
236
 
237
237
  Returns
@@ -246,7 +246,7 @@ class Terminal(GrpcTerminal):
246
246
  self.impedance = GrpcValue(value)
247
247
 
248
248
  @property
249
- def reference_object(self): # pragma : no cover
249
+ def reference_object(self) -> any:
250
250
  """This returns the object assigned as reference. It can be a primitive or a padstack instance.
251
251
 
252
252
 
@@ -276,7 +276,7 @@ class Terminal(GrpcTerminal):
276
276
  return self._reference_object
277
277
 
278
278
  @property
279
- def reference_net_name(self):
279
+ def reference_net_name(self) -> str:
280
280
  """Net name to which reference_object belongs.
281
281
 
282
282
  Returns
@@ -289,7 +289,7 @@ class Terminal(GrpcTerminal):
289
289
 
290
290
  return ""
291
291
 
292
- def get_padstack_terminal_reference_pin(self, gnd_net_name_preference=None): # pragma : no cover
292
+ def get_padstack_terminal_reference_pin(self, gnd_net_name_preference=None) -> PadstackInstance:
293
293
  """Get a list of pad stacks instances and serves Coax wave ports,
294
294
  pingroup terminals, PadEdge terminals.
295
295
 
@@ -311,7 +311,7 @@ class Terminal(GrpcTerminal):
311
311
  pins = self._pedb.components.get_pin_from_component(self.component.name)
312
312
  return self._get_closest_pin(padStackInstance, pins, gnd_net_name_preference)
313
313
 
314
- def get_pin_group_terminal_reference_pin(self, gnd_net_name_preference=None): # pragma : no cover
314
+ def get_pin_group_terminal_reference_pin(self, gnd_net_name_preference=None) -> PadstackInstance:
315
315
  """Return a list of pins and serves terminals connected to pingroups.
316
316
 
317
317
  Parameters
@@ -339,12 +339,12 @@ class Terminal(GrpcTerminal):
339
339
  else:
340
340
  try:
341
341
  _, refTermPSI, _ = refTerm.get_parameters()
342
- return EDBPadstackInstance(refTermPSI, self._pedb)
342
+ return PadstackInstance(self._pedb, refTermPSI)
343
343
  except AttributeError:
344
344
  return False
345
345
  return False
346
346
 
347
- def get_edge_terminal_reference_primitive(self): # pragma : no cover
347
+ def get_edge_terminal_reference_primitive(self) -> any:
348
348
  """Check and return a primitive instance that serves Edge ports,
349
349
  wave-ports and coupled-edge ports that are directly connected to primitives.
350
350
 
@@ -361,10 +361,10 @@ class Terminal(GrpcTerminal):
361
361
  for primitive in self._pedb.layout.primitives:
362
362
  if primitive.layer.name == layer_name:
363
363
  if primitive.polygon_data.point_in_polygon(point_data):
364
- return cast(primitive, self._pedb)
364
+ return (primitive, self._pedb)
365
365
  return None # pragma: no cover
366
366
 
367
- def get_point_terminal_reference_primitive(self): # pragma : no cover
367
+ def get_point_terminal_reference_primitive(self) -> Primitive: # pragma : no cover
368
368
  """Find and return the primitive reference for the point terminal or the padstack instance.
369
369
 
370
370
  Returns
@@ -381,7 +381,7 @@ class Terminal(GrpcTerminal):
381
381
  if primitive.layer.name == layer_name:
382
382
  prim_shape_data = primitive.GetPolygonData()
383
383
  if primitive.polygon_data.point_in_polygon(point_data):
384
- return cast(primitive, self._pedb)
384
+ return Primitive(self._pedb, primitive)
385
385
  for vias in self._pedb.padstacks.instances.values():
386
386
  if layer_name in vias.layer_range_names:
387
387
  plane = self._pedb.modeler.Shape(
@@ -392,7 +392,7 @@ class Terminal(GrpcTerminal):
392
392
  return vias
393
393
  return False
394
394
 
395
- def get_pad_edge_terminal_reference_pin(self, gnd_net_name_preference=None):
395
+ def get_pad_edge_terminal_reference_pin(self, gnd_net_name_preference=None) -> PadstackInstance:
396
396
  """Get the closest pin padstack instances and serves any edge terminal connected to a pad.
397
397
 
398
398
  Parameters
@@ -438,10 +438,10 @@ class Terminal(GrpcTerminal):
438
438
  closest_pin_distance = distance
439
439
  pin_obj = pin
440
440
  if pin_obj:
441
- return EDBPadstackInstance(pin_obj, self._pedb)
441
+ return PadstackInstance(self._pedb.pin_obj)
442
442
 
443
443
  @property
444
- def magnitude(self):
444
+ def magnitude(self) -> float:
445
445
  """Get the magnitude of the source.
446
446
 
447
447
  Returns
@@ -455,7 +455,7 @@ class Terminal(GrpcTerminal):
455
455
  self.source_amplitude = GrpcValue(value)
456
456
 
457
457
  @property
458
- def phase(self):
458
+ def phase(self) -> float:
459
459
  """Get the phase of the source.
460
460
 
461
461
  Returns
@@ -46,7 +46,7 @@ class HeatSink:
46
46
  }
47
47
 
48
48
  @property
49
- def fin_base_height(self):
49
+ def fin_base_height(self) -> float:
50
50
  """The base elevation of the fins.
51
51
 
52
52
  Returns
@@ -61,7 +61,7 @@ class HeatSink:
61
61
  self._edb_object.fin_base_height = GrpcValue(value)
62
62
 
63
63
  @property
64
- def fin_height(self):
64
+ def fin_height(self) -> float:
65
65
  """Fin height.
66
66
 
67
67
  Returns
@@ -77,7 +77,7 @@ class HeatSink:
77
77
  self._edb_object.fin_height = GrpcValue(value)
78
78
 
79
79
  @property
80
- def fin_orientation(self):
80
+ def fin_orientation(self) -> str:
81
81
  """Fin orientation.
82
82
 
83
83
  Returns
@@ -92,7 +92,7 @@ class HeatSink:
92
92
  self._edb_object.fin_orientation = self._fin_orientation_type[value]
93
93
 
94
94
  @property
95
- def fin_spacing(self):
95
+ def fin_spacing(self) -> float:
96
96
  """Fin spacing.
97
97
 
98
98
  Returns
@@ -108,7 +108,7 @@ class HeatSink:
108
108
  self._edb_object.fin_spacing = GrpcValue(value)
109
109
 
110
110
  @property
111
- def fin_thickness(self):
111
+ def fin_thickness(self) -> float:
112
112
  """Fin thickness.
113
113
 
114
114
  Returns