pyedb 0.52.0__py3-none-any.whl → 0.53.0__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.

@@ -20,7 +20,7 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
- from typing import Union
23
+ from typing import Dict, List, Optional, Union
24
24
 
25
25
  from ansys.edb.core.geometry.polygon_data import PolygonData as GrpcPolygonData
26
26
 
@@ -29,11 +29,11 @@ from pyedb.grpc.database.definition.package_def import PackageDef
29
29
 
30
30
 
31
31
  class Definitions:
32
- def __init__(self, pedb):
32
+ def __init__(self, pedb) -> None:
33
33
  self._pedb = pedb
34
34
 
35
35
  @property
36
- def component(self) -> dict[str, ComponentDef]:
36
+ def component(self) -> Dict[str, ComponentDef]:
37
37
  """Component definitions
38
38
 
39
39
  Examples
@@ -47,7 +47,7 @@ class Definitions:
47
47
  return {l.name: ComponentDef(self._pedb, l) for l in self._pedb.active_db.component_defs}
48
48
 
49
49
  @property
50
- def package(self) -> dict[str, PackageDef]:
50
+ def package(self) -> Dict[str, PackageDef]:
51
51
  """Package definitions.
52
52
 
53
53
  Examples
@@ -60,7 +60,9 @@ class Definitions:
60
60
  """
61
61
  return {l.name: PackageDef(self._pedb, l) for l in self._pedb.active_db.package_defs}
62
62
 
63
- def add_package_def(self, name, component_part_name=None, boundary_points=None) -> Union[PackageDef, bool]:
63
+ def add_package_def(
64
+ self, name: str, component_part_name: Optional[str] = None, boundary_points: Optional[List[List[float]]] = None
65
+ ) -> Union[PackageDef, bool]:
64
66
  """Add a package definition.
65
67
 
66
68
  Parameters
@@ -24,6 +24,7 @@
24
24
  This module contains these classes: `EdbLayout` and `Shape`.
25
25
  """
26
26
  import math
27
+ from typing import Any, Dict, List, Optional, Union
27
28
 
28
29
  from ansys.edb.core.geometry.arc_data import ArcData as GrpcArcData
29
30
  from ansys.edb.core.geometry.point_data import PointData as GrpcPointData
@@ -60,8 +61,8 @@ class Modeler(object):
60
61
  >>> edb_layout = edbapp.modeler
61
62
  """
62
63
 
63
- def __getitem__(self, name):
64
- """Get a primitive instance by name or ID.
64
+ def __getitem__(self, name: Union[str, int]) -> Optional[Primitive]:
65
+ """Get a primitive by name or ID.
65
66
 
66
67
  Parameters
67
68
  ----------
@@ -88,13 +89,13 @@ class Modeler(object):
88
89
  self._pedb.logger.error("Primitive not found.")
89
90
  return
90
91
 
91
- def __init__(self, p_edb):
92
+ def __init__(self, p_edb) -> None:
92
93
  """Initialize Modeler instance."""
93
94
  self._pedb = p_edb
94
95
  self._primitives = []
95
96
 
96
97
  @property
97
- def _edb(self):
98
+ def _edb(self) -> Any:
98
99
  """EDB API object.
99
100
 
100
101
  Returns
@@ -105,7 +106,7 @@ class Modeler(object):
105
106
  return self._pedb
106
107
 
107
108
  @property
108
- def _logger(self):
109
+ def _logger(self) -> Any:
109
110
  """Logger instance.
110
111
 
111
112
  Returns
@@ -116,7 +117,7 @@ class Modeler(object):
116
117
  return self._pedb.logger
117
118
 
118
119
  @property
119
- def _active_layout(self):
120
+ def _active_layout(self) -> Any:
120
121
  """Active layout.
121
122
 
122
123
  Returns
@@ -127,7 +128,7 @@ class Modeler(object):
127
128
  return self._pedb.active_layout
128
129
 
129
130
  @property
130
- def _layout(self):
131
+ def _layout(self) -> Any:
131
132
  """Current layout.
132
133
 
133
134
  Returns
@@ -138,7 +139,7 @@ class Modeler(object):
138
139
  return self._pedb.layout
139
140
 
140
141
  @property
141
- def _cell(self):
142
+ def _cell(self) -> Any:
142
143
  """Active cell.
143
144
 
144
145
  Returns
@@ -149,18 +150,18 @@ class Modeler(object):
149
150
  return self._pedb.active_cell
150
151
 
151
152
  @property
152
- def db(self):
153
+ def db(self) -> Any:
153
154
  """Database object.
154
155
 
155
156
  Returns
156
157
  -------
157
- :class:`ansys.edb.core.database.Database`
158
+ ansys.edb.core.database.Database
158
159
  Database object.
