pyedb 0.23.0__py3-none-any.whl → 0.24.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.
- pyedb/__init__.py +1 -1
- pyedb/dotnet/edb.py +35 -33
- pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +11 -0
- pyedb/dotnet/edb_core/cell/layout.py +30 -23
- pyedb/dotnet/edb_core/cell/layout_obj.py +0 -9
- pyedb/dotnet/edb_core/cell/primitive/__init__.py +3 -0
- pyedb/dotnet/edb_core/cell/{primitive.py → primitive/bondwire.py} +1 -146
- pyedb/dotnet/edb_core/cell/primitive/path.py +351 -0
- pyedb/dotnet/edb_core/cell/primitive/primitive.py +895 -0
- pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py +0 -4
- pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py +1 -1
- pyedb/dotnet/edb_core/components.py +12 -5
- pyedb/dotnet/edb_core/dotnet/database.py +1 -23
- pyedb/dotnet/edb_core/dotnet/primitive.py +3 -139
- pyedb/dotnet/edb_core/edb_data/nets_data.py +1 -11
- pyedb/dotnet/edb_core/edb_data/padstacks_data.py +10 -24
- pyedb/dotnet/edb_core/edb_data/primitives_data.py +56 -868
- pyedb/dotnet/edb_core/geometry/polygon_data.py +43 -0
- pyedb/dotnet/edb_core/hfss.py +26 -22
- pyedb/dotnet/edb_core/layout_validation.py +3 -3
- pyedb/dotnet/edb_core/modeler.py +64 -81
- pyedb/dotnet/edb_core/nets.py +5 -4
- pyedb/dotnet/edb_core/padstack.py +12 -13
- pyedb/dotnet/edb_core/siwave.py +1 -1
- pyedb/dotnet/edb_core/stackup.py +3 -3
- pyedb/ipc2581/ecad/cad_data/layer_feature.py +1 -1
- pyedb/ipc2581/ecad/cad_data/polygon.py +2 -2
- pyedb/ipc2581/ecad/cad_data/step.py +2 -2
- pyedb/siwave.py +99 -0
- {pyedb-0.23.0.dist-info → pyedb-0.24.0.dist-info}/METADATA +2 -2
- {pyedb-0.23.0.dist-info → pyedb-0.24.0.dist-info}/RECORD +33 -30
- {pyedb-0.23.0.dist-info → pyedb-0.24.0.dist-info}/LICENSE +0 -0
- {pyedb-0.23.0.dist-info → pyedb-0.24.0.dist-info}/WHEEL +0 -0
|
@@ -29,12 +29,12 @@ import warnings
|
|
|
29
29
|
import rtree
|
|
30
30
|
|
|
31
31
|
from pyedb.dotnet.clr_module import Array
|
|
32
|
-
from pyedb.dotnet.edb_core.dotnet.database import PolygonDataDotNet
|
|
33
32
|
from pyedb.dotnet.edb_core.edb_data.padstacks_data import (
|
|
34
33
|
EDBPadstack,
|
|
35
34
|
EDBPadstackInstance,
|
|
36
35
|
)
|
|
37
36
|
from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
|
|
37
|
+
from pyedb.dotnet.edb_core.geometry.polygon_data import PolygonData
|
|
38
38
|
from pyedb.generic.general_methods import generate_unique_name
|
|
39
39
|
from pyedb.modeler.geometry_operators import GeometryOperators
|
|
40
40
|
|
|
@@ -240,9 +240,7 @@ class EdbPadstacks(object):
|
|
|
240
240
|
padstack_instances = {}
|
|
241
241
|
for _, edb_padstack_instance in self.instances.items():
|
|
242
242
|
if edb_padstack_instance.aedt_name:
|
|
243
|
-
padstack_instances[edb_padstack_instance.aedt_name] =
|
|
244
|
-
edb_padstack_instance, self._pedb
|
|
245
|
-
)
|
|
243
|
+
padstack_instances[edb_padstack_instance.aedt_name] = edb_padstack_instance
|
|
246
244
|
return padstack_instances
|
|
247
245
|
|
|
248
246
|
def find_instance_by_id(self, value: int):
|
|
@@ -491,7 +489,7 @@ class EdbPadstacks(object):
|
|
|
491
489
|
padstackInst = self.instances[padstackInst]._edb_padstackinstance
|
|
492
490
|
|
|
493
491
|
else:
|
|
494
|
-
psdef = padstackInst.GetPadstackDef()
|
|
492
|
+
psdef = padstackInst._edb_object.GetPadstackDef()
|
|
495
493
|
newdefdata = self._edb.definition.PadstackDefData(psdef.GetData())
|
|
496
494
|
newdefdata.SetSolderBallShape(self._edb.definition.SolderballShape.Cylinder)
|
|
497
495
|
newdefdata.SetSolderBallParameter(self._get_edb_value(ballDiam), self._get_edb_value(ballDiam))
|
|
@@ -504,7 +502,7 @@ class EdbPadstacks(object):
|
|
|
504
502
|
psdef.SetData(newdefdata)
|
|
505
503
|
sball_layer = [lay._edb_layer for lay in list(self._layers.values()) if lay.name == sballLayer_name][0]
|
|
506
504
|
if sball_layer is not None:
|
|
507
|
-
padstackInst.SetSolderBallLayer(sball_layer)
|
|
505
|
+
padstackInst._edb_object.SetSolderBallLayer(sball_layer)
|
|
508
506
|
return True
|
|
509
507
|
|
|
510
508
|
return False
|
|
@@ -757,6 +755,7 @@ class EdbPadstacks(object):
|
|
|
757
755
|
if not isinstance(net_list, list):
|
|
758
756
|
net_list = [net_list]
|
|
759
757
|
layout_lobj_collection = self._layout.padstack_instances
|
|
758
|
+
layout_lobj_collection = [i._edb_object for i in layout_lobj_collection]
|
|
760
759
|
via_list = []
|
|
761
760
|
for lobj in layout_lobj_collection:
|
|
762
761
|
pad_layers_name = lobj.GetPadstackDef().GetData().GetLayerNames()
|
|
@@ -955,8 +954,8 @@ class EdbPadstacks(object):
|
|
|
955
954
|
_poly.delete()
|
|
956
955
|
else:
|
|
957
956
|
return False
|
|
958
|
-
elif isinstance(polygon_hole,
|
|
959
|
-
hole_param = polygon_hole.
|
|
957
|
+
elif isinstance(polygon_hole, PolygonData):
|
|
958
|
+
hole_param = polygon_hole._edb_object
|
|
960
959
|
else:
|
|
961
960
|
return False
|
|
962
961
|
padstackData.SetPolygonalHoleParameters(hole_param, value0, value0, value0)
|
|
@@ -1007,7 +1006,7 @@ class EdbPadstacks(object):
|
|
|
1007
1006
|
_poly.delete()
|
|
1008
1007
|
else:
|
|
1009
1008
|
return False
|
|
1010
|
-
elif isinstance(pad_polygon,
|
|
1009
|
+
elif isinstance(pad_polygon, PolygonData):
|
|
1011
1010
|
pad_array = pad_polygon
|
|
1012
1011
|
if antipad_shape == "Bullet": # pragma no cover
|
|
1013
1012
|
antipad_array = Array[type(x_size)]([x_size, y_size, corner_radius])
|
|
@@ -1023,7 +1022,7 @@ class EdbPadstacks(object):
|
|
|
1023
1022
|
_poly.delete()
|
|
1024
1023
|
else:
|
|
1025
1024
|
return False
|
|
1026
|
-
elif isinstance(antipad_polygon,
|
|
1025
|
+
elif isinstance(antipad_polygon, PolygonData):
|
|
1027
1026
|
antipad_array = antipad_polygon
|
|
1028
1027
|
else: # pragma no cover
|
|
1029
1028
|
antipad_array = Array[type(antipaddiam)]([antipaddiam])
|
|
@@ -1035,7 +1034,7 @@ class EdbPadstacks(object):
|
|
|
1035
1034
|
padstackData.SetPolygonalPadParameters(
|
|
1036
1035
|
layer,
|
|
1037
1036
|
self._edb.definition.PadType.RegularPad,
|
|
1038
|
-
pad_array.
|
|
1037
|
+
pad_array._edb_object,
|
|
1039
1038
|
pad_offset_x,
|
|
1040
1039
|
pad_offset_y,
|
|
1041
1040
|
pad_rotation,
|
|
@@ -1043,7 +1042,7 @@ class EdbPadstacks(object):
|
|
|
1043
1042
|
padstackData.SetPolygonalPadParameters(
|
|
1044
1043
|
layer,
|
|
1045
1044
|
self._edb.definition.PadType.AntiPad,
|
|
1046
|
-
antipad_array.
|
|
1045
|
+
antipad_array._edb_object,
|
|
1047
1046
|
pad_offset_x,
|
|
1048
1047
|
pad_offset_y,
|
|
1049
1048
|
pad_rotation,
|
|
@@ -1208,7 +1207,7 @@ class EdbPadstacks(object):
|
|
|
1208
1207
|
solderlayer,
|
|
1209
1208
|
None,
|
|
1210
1209
|
)
|
|
1211
|
-
padstack_instance.
|
|
1210
|
+
padstack_instance.is_layout_pin = is_pin
|
|
1212
1211
|
py_padstack_instance = EDBPadstackInstance(padstack_instance.api_object, self._pedb)
|
|
1213
1212
|
|
|
1214
1213
|
return py_padstack_instance
|
pyedb/dotnet/edb_core/siwave.py
CHANGED
|
@@ -912,7 +912,7 @@ class EdbSiwave(object):
|
|
|
912
912
|
Name of the source.
|
|
913
913
|
|
|
914
914
|
"""
|
|
915
|
-
if source.name in [i.
|
|
915
|
+
if source.name in [i.name for i in self._layout.terminals]:
|
|
916
916
|
source.name = generate_unique_name(source.name, n=3)
|
|
917
917
|
self._logger.warning("Port already exists with same name. Renaming to {}".format(source.name))
|
|
918
918
|
pos_pin_group = self._pedb.components.create_pingroup_from_pins(source.positive_node.node_pins)
|
pyedb/dotnet/edb_core/stackup.py
CHANGED
|
@@ -217,7 +217,7 @@ class LayerCollection(object):
|
|
|
217
217
|
kwargs["layer_type"] = layer_type
|
|
218
218
|
return self._add_layer(add_method="add_layer_above", base_layer_name=base_layer_name, **kwargs)
|
|
219
219
|
|
|
220
|
-
def add_document_layer(self, name, layer_type="
|
|
220
|
+
def add_document_layer(self, name, layer_type="user", **kwargs):
|
|
221
221
|
"""Add a document layer.
|
|
222
222
|
|
|
223
223
|
Parameters
|
|
@@ -225,7 +225,7 @@ class LayerCollection(object):
|
|
|
225
225
|
name : str
|
|
226
226
|
Name of the layer.
|
|
227
227
|
layer_type: str, optional
|
|
228
|
-
Type of the layer. The default
|
|
228
|
+
Type of the layer. The default is ``"user"``. Options are ``"user"``, ``"outline"``
|
|
229
229
|
kwargs
|
|
230
230
|
|
|
231
231
|
Returns
|
|
@@ -1800,7 +1800,7 @@ class Stackup(LayerCollection):
|
|
|
1800
1800
|
temp_data = {name: 0 for name, _ in self.signal_layers.items()}
|
|
1801
1801
|
outline_area = 0
|
|
1802
1802
|
for i in self._pedb.modeler.primitives:
|
|
1803
|
-
layer_name = i.
|
|
1803
|
+
layer_name = i.layer.name
|
|
1804
1804
|
if layer_name.lower() == "outline":
|
|
1805
1805
|
if i.area() > outline_area:
|
|
1806
1806
|
outline_area = i.area()
|
|
@@ -113,7 +113,7 @@ class LayerFeature(object):
|
|
|
113
113
|
is_via = False
|
|
114
114
|
if not pin.start_layer == pin.stop_layer:
|
|
115
115
|
is_via = True
|
|
116
|
-
pin_net = pin.GetNet().GetName()
|
|
116
|
+
pin_net = pin._edb_object.GetNet().GetName()
|
|
117
117
|
pos_rot = pin._edb_padstackinstance.GetPositionAndRotationValue()
|
|
118
118
|
pin_rotation = pos_rot[2].ToDouble()
|
|
119
119
|
if pin._edb_padstackinstance.IsLayoutPin():
|
|
@@ -35,7 +35,7 @@ class Polygon(object):
|
|
|
35
35
|
|
|
36
36
|
def add_poly_step(self, polygon=None): # pragma no cover
|
|
37
37
|
if polygon:
|
|
38
|
-
polygon_data = polygon.GetPolygonData()
|
|
38
|
+
polygon_data = polygon._edb_object.GetPolygonData()
|
|
39
39
|
if polygon_data.IsClosed():
|
|
40
40
|
arcs = polygon_data.GetArcData()
|
|
41
41
|
if not arcs:
|
|
@@ -64,7 +64,7 @@ class Polygon(object):
|
|
|
64
64
|
new_poly_step.clock_wise = not arc.IsCCW()
|
|
65
65
|
self.poly_steps.append(new_poly_step)
|
|
66
66
|
for void in polygon.voids:
|
|
67
|
-
void_polygon_data = void.GetPolygonData()
|
|
67
|
+
void_polygon_data = void._edb_object.GetPolygonData()
|
|
68
68
|
if void_polygon_data.IsClosed():
|
|
69
69
|
void_arcs = void_polygon_data.GetArcData()
|
|
70
70
|
if not void_arcs:
|
|
@@ -89,7 +89,7 @@ class Step(object):
|
|
|
89
89
|
net_name = net.name
|
|
90
90
|
logical_net = LogicalNet()
|
|
91
91
|
logical_net.name = net_name
|
|
92
|
-
net_pins = list(net.PadstackInstances)
|
|
92
|
+
net_pins = list(net._edb_object.PadstackInstances)
|
|
93
93
|
for pin in net_pins:
|
|
94
94
|
new_pin_ref = logical_net.get_pin_ref_def()
|
|
95
95
|
new_pin_ref.pin = pin.GetName()
|
|
@@ -250,7 +250,7 @@ class Step(object):
|
|
|
250
250
|
)
|
|
251
251
|
if pdef_name in padstack_defs:
|
|
252
252
|
padstack_def = padstack_defs[pdef_name]
|
|
253
|
-
comp_name = padstack_instance.GetComponent().GetName()
|
|
253
|
+
comp_name = padstack_instance._edb_object.GetComponent().GetName()
|
|
254
254
|
if padstack_instance.is_pin and comp_name:
|
|
255
255
|
component_inst = self._pedb.components.instances[comp_name]
|
|
256
256
|
layers[layer_name].add_component_padstack_instance_feature(
|
pyedb/siwave.py
CHANGED
|
@@ -9,11 +9,14 @@ automatically initialized by an app to the latest installed AEDT version.
|
|
|
9
9
|
from __future__ import absolute_import # noreorder
|
|
10
10
|
|
|
11
11
|
import os
|
|
12
|
+
from pathlib import Path
|
|
12
13
|
import pkgutil
|
|
13
14
|
import sys
|
|
15
|
+
import tempfile
|
|
14
16
|
import time
|
|
15
17
|
import warnings
|
|
16
18
|
|
|
19
|
+
from pyedb import Edb
|
|
17
20
|
from pyedb.dotnet.clr_module import _clr
|
|
18
21
|
from pyedb.edb_logger import pyedb_logger
|
|
19
22
|
from pyedb.generic.general_methods import _pythonver, is_windows
|
|
@@ -28,6 +31,7 @@ def wait_export_file(flag, file_path, time_sleep=0.5):
|
|
|
28
31
|
else:
|
|
29
32
|
time.sleep(1)
|
|
30
33
|
os.path.getsize(file_path)
|
|
34
|
+
|
|
31
35
|
while True:
|
|
32
36
|
file_size = os.path.getsize(file_path)
|
|
33
37
|
if file_size > 0:
|
|
@@ -37,6 +41,17 @@ def wait_export_file(flag, file_path, time_sleep=0.5):
|
|
|
37
41
|
return True
|
|
38
42
|
|
|
39
43
|
|
|
44
|
+
def wait_export_folder(flag, folder_path, time_sleep=0.5):
|
|
45
|
+
while True:
|
|
46
|
+
if os.path.exists(folder_path):
|
|
47
|
+
for root, _, files in os.walk(folder_path):
|
|
48
|
+
if any(os.path.getsize(os.path.join(root, file)) > 0 for file in files):
|
|
49
|
+
return True
|
|
50
|
+
|
|
51
|
+
# Wait before checking again.
|
|
52
|
+
time.sleep(time_sleep)
|
|
53
|
+
|
|
54
|
+
|
|
40
55
|
class Siwave(object): # pragma no cover
|
|
41
56
|
"""Initializes SIwave based on the inputs provided and manages SIwave release and closing.
|
|
42
57
|
|
|
@@ -425,3 +440,87 @@ class Siwave(object): # pragma no cover
|
|
|
425
440
|
|
|
426
441
|
"""
|
|
427
442
|
return self.oproject.ScrRunIcepakSimulation(icepak_simulation_name, dc_simulation_name)
|
|
443
|
+
|
|
444
|
+
def export_edb(self, file_path: str):
|
|
445
|
+
"""Export the layout as EDB.
|
|
446
|
+
|
|
447
|
+
Parameters
|
|
448
|
+
----------
|
|
449
|
+
file_path : str
|
|
450
|
+
Path to the EDB.
|
|
451
|
+
|
|
452
|
+
Returns
|
|
453
|
+
-------
|
|
454
|
+
bool
|
|
455
|
+
"""
|
|
456
|
+
if isinstance(file_path, Path):
|
|
457
|
+
file_path = str(file_path)
|
|
458
|
+
flag = self.oproject.ScrExportEDB(file_path)
|
|
459
|
+
if flag == 0:
|
|
460
|
+
self._logger.info(f"Exporting EDB to {file_path}.")
|
|
461
|
+
return wait_export_folder(flag, file_path, time_sleep=1)
|
|
462
|
+
else: # pragma no cover
|
|
463
|
+
raise RuntimeError(f"Failed to export EDB to {file_path}.")
|
|
464
|
+
|
|
465
|
+
def import_edb(self, file_path: str):
|
|
466
|
+
"""Import layout from EDB.
|
|
467
|
+
|
|
468
|
+
Parameters
|
|
469
|
+
----------
|
|
470
|
+
file_path : Str
|
|
471
|
+
Path to the EDB file.
|
|
472
|
+
Returns
|
|
473
|
+
-------
|
|
474
|
+
bool
|
|
475
|
+
"""
|
|
476
|
+
if isinstance(file_path, Path):
|
|
477
|
+
file_path = str(file_path)
|
|
478
|
+
flag = self.oproject.ScrImportEDB(file_path)
|
|
479
|
+
if flag == 0:
|
|
480
|
+
self._logger.info(f"Importing EDB to {file_path}.")
|
|
481
|
+
return True
|
|
482
|
+
else: # pragma no cover
|
|
483
|
+
raise RuntimeError(f"Failed to import EDB to {file_path}.")
|
|
484
|
+
|
|
485
|
+
def load_configuration(self, file_path: str):
|
|
486
|
+
"""Load configuration settings from a configure file.Import
|
|
487
|
+
|
|
488
|
+
Parameters
|
|
489
|
+
----------
|
|
490
|
+
file_path : str
|
|
491
|
+
Path to the configuration file.
|
|
492
|
+
"""
|
|
493
|
+
if isinstance(file_path, Path):
|
|
494
|
+
file_path = str(file_path)
|
|
495
|
+
|
|
496
|
+
temp_folder = tempfile.TemporaryDirectory(suffix=".ansys")
|
|
497
|
+
temp_edb = os.path.join(temp_folder.name, "temp.aedb")
|
|
498
|
+
|
|
499
|
+
self.export_edb(temp_edb)
|
|
500
|
+
self.save_project()
|
|
501
|
+
self.oproject.ScrCloseProject()
|
|
502
|
+
edbapp = Edb(temp_edb, edbversion=self.current_version)
|
|
503
|
+
edbapp.configuration.load(file_path)
|
|
504
|
+
edbapp.configuration.run()
|
|
505
|
+
edbapp.save()
|
|
506
|
+
edbapp.close()
|
|
507
|
+
self.import_edb(temp_edb)
|
|
508
|
+
|
|
509
|
+
def export_configuration(self, file_path: str):
|
|
510
|
+
"""Export layout information into a configuration file.
|
|
511
|
+
|
|
512
|
+
Parameters
|
|
513
|
+
----------
|
|
514
|
+
file_path : str
|
|
515
|
+
Path to the configuration file.
|
|
516
|
+
"""
|
|
517
|
+
if isinstance(file_path, Path):
|
|
518
|
+
file_path = str(file_path)
|
|
519
|
+
|
|
520
|
+
temp_folder = tempfile.TemporaryDirectory(suffix=".ansys")
|
|
521
|
+
temp_edb = os.path.join(temp_folder.name, "temp.aedb")
|
|
522
|
+
|
|
523
|
+
self.export_edb(temp_edb)
|
|
524
|
+
edbapp = Edb(temp_edb, edbversion=self.current_version)
|
|
525
|
+
edbapp.configuration.export(file_path)
|
|
526
|
+
edbapp.close()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.24.0
|
|
4
4
|
Summary: Higher-Level Pythonic Ansys Electronics Data Base
|
|
5
5
|
Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
|
|
6
6
|
Maintainer-email: PyEDB developers <simon.vandenbrouck@ansys.com>
|
|
@@ -40,7 +40,7 @@ Requires-Dist: Sphinx>=7.1.0,<7.4 ; extra == "doc"
|
|
|
40
40
|
Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version == '3.8')
|
|
41
41
|
Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version > '3.8')
|
|
42
42
|
Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
|
|
43
|
-
Requires-Dist: sphinx-gallery>=0.14.0,<0.
|
|
43
|
+
Requires-Dist: sphinx-gallery>=0.14.0,<0.18 ; extra == "doc"
|
|
44
44
|
Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
|
|
45
45
|
Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "full"
|
|
46
46
|
Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "tests"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
pyedb/__init__.py,sha256=
|
|
1
|
+
pyedb/__init__.py,sha256=Chvf1Pw0bR7i5T4tBFP8S_KsnyyrNNlKEd5zobtcK48,1521
|
|
2
2
|
pyedb/edb_logger.py,sha256=yNkXnoL2me7ubLT6O6r6ElVnkZ1g8fmfFYC_2XJZ1Sw,14950
|
|
3
3
|
pyedb/exceptions.py,sha256=n94xluzUks6BA24vd_L6HkrvoP_H_l6__hQmqzdCyPo,111
|
|
4
|
-
pyedb/siwave.py,sha256=
|
|
4
|
+
pyedb/siwave.py,sha256=Mo-8ETIwTbPNbqfaDJkbl_G3Dp8mdtYFl54Ms9sGAZo,16004
|
|
5
5
|
pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
|
|
6
6
|
pyedb/component_libraries/ansys_components.py,sha256=afelGEPmQzbFOIkHnvnWosSs3CqDT5j_kr_1bhrdfnI,3336
|
|
7
7
|
pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -23,39 +23,42 @@ pyedb/configuration/cfg_stackup.py,sha256=CX7uNN5QRoYW_MOObknP8003YchTS7PH9Oee7F
|
|
|
23
23
|
pyedb/configuration/configuration.py,sha256=ss0Jqj0pp4Up-4Hm-jBQGSAmF4uQjaELfyhxqPE2z4o,12627
|
|
24
24
|
pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
25
|
pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
|
|
26
|
-
pyedb/dotnet/edb.py,sha256=
|
|
26
|
+
pyedb/dotnet/edb.py,sha256=7sNO4RxRPb3q_g5FYEiYfFS6jcNeqj8EW19JFk7dMxI,181348
|
|
27
27
|
pyedb/dotnet/application/Variables.py,sha256=v_fxFJ6xjyyhk4uaMzWAbP-1FhXGuKsVNuyV1huaPME,77867
|
|
28
28
|
pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
29
|
pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
|
|
30
|
-
pyedb/dotnet/edb_core/components.py,sha256=
|
|
30
|
+
pyedb/dotnet/edb_core/components.py,sha256=Hi07An_cDV8CPlMV11BNQMFm823oz8-nfWXpbqYPKoQ,110543
|
|
31
31
|
pyedb/dotnet/edb_core/general.py,sha256=1g2bUekyUbu8p8zCinT4eI7uqRGIK8tY8mfuFePGRGg,4415
|
|
32
|
-
pyedb/dotnet/edb_core/hfss.py,sha256=
|
|
32
|
+
pyedb/dotnet/edb_core/hfss.py,sha256=C6-to6YKoruQjRWedLY7agkTVQv4Hb2U2qX-iPzHOI0,68655
|
|
33
33
|
pyedb/dotnet/edb_core/layout_obj_instance.py,sha256=Pd8rfdO3b6HLFGwXBMw-tfE4LPIcW_9_X5KEdFaiito,1407
|
|
34
|
-
pyedb/dotnet/edb_core/layout_validation.py,sha256=
|
|
34
|
+
pyedb/dotnet/edb_core/layout_validation.py,sha256=B2FIHsize6JZ5VhwN_3zBniK7iRC6dd01ujXYiliK0A,12604
|
|
35
35
|
pyedb/dotnet/edb_core/materials.py,sha256=zzYWIJ5dvOIO2H2vREpRnwGDx0hEa5QhCsg_EJkydww,43222
|
|
36
|
-
pyedb/dotnet/edb_core/modeler.py,sha256=
|
|
36
|
+
pyedb/dotnet/edb_core/modeler.py,sha256=iu16E6GXLlJZvsI_WTphyDDbFKX-i6_crFclTnNa--8,55316
|
|
37
37
|
pyedb/dotnet/edb_core/net_class.py,sha256=4U6Cc1Gn7ZJ_ub9uKmtrsoz5wD1XS42afci3Y3ewRp0,11354
|
|
38
|
-
pyedb/dotnet/edb_core/nets.py,sha256=
|
|
39
|
-
pyedb/dotnet/edb_core/padstack.py,sha256=
|
|
40
|
-
pyedb/dotnet/edb_core/siwave.py,sha256=
|
|
41
|
-
pyedb/dotnet/edb_core/stackup.py,sha256=
|
|
38
|
+
pyedb/dotnet/edb_core/nets.py,sha256=JZvrlPOKiRjbHAX6GkrYKvaXujHS3lz-rucS0Ib8ezk,43213
|
|
39
|
+
pyedb/dotnet/edb_core/padstack.py,sha256=al5cXfnJXyaM6-KCAd8D8-TZzcIXHwco8grD44U7gNY,63588
|
|
40
|
+
pyedb/dotnet/edb_core/siwave.py,sha256=4duoAsFCuPMNLxtMTEEVJCUaHKNkdbLDmtTXiD93VrM,64311
|
|
41
|
+
pyedb/dotnet/edb_core/stackup.py,sha256=_jvmLHpo5_4CM8V_xnB81WQrqJGsEHs3eECS8Y-buaQ,119804
|
|
42
42
|
pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
43
|
pyedb/dotnet/edb_core/cell/connectable.py,sha256=rKWPATg0GCHi4d1ftu2V7WWhkDONjloCSPujssie5a8,2310
|
|
44
|
-
pyedb/dotnet/edb_core/cell/layout.py,sha256=
|
|
45
|
-
pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=
|
|
46
|
-
pyedb/dotnet/edb_core/cell/primitive.py,sha256=WHiX5ROLMYf71ZuX-4TrOUhRcI6RLiUPap7AzajO2YA,11704
|
|
44
|
+
pyedb/dotnet/edb_core/cell/layout.py,sha256=wDJI5Urhif5QCKqkrqhN2eDviLCsiRf-hu1L59dbLAg,12114
|
|
45
|
+
pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=S42rdiI6gVqO77DV3ikc4YxTNufTuqW_X1G-2zkWArA,2765
|
|
47
46
|
pyedb/dotnet/edb_core/cell/voltage_regulator.py,sha256=-uAzuyERV6ca0bFRzdH4SllcpGY2D9JEdpS7RYaQt6c,5387
|
|
48
47
|
pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
48
|
pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=3dkbGO8Wsmbq3n9JaFixJXfvQ5aNqC8OMo43-KPukUc,33851
|
|
50
|
-
pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=
|
|
49
|
+
pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=OUNK6INKlbJkCbzy6jKZzrQs7fvCR1qiTjt7te0S7nQ,2160
|
|
51
50
|
pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=LwXE4VUfptG5rJ9gmAmye0hECBv7bUGtby1ZzNFkeT0,3198
|
|
52
51
|
pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py,sha256=fF6tY-6s-lW9EuvJ5sw3RlIkjuoSjeZbrNk5wG-_hzM,1356
|
|
53
52
|
pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py,sha256=4zo2ut6UAeJqxw70n1luWg2QGEeuMRoVcEcdC9bYG50,3846
|
|
54
53
|
pyedb/dotnet/edb_core/cell/hierarchy/s_parameter_model.py,sha256=o7Omw4R9uQGCBDj4dIU-R73Uf6v3p_zKLMAzJlaH9VA,1456
|
|
55
54
|
pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCskkqZ3rdVHMSS_fGlAfwJSk,1443
|
|
55
|
+
pyedb/dotnet/edb_core/cell/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
56
|
+
pyedb/dotnet/edb_core/cell/primitive/bondwire.py,sha256=fqIMdv0bNvk591DG6De5c--w9Rpkl5AOeo_qgzoPE6M,7322
|
|
57
|
+
pyedb/dotnet/edb_core/cell/primitive/path.py,sha256=XVN7dOVpccoBP28M8l5iMzK5QSQdHqpKqC4jK76UTis,12543
|
|
58
|
+
pyedb/dotnet/edb_core/cell/primitive/primitive.py,sha256=IMGIaPCY8wpq3uInizwc1ObmdsTn5kg9YEqk9uztRuU,29764
|
|
56
59
|
pyedb/dotnet/edb_core/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py,sha256=
|
|
58
|
-
pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py,sha256=
|
|
60
|
+
pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py,sha256=qM0wEXkZ-DpoJ6vlVa560Ce8IgOdp4vyIJPedvoa3O0,1977
|
|
61
|
+
pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py,sha256=lafPRrvsDPYKcysvrkO-5tEZXF3h4IcTXdeJgTjleuI,2158
|
|
59
62
|
pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py,sha256=HOMNvSj8thN3RgSg2eDb_CE8PpqkcVLrIYPZGOW-IQk,3803
|
|
60
63
|
pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py,sha256=M5qZNH-MLDkgSJABNVKmnBLyLgezm2fqJGl70EyPVUo,2586
|
|
61
64
|
pyedb/dotnet/edb_core/cell/terminal/point_terminal.py,sha256=DafZBGjUx_OE8gZWcUKPh4cH3BRkJSj9XolhzIPOE3I,2400
|
|
@@ -67,18 +70,18 @@ pyedb/dotnet/edb_core/definition/definition_obj.py,sha256=QKlR8DNpNaOd00sY1ybEZA
|
|
|
67
70
|
pyedb/dotnet/edb_core/definition/definitions.py,sha256=9Zjl5LNidDBk07m-QGpducWfFsyE52pScI8PC5f0doU,2383
|
|
68
71
|
pyedb/dotnet/edb_core/definition/package_def.py,sha256=UoYNdfrB5j0rG4OK94yE25dCTzHcpDjSEn4L2yF10YY,6145
|
|
69
72
|
pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
70
|
-
pyedb/dotnet/edb_core/dotnet/database.py,sha256=
|
|
71
|
-
pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=
|
|
73
|
+
pyedb/dotnet/edb_core/dotnet/database.py,sha256=9mfEg451IX3Y8PKnyhbVPApqtgmB9R4VTeWyfux8Q0A,36691
|
|
74
|
+
pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=GVXsOtTowFiuxFw-Sdv80lv0XZFpoLr4KIj80bEDd7U,49942
|
|
72
75
|
pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
76
|
pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=_W5DDBFvm4gTq8yCvhzfiWUsfpQK4PnLkjmntIYvW8E,48217
|
|
74
77
|
pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
|
|
75
78
|
pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
|
|
76
79
|
pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=hKFHWUl0_OCMEZJbQn5c8Y1a-BYKr8nAycIlrCoeufk,13005
|
|
77
80
|
pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=B6cClg5KTcKUn33jYccTN0uNZZ5dQ037WHCsI-vg3Us,25748
|
|
78
|
-
pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=
|
|
79
|
-
pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=
|
|
81
|
+
pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=Ifi5uSfnOuTLwesO9TS3_F-qa_8rpPXrJy6W5lvIWik,9684
|
|
82
|
+
pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=wOBO86cFGnx8OIsALzlQv59XeSGBhUYhJa7rksySGRE,77523
|
|
80
83
|
pyedb/dotnet/edb_core/edb_data/ports.py,sha256=wr2RQi8VExuNIVmnp7c4VpTIhODgthmJmHr01zO4ueo,8873
|
|
81
|
-
pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=
|
|
84
|
+
pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=AkZOS-Uam_SLXy1WpPPlSWCyD1IyQ8afxFcl8gi0A_E,15426
|
|
82
85
|
pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py,sha256=P37-OIsc8TuTC_s3CXRmvZcJqxAftHA7SATfEyoAnMM,20953
|
|
83
86
|
pyedb/dotnet/edb_core/edb_data/simulation_configuration.py,sha256=Z_Iuh7qgj9s0PwmlOOdBOC47imBTgWPAWt8KxGNZmZQ,100432
|
|
84
87
|
pyedb/dotnet/edb_core/edb_data/sources.py,sha256=jzC6p-fiuPEvZn3b9z1-X5UexW5jd48jZRamXillnXI,15700
|
|
@@ -86,7 +89,7 @@ pyedb/dotnet/edb_core/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e
|
|
|
86
89
|
pyedb/dotnet/edb_core/edb_data/variables.py,sha256=LS1jZPOYgRvf4cyKf_x8hI9Brs-qbh4wrHu_QGLElrg,3501
|
|
87
90
|
pyedb/dotnet/edb_core/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
88
91
|
pyedb/dotnet/edb_core/geometry/point_data.py,sha256=hC9cRuSnX4cwg09Jr0ZK7ZTjFf_4NwXJMGbZ3s-ULpQ,1590
|
|
89
|
-
pyedb/dotnet/edb_core/geometry/polygon_data.py,sha256=
|
|
92
|
+
pyedb/dotnet/edb_core/geometry/polygon_data.py,sha256=xVOru_HeSnJf3bczTgmV-Izrv-ae2b4270Xbck8LwFM,4593
|
|
90
93
|
pyedb/dotnet/edb_core/sim_setup_data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
91
94
|
pyedb/dotnet/edb_core/sim_setup_data/data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
92
95
|
pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py,sha256=tlHI7PUUoseNnJAtihpjb1PwXYNr-4ztAAnunlLLWVQ,2463
|
|
@@ -144,7 +147,7 @@ pyedb/ipc2581/ecad/cad_data/component.py,sha256=uE2_IyITp5TQ8y2K4ojk212471RPYrDw
|
|
|
144
147
|
pyedb/ipc2581/ecad/cad_data/drill.py,sha256=COfVTiOueJQhSd19eV1usuHp7BT8KrhDc9VXM-e7TkM,2083
|
|
145
148
|
pyedb/ipc2581/ecad/cad_data/feature.py,sha256=W2BSD8lBB3oBEhdqFe6V7chT5g_t7GA-uKE01cFUQpw,3023
|
|
146
149
|
pyedb/ipc2581/ecad/cad_data/layer.py,sha256=IA4De_4WgcTZi3d2o5FPptYjNobai3W3FexUT_4-t9o,2270
|
|
147
|
-
pyedb/ipc2581/ecad/cad_data/layer_feature.py,sha256=
|
|
150
|
+
pyedb/ipc2581/ecad/cad_data/layer_feature.py,sha256=7Gcp9jAgROCWsnkDXAxwhHiV529krxejAQy3JHbLzm4,8394
|
|
148
151
|
pyedb/ipc2581/ecad/cad_data/logical_net.py,sha256=6ChBFNDLqPLF-DzPWCfVwereiGNt0OGD5IbLF9ZHFTY,2042
|
|
149
152
|
pyedb/ipc2581/ecad/cad_data/outline.py,sha256=Nnb4FJQ9PsKAu8L0PBYRMLhAaBt39sXi0SQnjV8xamM,2197
|
|
150
153
|
pyedb/ipc2581/ecad/cad_data/package.py,sha256=38XBlIZVysF8F7nNuNWkkK7qWQ-7a6ZLLitOKONqgF4,5484
|
|
@@ -155,12 +158,12 @@ pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py,sha256=ihojy_KwERcIOOYVUIUMJD7fH
|
|
|
155
158
|
pyedb/ipc2581/ecad/cad_data/path.py,sha256=np8yAFhpua6kWzv5ObuaovLymwpFDatA0fZ1POiZoV8,4960
|
|
156
159
|
pyedb/ipc2581/ecad/cad_data/phy_net.py,sha256=d2keM6cOqATRbdrmTBcJREZjW_bVBXt5CEI44ksYTIo,3640
|
|
157
160
|
pyedb/ipc2581/ecad/cad_data/pin.py,sha256=15jx5iS29QRTuvJxt0k5AQD5HNP5Frv6qqH0sTHSBmM,2124
|
|
158
|
-
pyedb/ipc2581/ecad/cad_data/polygon.py,sha256=
|
|
161
|
+
pyedb/ipc2581/ecad/cad_data/polygon.py,sha256=sDN_ewBKIlDD394Zu_b2Xp203r-ZzDEn1k7EFhTA03k,8795
|
|
159
162
|
pyedb/ipc2581/ecad/cad_data/profile.py,sha256=H7f0KdCQJhR8bc7jn7rjUlLPLo0wr0x5sabxA47LEyw,2781
|
|
160
163
|
pyedb/ipc2581/ecad/cad_data/stackup.py,sha256=_CyyYwFjrVyQEpsL_4bFSz9U1sMTWhfLUov6RdhdITE,2274
|
|
161
164
|
pyedb/ipc2581/ecad/cad_data/stackup_group.py,sha256=zRtg9Va6SQn6eJOiB_8cvSptAbUa-SQbwB4e4Kr2N0Q,2717
|
|
162
165
|
pyedb/ipc2581/ecad/cad_data/stackup_layer.py,sha256=SMkX9wrHdxbVn6hcPqlAbWz14IKiVy3dg9Dj6V-dcGA,1970
|
|
163
|
-
pyedb/ipc2581/ecad/cad_data/step.py,sha256=
|
|
166
|
+
pyedb/ipc2581/ecad/cad_data/step.py,sha256=DT6KfkoGoov7o3HY3omYKVe1gWIbKLChEN11jlIhKE8,12319
|
|
164
167
|
pyedb/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
165
168
|
pyedb/misc/aedtlib_personalib_install.py,sha256=eCVAdEoriMU92bZwPzY9Aig85cBbUO0J8J4RMtMkY_o,1759
|
|
166
169
|
pyedb/misc/downloads.py,sha256=j9jJhwGTTJwm4WWaCSEhGZzOGyOyHhBAFexx0NtD4Uw,10824
|
|
@@ -182,7 +185,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
|
|
|
182
185
|
pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
|
|
183
186
|
pyedb/modeler/geometry_operators.py,sha256=g_Sy7a6R23sP6RtboJn1rl8uTuo8oeLmMF21rNkzwjk,74198
|
|
184
187
|
pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
|
|
185
|
-
pyedb-0.
|
|
186
|
-
pyedb-0.
|
|
187
|
-
pyedb-0.
|
|
188
|
-
pyedb-0.
|
|
188
|
+
pyedb-0.24.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
|
|
189
|
+
pyedb-0.24.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
190
|
+
pyedb-0.24.0.dist-info/METADATA,sha256=G3Lci5o6XNKqCo9-qFMpgqZ3Sd2ihk0vnFdJTWnk4b0,8387
|
|
191
|
+
pyedb-0.24.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|