pyedb 0.49.0__py3-none-any.whl → 0.50.1__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 (79) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_modeler.py +42 -11
  3. pyedb/configuration/cfg_ports_sources.py +9 -1
  4. pyedb/dotnet/database/cell/hierarchy/component.py +6 -6
  5. pyedb/dotnet/database/components.py +3 -3
  6. pyedb/dotnet/database/edb_data/padstacks_data.py +13 -0
  7. pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
  8. pyedb/dotnet/database/edb_data/variables.py +3 -3
  9. pyedb/dotnet/database/materials.py +16 -16
  10. pyedb/dotnet/database/modeler.py +38 -4
  11. pyedb/dotnet/database/sim_setup_data/data/settings.py +28 -0
  12. pyedb/dotnet/database/stackup.py +1 -0
  13. pyedb/dotnet/database/utilities/hfss_simulation_setup.py +5 -6
  14. pyedb/dotnet/edb.py +22 -20
  15. pyedb/extensions/__init__.py +0 -0
  16. pyedb/extensions/via_design_backend.py +681 -0
  17. pyedb/grpc/database/components.py +537 -686
  18. pyedb/grpc/database/control_file.py +458 -149
  19. pyedb/grpc/database/definition/component_def.py +17 -14
  20. pyedb/grpc/database/definition/materials.py +60 -60
  21. pyedb/grpc/database/definition/package_def.py +8 -8
  22. pyedb/grpc/database/definition/padstack_def.py +31 -33
  23. pyedb/grpc/database/definitions.py +6 -4
  24. pyedb/grpc/database/geometry/arc_data.py +5 -5
  25. pyedb/grpc/database/geometry/point_3d_data.py +3 -3
  26. pyedb/grpc/database/geometry/polygon_data.py +5 -5
  27. pyedb/grpc/database/hfss.py +399 -397
  28. pyedb/grpc/database/hierarchy/component.py +60 -58
  29. pyedb/grpc/database/hierarchy/pin_pair_model.py +6 -6
  30. pyedb/grpc/database/hierarchy/pingroup.py +13 -11
  31. pyedb/grpc/database/hierarchy/s_parameter_model.py +1 -1
  32. pyedb/grpc/database/hierarchy/spice_model.py +1 -1
  33. pyedb/grpc/database/layers/layer.py +2 -2
  34. pyedb/grpc/database/layers/stackup_layer.py +144 -44
  35. pyedb/grpc/database/layout/layout.py +12 -12
  36. pyedb/grpc/database/layout/voltage_regulator.py +8 -8
  37. pyedb/grpc/database/layout_validation.py +5 -5
  38. pyedb/grpc/database/modeler.py +248 -245
  39. pyedb/grpc/database/net/differential_pair.py +4 -4
  40. pyedb/grpc/database/net/extended_net.py +7 -8
  41. pyedb/grpc/database/net/net.py +57 -46
  42. pyedb/grpc/database/nets.py +139 -122
  43. pyedb/grpc/database/padstacks.py +174 -190
  44. pyedb/grpc/database/ports/ports.py +23 -17
  45. pyedb/grpc/database/primitive/padstack_instance.py +45 -30
  46. pyedb/grpc/database/primitive/path.py +7 -7
  47. pyedb/grpc/database/primitive/polygon.py +9 -9
  48. pyedb/grpc/database/primitive/primitive.py +21 -21
  49. pyedb/grpc/database/primitive/rectangle.py +1 -1
  50. pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +1 -1
  51. pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
  52. pyedb/grpc/database/simulation_setup/hfss_settings_options.py +1 -1
  53. pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +6 -6
  54. pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +2 -2
  55. pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +2 -2
  56. pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +1 -1
  57. pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +3 -3
  58. pyedb/grpc/database/siwave.py +166 -214
  59. pyedb/grpc/database/source_excitations.py +156 -0
  60. pyedb/grpc/database/stackup.py +415 -316
  61. pyedb/grpc/database/terminal/bundle_terminal.py +12 -12
  62. pyedb/grpc/database/terminal/edge_terminal.py +6 -5
  63. pyedb/grpc/database/terminal/padstack_instance_terminal.py +13 -13
  64. pyedb/grpc/database/terminal/pingroup_terminal.py +12 -12
  65. pyedb/grpc/database/terminal/point_terminal.py +6 -6
  66. pyedb/grpc/database/terminal/terminal.py +26 -26
  67. pyedb/grpc/database/utility/heat_sink.py +5 -5
  68. pyedb/grpc/database/utility/hfss_extent_info.py +21 -21
  69. pyedb/grpc/database/utility/layout_statistics.py +13 -13
  70. pyedb/grpc/database/utility/rlc.py +3 -3
  71. pyedb/grpc/database/utility/sources.py +1 -1
  72. pyedb/grpc/database/utility/sweep_data_distribution.py +1 -1
  73. pyedb/grpc/edb.py +524 -764
  74. {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/METADATA +1 -1
  75. {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/RECORD +77 -77
  76. pyedb/extensions/pre_layout_design_toolkit/via_design.py +0 -1151
  77. pyedb/grpc/database/utility/simulation_configuration.py +0 -3305
  78. {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/LICENSE +0 -0
  79. {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/WHEEL +0 -0
@@ -84,7 +84,7 @@ class PadProperties:
84
84
  return p_val
85
85
 
86
86
  @property
87
- def geometry_type(self):
87
+ def geometry_type(self) -> float:
88
88
  """Geometry type.
89
89
 
90
90
  Returns
@@ -99,7 +99,7 @@ class PadProperties:
99
99
  return self._pad_parameter_value[0]
100
100
 
101
101
  @property
102
- def shape(self):
102
+ def shape(self) -> str:
103
103
  """Pad shape.
104
104
 
105
105
  Returns
@@ -123,6 +123,12 @@ class PadProperties:
123
123
  except TypeError:
124
124
  return []
125
125
 
126
+ @parameters_values.setter
127
+ def parameters_values(self, value):
128
+ if isinstance(value, (float, str)):
129
+ value = [value]
130
+ self._update_pad_parameters_parameters(params=value)
131
+
126
132
  @property
127
133
  def parameters_values_string(self):
128
134
  """Parameters value in string format."""
@@ -132,7 +138,7 @@ class PadProperties:
132
138
  return []
133
139
 
134
140
  @property
135
- def polygon_data(self):
141
+ def polygon_data(self) -> GrpcPolygonData:
136
142
  """Parameters.
137
143
 
138
144
  Returns
@@ -144,7 +150,7 @@ class PadProperties:
144
150
  return p if isinstance(p, ansys.edb.core.geometry.polygon_data.PolygonData) else None
145
151
 
146
152
  @property
147
- def offset_x(self):
153
+ def offset_x(self) -> float:
148
154
  """Offset for the X axis.
149
155
 
150
156
  Returns
@@ -155,7 +161,7 @@ class PadProperties:
155
161
  return self._pad_parameter_value[2].value
156
162
 
157
163
  @property
158
- def offset_y(self):
164
+ def offset_y(self) -> float:
159
165
  """Offset for the Y axis.
160
166
 
161
167
  Returns
@@ -175,7 +181,7 @@ class PadProperties:
175
181
  self._update_pad_parameters_parameters(offsety=value)
176
182
 
177
183
  @property
178
- def rotation(self):
184
+ def rotation(self) -> float:
179
185
  """Rotation.
180
186
 
181
187
  Returns
@@ -190,16 +196,6 @@ class PadProperties:
190
196
  def rotation(self, value):
191
197
  self._update_pad_parameters_parameters(rotation=value)
192
198
 
193
- @rotation.setter
194
- def rotation(self, value):
195
- self._update_pad_parameters_parameters(rotation=value)
196
-
197
- @parameters_values.setter
198
- def parameters_values(self, value):
199
- if isinstance(value, (float, str)):
200
- value = [value]
201
- self._update_pad_parameters_parameters(params=value)
202
-
203
199
  def _update_pad_parameters_parameters(
204
200
  self,
205
201
  layer_name=None,
@@ -272,7 +268,7 @@ class PadstackDef(GrpcPadstackDef):
272
268
  self._bounding_box = []
273
269
 
274
270
  @property
275
- def instances(self):
271
+ def instances(self) -> list[any]:
276
272
  """Definitions Instances.
277
273
 
278
274
  Returns
@@ -283,7 +279,7 @@ class PadstackDef(GrpcPadstackDef):
283
279
  return [i for i in list(self._pedb.padstacks.instances.values()) if i.padstack_def.name == self.name]
284
280
 
285
281
  @property
286
- def layers(self):
282
+ def layers(self) -> list[str]:
287
283
  """Layers.
288
284
 
289
285
  Returns
@@ -316,7 +312,7 @@ class PadstackDef(GrpcPadstackDef):
316
312
  return self.layers[-1]
317
313
 
318
314
  @property
319
- def hole_diameter(self):
315
+ def hole_diameter(self) -> float:
320
316
  """Hole diameter.
321
317
 
322
318
  Returns
@@ -354,7 +350,7 @@ class PadstackDef(GrpcPadstackDef):
354
350
  )
355
351
 
356
352
  @property
357
- def hole_type(self):
353
+ def hole_type(self) -> float:
358
354
  """Holy type.
359
355
 
360
356
  Returns
@@ -378,7 +374,7 @@ class PadstackDef(GrpcPadstackDef):
378
374
  return self.data.get_hole_parameters()[0]
379
375
 
380
376
  @property
381
- def hole_offset_x(self):
377
+ def hole_offset_x(self) -> float:
382
378
  """Hole offset for the X axis.
383
379
 
384
380
  Returns
@@ -404,7 +400,7 @@ class PadstackDef(GrpcPadstackDef):
404
400
  )
405
401
 
406
402
  @property
407
- def hole_offset_y(self):
403
+ def hole_offset_y(self) -> float:
408
404
  """Hole offset for the Y axis.
409
405
 
410
406
  Returns
@@ -430,7 +426,7 @@ class PadstackDef(GrpcPadstackDef):
430
426
  )
431
427
 
432
428
  @property
433
- def hole_rotation(self):
429
+ def hole_rotation(self) -> float:
434
430
  """Hole rotation.
435
431
 
436
432
  Returns
@@ -456,7 +452,7 @@ class PadstackDef(GrpcPadstackDef):
456
452
  )
457
453
 
458
454
  @property
459
- def pad_by_layer(self):
455
+ def pad_by_layer(self) -> dict[str, PadProperties]:
460
456
  """Pad by layer.
461
457
 
462
458
  Returns
@@ -473,7 +469,7 @@ class PadstackDef(GrpcPadstackDef):
473
469
  return self._pad_by_layer
474
470
 
475
471
  @property
476
- def antipad_by_layer(self):
472
+ def antipad_by_layer(self) -> dict[str, PadProperties]:
477
473
  """Antipad by layer.
478
474
 
479
475
  Returns
@@ -490,7 +486,7 @@ class PadstackDef(GrpcPadstackDef):
490
486
  return self._antipad_by_layer
491
487
 
492
488
  @property
493
- def thermalpad_by_layer(self):
489
+ def thermalpad_by_layer(self) -> dict[str, PadProperties]:
494
490
  """Thermal by layer.
495
491
 
496
492
  Returns
@@ -507,7 +503,7 @@ class PadstackDef(GrpcPadstackDef):
507
503
  return self._thermalpad_by_layer
508
504
 
509
505
  @property
510
- def hole_plating_ratio(self):
506
+ def hole_plating_ratio(self) -> float:
511
507
  """Hole plating ratio.
512
508
 
513
509
  Returns
@@ -522,7 +518,7 @@ class PadstackDef(GrpcPadstackDef):
522
518
  self.data.plating_percentage = GrpcValue(ratio)
523
519
 
524
520
  @property
525
- def hole_plating_thickness(self):
521
+ def hole_plating_thickness(self) -> float:
526
522
  """Hole plating thickness.
527
523
 
528
524
  Returns
@@ -551,7 +547,7 @@ class PadstackDef(GrpcPadstackDef):
551
547
  self.hole_plating_ratio = hr
552
548
 
553
549
  @property
554
- def hole_finished_size(self):
550
+ def hole_finished_size(self) -> float:
555
551
  """Finished hole size.
556
552
 
557
553
  Returns
@@ -568,7 +564,7 @@ class PadstackDef(GrpcPadstackDef):
568
564
  return 0.0
569
565
 
570
566
  @property
571
- def hole_range(self):
567
+ def hole_range(self) -> str:
572
568
  """Get hole range value from padstack definition.
573
569
 
574
570
  Returns
@@ -597,7 +593,7 @@ class PadstackDef(GrpcPadstackDef):
597
593
  self.data.hole_range = GrpcPadstackHoleRange.UNKNOWN_RANGE
598
594
 
599
595
  @property
600
- def material(self):
596
+ def material(self) -> str:
601
597
  """Return hole material name."""
602
598
  return self.data.material.value
603
599
 
@@ -605,7 +601,9 @@ class PadstackDef(GrpcPadstackDef):
605
601
  def material(self, value):
606
602
  self.data.material.value = value
607
603
 
608
- def convert_to_3d_microvias(self, convert_only_signal_vias=True, hole_wall_angle=15, delete_padstack_def=True):
604
+ def convert_to_3d_microvias(
605
+ self, convert_only_signal_vias=True, hole_wall_angle=15, delete_padstack_def=True
606
+ ) -> bool:
609
607
  """Convert actual padstack instance to microvias 3D Objects with a given aspect ratio.
610
608
 
611
609
  Parameters
@@ -738,7 +736,7 @@ class PadstackDef(GrpcPadstackDef):
738
736
  self._pedb.logger.info(f"{i} Converted successfully to 3D Objects.")
739
737
  return True
740
738
 
741
- def split_to_microvias(self):
739
+ def split_to_microvias(self) -> list[any]:
742
740
  """Convert actual padstack definition to multiple microvias definitions.
743
741
 
744
742
  Returns
@@ -20,6 +20,8 @@
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
24
+
23
25
  from ansys.edb.core.geometry.polygon_data import PolygonData as GrpcPolygonData
24
26
 
25
27
  from pyedb.grpc.database.definition.component_def import ComponentDef
@@ -31,16 +33,16 @@ class Definitions:
31
33
  self._pedb = pedb
32
34
 
33
35
  @property
34
- def component(self):
36
+ def component(self) -> dict[str, ComponentDef]:
35
37
  """Component definitions"""
36
38
  return {l.name: ComponentDef(self._pedb, l) for l in self._pedb.active_db.component_defs}
37
39
 
38
40
  @property
39
- def package(self):
41
+ def package(self) -> dict[str, PackageDef]:
40
42
  """Package definitions."""
41
43
  return {l.name: PackageDef(self._pedb, l) for l in self._pedb.active_db.package_defs}
42
44
 
43
- def add_package_def(self, name, component_part_name=None, boundary_points=None):
45
+ def add_package_def(self, name, component_part_name=None, boundary_points=None) -> Union[PackageDef, bool]:
44
46
  """Add a package definition.
45
47
 
46
48
  Parameters
@@ -54,7 +56,7 @@ class Definitions:
54
56
 
55
57
  Returns
56
58
  -------
57
-
59
+ PackageDef object.
58
60
  """
59
61
  if not name in self.package:
60
62
  package_def = PackageDef.create(self._pedb.active_db, name=name)
@@ -33,7 +33,7 @@ class ArcData(GrpcArcData):
33
33
  super.__init__(edb_object.start, edb_object.end, optional)
34
34
 
35
35
  @property
36
- def center(self):
36
+ def center(self) -> list[float]:
37
37
  """Arc data center.
38
38
 
39
39
  Returns
@@ -45,7 +45,7 @@ class ArcData(GrpcArcData):
45
45
  return [self.center.x.value, self.center.y.value]
46
46
 
47
47
  @property
48
- def start(self):
48
+ def start(self) -> list[float]:
49
49
  """Arc data start point.
50
50
 
51
51
  Returns
@@ -57,7 +57,7 @@ class ArcData(GrpcArcData):
57
57
  return [self.start.x.value, self.start.y.value]
58
58
 
59
59
  @property
60
- def end(self):
60
+ def end(self) -> list[float]:
61
61
  """Arc data end point.
62
62
 
63
63
  Returns
@@ -69,7 +69,7 @@ class ArcData(GrpcArcData):
69
69
  return [self.end.x.value, self.end.y.value]
70
70
 
71
71
  @property
72
- def mid_point(self):
72
+ def mid_point(self) -> list[float]:
73
73
  """Arc data mid point.
74
74
 
75
75
  Returns
@@ -81,7 +81,7 @@ class ArcData(GrpcArcData):
81
81
  return [self.midpoint.x.value, self.midpoint.y.value]
82
82
 
83
83
  @property
84
- def points(self):
84
+ def points(self) -> list[list[float]]:
85
85
  """Arc data points.
86
86
 
87
87
  Returns
@@ -31,7 +31,7 @@ class Point3DData(GrpcPoint3DData):
31
31
  super().__init__(x, y, z)
32
32
 
33
33
  @property
34
- def x(self):
34
+ def x(self) -> float:
35
35
  """X position.
36
36
 
37
37
  Returns
@@ -47,7 +47,7 @@ class Point3DData(GrpcPoint3DData):
47
47
  self.x = GrpcValue(value)
48
48
 
49
49
  @property
50
- def y(self):
50
+ def y(self) -> float:
51
51
  """Y position.
52
52
 
53
53
  Returns
@@ -63,7 +63,7 @@ class Point3DData(GrpcPoint3DData):
63
63
  self.y = GrpcValue(value)
64
64
 
65
65
  @property
66
- def z(self):
66
+ def z(self) -> float:
67
67
  """Z position.
68
68
 
69
69
  Returns
@@ -54,7 +54,7 @@ class PolygonData(GrpcPolygonData):
54
54
  self._edb_object = edb_object
55
55
 
56
56
  @property
57
- def bounding_box(self):
57
+ def bounding_box(self) -> list[float]:
58
58
  """Bounding box.
59
59
 
60
60
  Returns
@@ -68,7 +68,7 @@ class PolygonData(GrpcPolygonData):
68
68
  return [bbox[0].x.value, bbox[0].xyvalue, bbox[1].x.value, bbox[1].y.value]
69
69
 
70
70
  @property
71
- def arcs(self):
71
+ def arcs(self) -> list[ArcData]:
72
72
  """Get the Primitive Arc Data.
73
73
 
74
74
  Returns
@@ -79,7 +79,7 @@ class PolygonData(GrpcPolygonData):
79
79
  return arcs
80
80
 
81
81
  @property
82
- def points(self):
82
+ def points(self) -> list[list[float]]:
83
83
  """Get all points in polygon.
84
84
 
85
85
  Returns
@@ -95,7 +95,7 @@ class PolygonData(GrpcPolygonData):
95
95
  return PolygonData.create_from_points(points=list_of_point_data, closed=closed)
96
96
 
97
97
  @staticmethod
98
- def create_from_bounding_box(points):
98
+ def create_from_bounding_box(points) -> GrpcPolygonData:
99
99
  """Create PolygonData from point list.
100
100
 
101
101
  Returns
@@ -105,7 +105,7 @@ class PolygonData(GrpcPolygonData):
105
105
  """
106
106
  return PolygonData.create_from_bounding_box(points=points)
107
107
 
108
- def expand(self, offset=0.001, tolerance=1e-12, round_corners=True, maximum_corner_extension=0.001):
108
+ def expand(self, offset=0.001, tolerance=1e-12, round_corners=True, maximum_corner_extension=0.001) -> bool:
109
109
  """Expand the polygon shape by an absolute value in all direction.
110
110
  Offset can be negative for negative expansion.
111
111