159
160
  """
160
161
  return self._pedb.active_db
161
162
 
162
163
  @property
163
- def layers(self):
164
+ def layers(self) -> Dict[str, object]:
164
165
  """Dictionary of layers.
165
166
 
166
167
  Returns
@@ -170,7 +171,7 @@ class Modeler(object):
170
171
  """
171
172
  return self._pedb.stackup.layers
172
173
 
173
- def get_primitive(self, primitive_id):
174
+ def get_primitive(self, primitive_id: int) -> Optional[Primitive]:
174
175
  """Retrieve primitive by ID.
175
176
 
176
177
  Parameters
@@ -210,7 +211,7 @@ class Modeler(object):
210
211
  return False
211
212
 
212
213
  @property
213
- def primitives(self):
214
+ def primitives(self) -> List[Primitive]:
214
215
  """All primitives in the layout.
215
216
 
216
217
  Returns
@@ -221,7 +222,7 @@ class Modeler(object):
221
222
  return [self.__mapping_primitive_type(prim) for prim in self._pedb.layout.primitives]
222
223
 
223
224
  @property
224
- def polygons_by_layer(self):
225
+ def polygons_by_layer(self) -> Dict[str, List[Primitive]]:
225
226
  """Primitives organized by layer names.
226
227
 
227
228
  Returns
@@ -235,7 +236,7 @@ class Modeler(object):
235
236
  return _primitives_by_layer
236
237
 
237
238
  @property
238
- def primitives_by_net(self):
239
+ def primitives_by_net(self) -> Dict[str, List[Primitive]]:
239
240
  """Primitives organized by net names.
240
241
 
241
242
  Returns
@@ -249,7 +250,7 @@ class Modeler(object):
249
250
  return _prim_by_net
250
251
 
251
252
  @property
252
- def primitives_by_layer(self):
253
+ def primitives_by_layer(self) -> Dict[str, List[Primitive]]:
253
254
  """Primitives organized by layer names.
254
255
 
255
256
  Returns
@@ -272,7 +273,7 @@ class Modeler(object):
272
273
  return _primitives_by_layer
273
274
 
274
275
  @property
275
- def rectangles(self):
276
+ def rectangles(self) -> List[Rectangle]:
276
277
  """All rectangle primitives.
277
278
 
278
279
  Returns
@@ -283,7 +284,7 @@ class Modeler(object):
283
284
  return [Rectangle(self._pedb, i) for i in self.primitives if i.type == "rectangle"]
284
285
 
285
286
  @property
286
- def circles(self):
287
+ def circles(self) -> List[Circle]:
287
288
  """All circle primitives.
288
289
 
289
290
  Returns
@@ -294,7 +295,7 @@ class Modeler(object):
294
295
  return [Circle(self._pedb, i) for i in self.primitives if i.type == "circle"]
295
296
 
296
297
  @property
297
- def paths(self):
298
+ def paths(self) -> List[Path]:
298
299
  """All path primitives.
299
300
 
300
301
  Returns
@@ -305,7 +306,7 @@ class Modeler(object):
305
306
  return [Path(self._pedb, i) for i in self.primitives if i.type == "path"]
306
307
 
307
308
  @property
308
- def polygons(self):
309
+ def polygons(self) -> List[Polygon]:
309
310
  """All polygon primitives.
310
311
 
311
312
  Returns
@@ -315,7 +316,7 @@ class Modeler(object):
315
316
  """
316
317
  return [Polygon(self._pedb, i) for i in self.primitives if i.type == "polygon"]
317
318
 
318
- def get_polygons_by_layer(self, layer_name, net_list=None):
319
+ def get_polygons_by_layer(self, layer_name: str, net_list: Optional[List[str]] = None) -> List[Primitive]:
319
320
  """Retrieve polygons by layer.
320
321
 
321
322
  Parameters
@@ -340,7 +341,12 @@ class Modeler(object):
340
341
  objinst.append(el)
341
342
  return objinst
342
343
 
343
- def get_primitive_by_layer_and_point(self, point=None, layer=None, nets=None):
344
+ def get_primitive_by_layer_and_point(
345
+ self,
346
+ point: Optional[List[float]] = None,
347
+ layer: Optional[Union[str, List[str]]] = None,
348
+ nets: Optional[Union[str, List[str]]] = None,
349
+ ) -> List[Primitive]:
344
350
  """Get primitive at specified point on layer.
345
351
 
346
352
  Parameters
@@ -405,7 +411,7 @@ class Modeler(object):
405
411
  return returned_obj
406
412
 
407
413
  @staticmethod
408
- def get_polygon_bounding_box(polygon):
414
+ def get_polygon_bounding_box(polygon: Primitive) -> List[float]:
409
415
  """Get bounding box of polygon.
