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.
- pyedb/__init__.py +1 -1
- pyedb/configuration/cfg_modeler.py +42 -11
- pyedb/configuration/cfg_ports_sources.py +9 -1
- pyedb/dotnet/database/cell/hierarchy/component.py +6 -6
- pyedb/dotnet/database/components.py +3 -3
- pyedb/dotnet/database/edb_data/padstacks_data.py +13 -0
- pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
- pyedb/dotnet/database/edb_data/variables.py +3 -3
- pyedb/dotnet/database/materials.py +16 -16
- pyedb/dotnet/database/modeler.py +38 -4
- pyedb/dotnet/database/sim_setup_data/data/settings.py +28 -0
- pyedb/dotnet/database/stackup.py +1 -0
- pyedb/dotnet/database/utilities/hfss_simulation_setup.py +5 -6
- pyedb/dotnet/edb.py +22 -20
- pyedb/extensions/__init__.py +0 -0
- pyedb/extensions/via_design_backend.py +681 -0
- pyedb/grpc/database/components.py +537 -686
- pyedb/grpc/database/control_file.py +458 -149
- pyedb/grpc/database/definition/component_def.py +17 -14
- pyedb/grpc/database/definition/materials.py +60 -60
- pyedb/grpc/database/definition/package_def.py +8 -8
- pyedb/grpc/database/definition/padstack_def.py +31 -33
- pyedb/grpc/database/definitions.py +6 -4
- pyedb/grpc/database/geometry/arc_data.py +5 -5
- pyedb/grpc/database/geometry/point_3d_data.py +3 -3
- pyedb/grpc/database/geometry/polygon_data.py +5 -5
- pyedb/grpc/database/hfss.py +399 -397
- pyedb/grpc/database/hierarchy/component.py +60 -58
- pyedb/grpc/database/hierarchy/pin_pair_model.py +6 -6
- pyedb/grpc/database/hierarchy/pingroup.py +13 -11
- pyedb/grpc/database/hierarchy/s_parameter_model.py +1 -1
- pyedb/grpc/database/hierarchy/spice_model.py +1 -1
- pyedb/grpc/database/layers/layer.py +2 -2
- pyedb/grpc/database/layers/stackup_layer.py +144 -44
- pyedb/grpc/database/layout/layout.py +12 -12
- pyedb/grpc/database/layout/voltage_regulator.py +8 -8
- pyedb/grpc/database/layout_validation.py +5 -5
- pyedb/grpc/database/modeler.py +248 -245
- pyedb/grpc/database/net/differential_pair.py +4 -4
- pyedb/grpc/database/net/extended_net.py +7 -8
- pyedb/grpc/database/net/net.py +57 -46
- pyedb/grpc/database/nets.py +139 -122
- pyedb/grpc/database/padstacks.py +174 -190
- pyedb/grpc/database/ports/ports.py +23 -17
- pyedb/grpc/database/primitive/padstack_instance.py +45 -30
- pyedb/grpc/database/primitive/path.py +7 -7
- pyedb/grpc/database/primitive/polygon.py +9 -9
- pyedb/grpc/database/primitive/primitive.py +21 -21
- pyedb/grpc/database/primitive/rectangle.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_settings_options.py +1 -1
- pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +6 -6
- pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +2 -2
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +2 -2
- pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +1 -1
- pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +3 -3
- pyedb/grpc/database/siwave.py +166 -214
- pyedb/grpc/database/source_excitations.py +156 -0
- pyedb/grpc/database/stackup.py +415 -316
- pyedb/grpc/database/terminal/bundle_terminal.py +12 -12
- pyedb/grpc/database/terminal/edge_terminal.py +6 -5
- pyedb/grpc/database/terminal/padstack_instance_terminal.py +13 -13
- pyedb/grpc/database/terminal/pingroup_terminal.py +12 -12
- pyedb/grpc/database/terminal/point_terminal.py +6 -6
- pyedb/grpc/database/terminal/terminal.py +26 -26
- pyedb/grpc/database/utility/heat_sink.py +5 -5
- pyedb/grpc/database/utility/hfss_extent_info.py +21 -21
- pyedb/grpc/database/utility/layout_statistics.py +13 -13
- pyedb/grpc/database/utility/rlc.py +3 -3
- pyedb/grpc/database/utility/sources.py +1 -1
- pyedb/grpc/database/utility/sweep_data_distribution.py +1 -1
- pyedb/grpc/edb.py +524 -764
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/METADATA +1 -1
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/RECORD +77 -77
- pyedb/extensions/pre_layout_design_toolkit/via_design.py +0 -1151
- pyedb/grpc/database/utility/simulation_configuration.py +0 -3305
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/LICENSE +0 -0
- {pyedb-0.49.0.dist-info → pyedb-0.50.1.dist-info}/WHEEL +0 -0
|
@@ -51,7 +51,7 @@ class Primitive(GrpcPrimitive):
|
|
|
51
51
|
self._object_instance = None
|
|
52
52
|
|
|
53
53
|
@property
|
|
54
|
-
def type(self):
|
|
54
|
+
def type(self) -> str:
|
|
55
55
|
"""Type of the primitive.
|
|
56
56
|
|
|
57
57
|
Expected output is among ``"Circle"``, ``"Rectangle"``,``"Polygon"``,``"Path"`` or ``"Bondwire"``.
|
|
@@ -87,7 +87,7 @@ class Primitive(GrpcPrimitive):
|
|
|
87
87
|
return self._object_instance
|
|
88
88
|
|
|
89
89
|
@property
|
|
90
|
-
def net_name(self):
|
|
90
|
+
def net_name(self) -> str:
|
|
91
91
|
"""Net name.
|
|
92
92
|
|
|
93
93
|
Returns
|
|
@@ -105,7 +105,7 @@ class Primitive(GrpcPrimitive):
|
|
|
105
105
|
self.net = self._pedb.nets.nets[value]
|
|
106
106
|
|
|
107
107
|
@property
|
|
108
|
-
def layer_name(self):
|
|
108
|
+
def layer_name(self) -> str:
|
|
109
109
|
"""Layer name.
|
|
110
110
|
|
|
111
111
|
Returns
|
|
@@ -121,7 +121,7 @@ class Primitive(GrpcPrimitive):
|
|
|
121
121
|
self.layer = self._pedb.stackup.layers[value]
|
|
122
122
|
|
|
123
123
|
@property
|
|
124
|
-
def voids(self):
|
|
124
|
+
def voids(self) -> list[any]:
|
|
125
125
|
"""Primitive voids.
|
|
126
126
|
|
|
127
127
|
Returns
|
|
@@ -132,7 +132,7 @@ class Primitive(GrpcPrimitive):
|
|
|
132
132
|
return [Primitive(self._pedb, prim) for prim in super().voids]
|
|
133
133
|
|
|
134
134
|
@property
|
|
135
|
-
def aedt_name(self):
|
|
135
|
+
def aedt_name(self) -> str:
|
|
136
136
|
"""Name to be visualized in AEDT.
|
|
137
137
|
|
|
138
138
|
Returns
|
|
@@ -174,7 +174,7 @@ class Primitive(GrpcPrimitive):
|
|
|
174
174
|
"""
|
|
175
175
|
return self._pedb.get_connected_objects(self.object_instance)
|
|
176
176
|
|
|
177
|
-
def area(self, include_voids=True):
|
|
177
|
+
def area(self, include_voids=True) -> float:
|
|
178
178
|
"""Return the total area.
|
|
179
179
|
|
|
180
180
|
Parameters
|
|
@@ -218,7 +218,7 @@ class Primitive(GrpcPrimitive):
|
|
|
218
218
|
return x, y
|
|
219
219
|
|
|
220
220
|
@property
|
|
221
|
-
def center(self):
|
|
221
|
+
def center(self) -> list[float]:
|
|
222
222
|
"""Return the primitive bounding box center coordinate.
|
|
223
223
|
|
|
224
224
|
Returns
|
|
@@ -230,7 +230,7 @@ class Primitive(GrpcPrimitive):
|
|
|
230
230
|
center = self.cast().polygon_data.bounding_circle()[0]
|
|
231
231
|
return [center.x.value, center.y.value]
|
|
232
232
|
|
|
233
|
-
def get_connected_object_id_set(self):
|
|
233
|
+
def get_connected_object_id_set(self) -> list[int]:
|
|
234
234
|
"""Produce a list of all geometries physically connected to a given layout object.
|
|
235
235
|
|
|
236
236
|
Returns
|
|
@@ -243,7 +243,7 @@ class Primitive(GrpcPrimitive):
|
|
|
243
243
|
return [loi.layout_obj.id for loi in layout_inst.get_connected_objects(layout_obj_inst)]
|
|
244
244
|
|
|
245
245
|
@property
|
|
246
|
-
def bbox(self):
|
|
246
|
+
def bbox(self) -> list[float]:
|
|
247
247
|
"""Return the primitive bounding box points. Lower left corner, upper right corner.
|
|
248
248
|
|
|
249
249
|
Returns
|
|
@@ -299,7 +299,7 @@ class Primitive(GrpcPrimitive):
|
|
|
299
299
|
else:
|
|
300
300
|
return 4
|
|
301
301
|
|
|
302
|
-
def is_intersecting(self, primitive):
|
|
302
|
+
def is_intersecting(self, primitive) -> bool:
|
|
303
303
|
"""Check if actual primitive and another primitive or polygon data intesects.
|
|
304
304
|
|
|
305
305
|
Parameters
|
|
@@ -312,7 +312,7 @@ class Primitive(GrpcPrimitive):
|
|
|
312
312
|
"""
|
|
313
313
|
return True if self.intersection_type(primitive) >= 1 else False
|
|
314
314
|
|
|
315
|
-
def get_closest_point(self, point):
|
|
315
|
+
def get_closest_point(self, point) -> list[float]:
|
|
316
316
|
"""Get the closest point of the primitive to the input data.
|
|
317
317
|
|
|
318
318
|
Parameters
|
|
@@ -342,7 +342,7 @@ class Primitive(GrpcPrimitive):
|
|
|
342
342
|
return self.polygon_data.arc_data
|
|
343
343
|
|
|
344
344
|
@property
|
|
345
|
-
def longest_arc(self):
|
|
345
|
+
def longest_arc(self) -> float:
|
|
346
346
|
"""Longest arc.
|
|
347
347
|
|
|
348
348
|
Returns
|
|
@@ -358,7 +358,7 @@ class Primitive(GrpcPrimitive):
|
|
|
358
358
|
len = i.length
|
|
359
359
|
return arc
|
|
360
360
|
|
|
361
|
-
def subtract(self, primitives):
|
|
361
|
+
def subtract(self, primitives) -> list[any]:
|
|
362
362
|
"""Subtract active primitive with one or more primitives.
|
|
363
363
|
|
|
364
364
|
Parameters
|
|
@@ -412,7 +412,7 @@ class Primitive(GrpcPrimitive):
|
|
|
412
412
|
continue
|
|
413
413
|
return new_polys
|
|
414
414
|
|
|
415
|
-
def intersect(self, primitives):
|
|
415
|
+
def intersect(self, primitives) -> list[any]:
|
|
416
416
|
"""Intersect active primitive with one or more primitives.
|
|
417
417
|
|
|
418
418
|
Parameters
|
|
@@ -482,7 +482,7 @@ class Primitive(GrpcPrimitive):
|
|
|
482
482
|
prim.delete()
|
|
483
483
|
return new_polys
|
|
484
484
|
|
|
485
|
-
def unite(self, primitives):
|
|
485
|
+
def unite(self, primitives) -> list[any]:
|
|
486
486
|
"""Unite active primitive with one or more primitives.
|
|
487
487
|
|
|
488
488
|
Parameters
|
|
@@ -535,7 +535,7 @@ class Primitive(GrpcPrimitive):
|
|
|
535
535
|
continue
|
|
536
536
|
return new_polys
|
|
537
537
|
|
|
538
|
-
def get_closest_arc_midpoint(self, point):
|
|
538
|
+
def get_closest_arc_midpoint(self, point) -> list[float]:
|
|
539
539
|
"""Get the closest arc midpoint of the primitive to the input data.
|
|
540
540
|
|
|
541
541
|
Parameters
|
|
@@ -561,7 +561,7 @@ class Primitive(GrpcPrimitive):
|
|
|
561
561
|
return [out.x.value, out.y.value]
|
|
562
562
|
|
|
563
563
|
@property
|
|
564
|
-
def shortest_arc(self):
|
|
564
|
+
def shortest_arc(self) -> float:
|
|
565
565
|
"""Longest arc.
|
|
566
566
|
|
|
567
567
|
Returns
|
|
@@ -577,7 +577,7 @@ class Primitive(GrpcPrimitive):
|
|
|
577
577
|
len = i.length
|
|
578
578
|
return arc
|
|
579
579
|
|
|
580
|
-
def add_void(self, point_list):
|
|
580
|
+
def add_void(self, point_list) -> bool:
|
|
581
581
|
"""Add a void to current primitive.
|
|
582
582
|
|
|
583
583
|
Parameters
|
|
@@ -599,7 +599,7 @@ class Primitive(GrpcPrimitive):
|
|
|
599
599
|
void_poly = self._pedb.modeler.create_polygon(_poly, layer_name=self.layer_name, net_name=self.net.name)
|
|
600
600
|
return self.add_void(void_poly)
|
|
601
601
|
|
|
602
|
-
def points(self, arc_segments=6):
|
|
602
|
+
def points(self, arc_segments=6) -> tuple[float, float]:
|
|
603
603
|
"""Return the list of points with arcs converted to segments.
|
|
604
604
|
|
|
605
605
|
Parameters
|
|
@@ -630,7 +630,7 @@ class Primitive(GrpcPrimitive):
|
|
|
630
630
|
|
|
631
631
|
return self.polygon_data.points
|
|
632
632
|
|
|
633
|
-
def expand(self, offset=0.001, tolerance=1e-12, round_corners=True, maximum_corner_extension=0.001):
|
|
633
|
+
def expand(self, offset=0.001, tolerance=1e-12, round_corners=True, maximum_corner_extension=0.001) -> list[any]:
|
|
634
634
|
"""Expand the polygon shape by an absolute value in all direction.
|
|
635
635
|
Offset can be negative for negative expansion.
|
|
636
636
|
|
|
@@ -655,7 +655,7 @@ class Primitive(GrpcPrimitive):
|
|
|
655
655
|
offset=offset, round_corner=round_corners, max_corner_ext=maximum_corner_extension, tol=tolerance
|
|
656
656
|
)
|
|
657
657
|
|
|
658
|
-
def scale(self, factor, center=None):
|
|
658
|
+
def scale(self, factor, center=None) -> bool:
|
|
659
659
|
"""Scales the polygon relative to a center point by a factor.
|
|
660
660
|
|
|
661
661
|
Parameters
|
|
@@ -50,7 +50,7 @@ class HFSSSimulationSettings(GrpcHFSSSimulationSettings):
|
|
|
50
50
|
self._pedb = pedb
|
|
51
51
|
|
|
52
52
|
@property
|
|
53
|
-
def advanced(self):
|
|
53
|
+
def advanced(self) -> HFSSAdvancedSettings:
|
|
54
54
|
"""HFSS Advanced settings class.
|
|
55
55
|
|
|
56
56
|
|
|
@@ -62,7 +62,7 @@ class HFSSSimulationSettings(GrpcHFSSSimulationSettings):
|
|
|
62
62
|
return HFSSAdvancedSettings(self._pedb, self.advanced)
|
|
63
63
|
|
|
64
64
|
@property
|
|
65
|
-
def advanced_meshing(self):
|
|
65
|
+
def advanced_meshing(self) -> HFSSAdvancedMeshingSettings:
|
|
66
66
|
"""Advanced meshing class.
|
|
67
67
|
|
|
68
68
|
Returns
|
|
@@ -74,7 +74,7 @@ class HFSSSimulationSettings(GrpcHFSSSimulationSettings):
|
|
|
74
74
|
return HFSSAdvancedMeshingSettings(self._pedb, self.advanced_meshing)
|
|
75
75
|
|
|
76
76
|
@property
|
|
77
|
-
def dcr(self):
|
|
77
|
+
def dcr(self) -> HFSSDCRSettings:
|
|
78
78
|
"""Dcr.
|
|
79
79
|
|
|
80
80
|
Returns
|
|
@@ -85,7 +85,7 @@ class HFSSSimulationSettings(GrpcHFSSSimulationSettings):
|
|
|
85
85
|
return HFSSDCRSettings(self._pedb, self.dcr)
|
|
86
86
|
|
|
87
87
|
@property
|
|
88
|
-
def general(self):
|
|
88
|
+
def general(self) -> HFSSGeneralSettings:
|
|
89
89
|
"""General settings class.
|
|
90
90
|
|
|
91
91
|
Returns
|
|
@@ -96,7 +96,7 @@ class HFSSSimulationSettings(GrpcHFSSSimulationSettings):
|
|
|
96
96
|
return HFSSGeneralSettings(self._pedb, self.general)
|
|
97
97
|
|
|
98
98
|
@property
|
|
99
|
-
def options(self):
|
|
99
|
+
def options(self) -> HFSSSettingsOptions:
|
|
100
100
|
"""HFSS option class.
|
|
101
101
|
|
|
102
102
|
Returns
|
|
@@ -107,7 +107,7 @@ class HFSSSimulationSettings(GrpcHFSSSimulationSettings):
|
|
|
107
107
|
return HFSSSettingsOptions(self._pedb, self.options)
|
|
108
108
|
|
|
109
109
|
@property
|
|
110
|
-
def solver(self):
|
|
110
|
+
def solver(self) -> HFSSSolverSettings:
|
|
111
111
|
"""HFSS solver settings class.
|
|
112
112
|
|
|
113
113
|
Returns
|
|
@@ -43,7 +43,7 @@ class HfssSimulationSetup(GrpcHfssSimulationSetup):
|
|
|
43
43
|
self._pedb = pedb
|
|
44
44
|
self._name = name
|
|
45
45
|
|
|
46
|
-
def set_solution_single_frequency(self, frequency="5GHz", max_num_passes=10, max_delta_s=0.02):
|
|
46
|
+
def set_solution_single_frequency(self, frequency="5GHz", max_num_passes=10, max_delta_s=0.02) -> bool:
|
|
47
47
|
"""Set HFSS single frequency solution.
|
|
48
48
|
Parameters
|
|
49
49
|
----------
|
|
@@ -70,7 +70,7 @@ class HfssSimulationSetup(GrpcHfssSimulationSetup):
|
|
|
70
70
|
except:
|
|
71
71
|
return False
|
|
72
72
|
|
|
73
|
-
def set_solution_multi_frequencies(self, frequencies="5GHz", max_delta_s=0.02):
|
|
73
|
+
def set_solution_multi_frequencies(self, frequencies="5GHz", max_delta_s=0.02) -> bool:
|
|
74
74
|
"""Set HFSS setup multi frequencies adaptive.
|
|
75
75
|
|
|
76
76
|
Parameters
|
|
@@ -40,7 +40,7 @@ class RaptorXSimulationSettings(GrpcRaptorXSimulationSettings):
|
|
|
40
40
|
self._pedb = pedb
|
|
41
41
|
|
|
42
42
|
@property
|
|
43
|
-
def advanced(self):
|
|
43
|
+
def advanced(self) -> RaptorXAdvancedSettings:
|
|
44
44
|
"""Advanced class.
|
|
45
45
|
|
|
46
46
|
Returns
|
|
@@ -52,7 +52,7 @@ class RaptorXSimulationSettings(GrpcRaptorXSimulationSettings):
|
|
|
52
52
|
return RaptorXAdvancedSettings(self._pedb, self.advanced)
|
|
53
53
|
|
|
54
54
|
@property
|
|
55
|
-
def general(self):
|
|
55
|
+
def general(self) -> RaptorXGeneralSettings:
|
|
56
56
|
"""General settings class.
|
|
57
57
|
|
|
58
58
|
Returns
|
|
@@ -38,8 +38,8 @@ class SiwaveSimulationSetup(GrpcSIWaveSimulationSetup):
|
|
|
38
38
|
self._pedb = pedb
|
|
39
39
|
|
|
40
40
|
@property
|
|
41
|
-
def type(self):
|
|
42
|
-
"""
|
|
41
|
+
def type(self) -> str:
|
|
42
|
+
"""Simulation setup type.
|
|
43
43
|
|
|
44
44
|
Returns
|
|
45
45
|
-------
|
|
@@ -65,7 +65,7 @@ class SiwaveSimulationSetup(GrpcSIWaveSimulationSetup):
|
|
|
65
65
|
step="10MHz",
|
|
66
66
|
discrete=False,
|
|
67
67
|
frequency_set=None,
|
|
68
|
-
):
|
|
68
|
+
) -> bool:
|
|
69
69
|
"""Add a HFSS frequency sweep.
|
|
70
70
|
|
|
71
71
|
Parameters
|