410
416
 
411
417
  Parameters
@@ -427,7 +433,7 @@ class Modeler(object):
427
433
  ]
428
434
 
429
435
  @staticmethod
430
- def get_polygon_points(polygon):
436
+ def get_polygon_points(polygon) -> List[List[float]]:
431
437
  """Get points defining a polygon.
432
438
 
433
439
  Parameters
@@ -460,7 +466,7 @@ class Modeler(object):
460
466
  continue_iterate = False
461
467
  return points
462
468
 
463
- def parametrize_polygon(self, polygon, selection_polygon, offset_name="offsetx", origin=None):
469
+ def parametrize_polygon(self, polygon, selection_polygon, offset_name="offsetx", origin=None) -> bool:
464
470
  """Parametrize polygon points based on another polygon.
465
471
 
466
472
  Parameters
@@ -629,14 +635,14 @@ class Modeler(object):
629
635
 
630
636
  def create_trace(
631
637
  self,
632
- path_list,
633
- layer_name,
634
- width=1,
635
- net_name="",
636
- start_cap_style="Round",
637
- end_cap_style="Round",
638
- corner_style="Round",
639
- ):
638
+ path_list: List[List[float]],
639
+ layer_name: str,
640
+ width: float = 1,
641
+ net_name: str = "",
642
+ start_cap_style: str = "Round",
643
+ end_cap_style: str = "Round",
644
+ corner_style: str = "Round",
645
+ ) -> Optional[Primitive]:
640
646
  """Create trace path.
641
647
 
642
648
  Parameters
@@ -674,7 +680,13 @@ class Modeler(object):
674
680
 
675
681
  return primitive
676
682
 
677
- def create_polygon(self, points, layer_name, voids=[], net_name=""):
683
+ def create_polygon(
684
+ self,
685
+ points: Union[List[List[float]], GrpcPolygonData],
686
+ layer_name: str,
687
+ voids: Optional[List[Any]] = [],
688
+ net_name: str = "",
689
+ ) -> Optional[Primitive]:
678
690
  """Create polygon primitive.
679
691
 
680
692
  Parameters
@@ -726,17 +738,17 @@ class Modeler(object):
726
738
 
727
739
  def create_rectangle(
728
740
  self,
729
- layer_name,
730
- net_name="",
731
- lower_left_point="",
732
- upper_right_point="",
733
- center_point="",
734
- width="",
735
- height="",
736
- representation_type="lower_left_upper_right",
737
- corner_radius="0mm",
738
- rotation="0deg",
739
- ):
741
+ layer_name: str,
742
+ net_name: str = "",
743
+ lower_left_point: str = "",
744
+ upper_right_point: str = "",
745
+ center_point: str = "",
746
+ width: Union[str, float] = "",
747
+ height: Union[str, float] = "",
748
+ representation_type: str = "lower_left_upper_right",
749
+ corner_radius: str = "0mm",
750
+ rotation: str = "0deg",
751
+ ) -> Optional[Primitive]:
740
752
  """Create rectangle primitive.
741
753
 
742
754
  Parameters
@@ -814,7 +826,9 @@ class Modeler(object):
814
826
  return Rectangle(self._pedb, rect)
815
827
  return False
816
828
 
817
- def create_circle(self, layer_name, x, y, radius, net_name=""):
829
+ def create_circle(
830
+ self, layer_name: str, x: Union[float, str], y: Union[float, str], radius: Union[float, str], net_name: str = ""
831
+ ) -> Optional[Primitive]:
818
832
  """Create circle primitive.
819
833
 
820
834
  Parameters
@@ -849,7 +863,7 @@ class Modeler(object):
849
863
  return Circle(self._pedb, circle)
850
864
  return False
851
865
 
852
- def delete_primitives(self, net_names):
866
+ def delete_primitives(self, net_names: Union[str, List[str]]) -> bool:
853
867
  """Delete primitives by net name(s).
854
868
 
855
869
  Parameters
@@ -870,7 +884,13 @@ class Modeler(object):
870
884
  p.delete()
871
885
  return True
872
886
 
873
- def get_primitives(self, net_name=None, layer_name=None, prim_type=None, is_void=False):
887
+ def get_primitives(
888
+ self,
889
+ net_name: Optional[str] = None,
890
+ layer_name: Optional[str] = None,
891
+ prim_type: Optional[str] = None,
892
+ is_void: bool = False,
893
+ ) -> List[Primitive]:
874
894
  """Get primitives with filtering.
875
895
 
876
896
  Parameters
@@ -907,7 +927,7 @@ class Modeler(object):
907
927
  prims.append(el)
908
928
  return prims
909
929
 
910
- def fix_circle_void_for_clipping(self):
930
+ def fix_circle_void_for_clipping(self) -> bool:
911
931
  """Fix circle void clipping issues.
912
932
 
913
933
  Returns
@@ -934,7 +954,8 @@ class Modeler(object):
934
954
  return True
935
955
 
936
956
  @staticmethod
937
- def add_void(shape, void_shape):
957
+ @staticmethod
958
+ def add_void(shape: "Primitive", void_shape: Union["Primitive", List["Primitive"]]) -> bool:
938
959
  """Add void to shape.
939
960
 
940
961
  Parameters
@@ -1106,11 +1127,11 @@ class Modeler(object):
1106
1127
 
1107
1128
  def parametrize_trace_width(
1108
1129
  self,
1109
- nets_name,
1110
- layers_name=None,
1111
- parameter_name="trace_width",
1112
- variable_value=None,
1113
- ):
1130
+ nets_name: Union[str, List[str]],
1131
+ layers_name: Optional[Union[str, List[str]]] = None,
1132
+ parameter_name: str = "trace_width",
1133
+ variable_value: Optional[Union[float, str]] = None,
1134
+ ) -> bool:
1114
1135
  """Parametrize trace width.
1115
1136
 
1116
1137
  Parameters
@@ -1152,7 +1173,12 @@ class Modeler(object):
1152
1173
  p.width = GrpcValue(_parameter_name, self._pedb.active_cell)
1153
1174
  return True
1154
1175
 
1155
- def unite_polygons_on_layer(self, layer_name=None, delete_padstack_gemometries=False, net_names_list=[]):
1176
+ def unite_polygons_on_layer(
1177
+ self,
1178
+ layer_name: Optional[Union[str, List[str]]] = None,
1179
+ delete_padstack_gemometries: bool = False,
1180
+ net_names_list: Optional[List[str]] = None,
1181
+ ) -> bool:
1156
1182
  """Unite polygons on layer.
1157
1183
 
1158
1184
  Parameters
@@ -1223,7 +1249,7 @@ class Modeler(object):
1223
1249
  self._pedb.padstacks.remove_pads_from_padstack(pad)
1224
1250
  return True
1225
1251
 
1226
- def defeature_polygon(self, poly, tolerance=0.001):
1252
+ def defeature_polygon(self, poly: Polygon, tolerance: float = 0.001) -> bool:
1227
1253
  """Defeature polygon.
1228
1254
 
1229
1255
  Parameters
@@ -1247,7 +1273,9 @@ class Modeler(object):
1247
1273
  poly.polygon_data = new_poly
1248
1274
  return True
1249
1275
 
1250
- def get_layout_statistics(self, evaluate_area=False, net_list=None):
1276
+ def get_layout_statistics(
1277
+ self, evaluate_area: bool = False, net_list: Optional[List[str]] = None
1278
+ ) -> LayoutStatistics:
1251
1279
  """Get layout statistics.
1252
1280
 
1253
1281
  Parameters
@@ -1300,21 +1328,21 @@ class Modeler(object):
1300
1328
 
1301
1329
  def create_bondwire(
1302
1330
  self,
1303
- definition_name,
1304
- placement_layer,
1305
- width,
1306
- material,
1307
- start_layer_name,
1308
- start_x,
1309
- start_y,
1310
- end_layer_name,
1311
- end_x,
1312
- end_y,
1313
- net,
1314
- start_cell_instance_name=None,
1315
- end_cell_instance_name=None,
1316
- bondwire_type="jedec4",
1317
- ):
1331
+ definition_name: str,
1332
+ placement_layer: str,
1333
+ width: Union[float, str],
1334
+ material: str,
1335
+ start_layer_name: str,
1336
+ start_x: Union[float, str],
1337
+ start_y: Union[float, str],
1338
+ end_layer_name: str,
1339
+ end_x: Union[float, str],
1340
+ end_y: Union[float, str],
1341
+ net: str,
1342
+ start_cell_instance_name: Optional[str] = None,
1343
+ end_cell_instance_name: Optional[str] = None,
1344
+ bondwire_type: str = "jedec4",
1345
+ ) -> Optional[Primitive]:
1318
1346
  """Create bondwire.
1319
1347
 
1320
1348
  Parameters
@@ -1407,10 +1435,10 @@ class Modeler(object):
1407
1435
  def create_pin_group(
1408
1436
  self,
1409
1437
  name: str,
1410
- pins_by_id=None,
1411
- pins_by_aedt_name=None,
1412
- pins_by_name=None,
1413
- ):
1438
+ pins_by_id: Optional[List[int]] = None,
1439
+ pins_by_aedt_name: Optional[List[str]] = None,
1440
+ pins_by_name: Optional[List[str]] = None,
1441
+ ) -> bool:
1414
1442
  """Create pin group.
1415
1443
 
1416
1444
  Parameters