pyedb 0.16.0__py3-none-any.whl → 0.18.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.

Files changed (32) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_components.py +47 -1
  3. pyedb/configuration/configuration.py +2 -0
  4. pyedb/dotnet/edb.py +133 -64
  5. pyedb/dotnet/edb_core/cell/hierarchy/component.py +12 -17
  6. pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +50 -0
  7. pyedb/dotnet/edb_core/cell/layout.py +0 -6
  8. pyedb/dotnet/edb_core/cell/voltage_regulator.py +0 -5
  9. pyedb/dotnet/edb_core/components.py +2 -2
  10. pyedb/dotnet/edb_core/dotnet/primitive.py +129 -3
  11. pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py +0 -460
  12. pyedb/dotnet/edb_core/edb_data/primitives_data.py +38 -38
  13. pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +1 -1
  14. pyedb/dotnet/edb_core/layout.py +21 -0
  15. pyedb/dotnet/edb_core/layout_validation.py +26 -0
  16. pyedb/dotnet/edb_core/nets.py +1 -1
  17. pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py +1 -1
  18. pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py +357 -0
  19. pyedb/dotnet/edb_core/siwave.py +14 -0
  20. pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py +83 -0
  21. pyedb/dotnet/edb_core/utilities/simulation_setup.py +7 -4
  22. pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +91 -0
  23. pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +70 -0
  24. pyedb/misc/siw_feature_config/xtalk_scan/net.py +69 -0
  25. pyedb/misc/siw_feature_config/xtalk_scan/pins.py +60 -0
  26. pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +88 -0
  27. pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +104 -0
  28. pyedb/workflow.py +32 -0
  29. {pyedb-0.16.0.dist-info → pyedb-0.18.0.dist-info}/METADATA +1 -1
  30. {pyedb-0.16.0.dist-info → pyedb-0.18.0.dist-info}/RECORD +32 -24
  31. {pyedb-0.16.0.dist-info → pyedb-0.18.0.dist-info}/LICENSE +0 -0
  32. {pyedb-0.16.0.dist-info → pyedb-0.18.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,69 @@
1
+ # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ from pyedb.generic.general_methods import ET
24
+
25
+
26
+ class SingleEndedNet:
27
+ """Single ended net class handler."""
28
+
29
+ def __init__(self):
30
+ self.name = None
31
+ self.nominal_impedance = None
32
+ self.warning_threshold = None
33
+ self.violation_threshold = None
34
+ self.fext_warning_threshold = None
35
+ self.fext_violation_threshold = None
36
+ self.next_warning_threshold = None
37
+ self.next_violation_threshold = None
38
+ self.driver_rise_time = None
39
+ self.voltage = None
40
+ self.driver_impedance = None
41
+ self.termination_impedance = None
42
+
43
+ def extend_xml(self, parent):
44
+ """Write XMl object section."""
45
+ net = ET.SubElement(parent, "Net")
46
+ if self.name is not None:
47
+ net.set("Name", self.name)
48
+ if self.nominal_impedance is not None:
49
+ net.set("NominalZ0", str(self.nominal_impedance))
50
+ if self.warning_threshold is not None:
51
+ net.set("WarningThreshold", str(self.warning_threshold))
52
+ if self.violation_threshold is not None:
53
+ net.set("ViolationThreshold", str(self.violation_threshold))
54
+ if self.fext_warning_threshold is not None:
55
+ net.set("FEXTWarningThreshold", str(self.fext_warning_threshold))
56
+ if self.fext_violation_threshold is not None:
57
+ net.set("FEXTViolationThreshold", str(self.fext_violation_threshold))
58
+ if self.next_warning_threshold is not None:
59
+ net.set("NEXTWarningThreshold", str(self.next_warning_threshold))
60
+ if self.next_violation_threshold is not None:
61
+ net.set("NEXTViolationThreshold", str(self.next_violation_threshold))
62
+ if self.driver_rise_time is not None:
63
+ net.set("DriverRiseTime", str(self.driver_rise_time))
64
+ if self.voltage is not None:
65
+ net.set("Voltage", str(self.voltage))
66
+ if self.driver_impedance is not None:
67
+ net.set("DriverImpedance", str(self.driver_impedance))
68
+ if self.termination_impedance is not None:
69
+ net.set("TerminationImpedance", str(self.termination_impedance))
@@ -0,0 +1,60 @@
1
+ # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+
24
+ from pyedb.generic.general_methods import ET
25
+
26
+
27
+ class DriverPin:
28
+ """Driver pin class handler."""
29
+
30
+ def __init__(self):
31
+ self.name = None
32
+ self.ref_des = None
33
+ self.driver_rise_time = None
34
+ self.voltage = None
35
+ self.driver_impedance = None
36
+
37
+ def extend_xml(self, parent):
38
+ """Write object to xml section."""
39
+ pin = ET.SubElement(parent, "Pin")
40
+ pin.set("Name", self.name)
41
+ pin.set("RefDes", self.ref_des)
42
+ pin.set("DriverRiseTime", str(self.driver_rise_time))
43
+ pin.set("Voltage", str(self.voltage))
44
+ pin.set("DriverImpedance", str(self.driver_impedance))
45
+
46
+
47
+ class ReceiverPin:
48
+ """Receiver pin class handler."""
49
+
50
+ def __init__(self):
51
+ self.name = None
52
+ self.ref_des = None
53
+ self.receiver_impedance = None
54
+
55
+ def extend_xml(self, parent):
56
+ """Write object to xml section."""
57
+ pin = ET.SubElement(parent, "Pin")
58
+ pin.set("Name", self.name)
59
+ pin.set("Name", self.name)
60
+ pin.set("ReceiverImpedance", str(self.receiver_impedance))
@@ -0,0 +1,88 @@
1
+ # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ from enum import Enum
24
+ import os
25
+ import xml.etree as ET
26
+
27
+ from pyedb.generic.general_methods import ET
28
+ from pyedb.misc.siw_feature_config.xtalk_scan.fd_xtalk_scan_config import (
29
+ CrosstalkFrequency,
30
+ )
31
+ from pyedb.misc.siw_feature_config.xtalk_scan.impedance_scan_config import ImpedanceScan
32
+ from pyedb.misc.siw_feature_config.xtalk_scan.td_xtalk_config import CrossTalkTime
33
+
34
+
35
+ class ScanType(Enum):
36
+ IMPEDANCE = 0
37
+ FREQ_XTALK = 1
38
+ TIME_XTALK = 2
39
+
40
+
41
+ class SiwaveScanConfig:
42
+ """XML control file handle for Siwave crosstalk scan."""
43
+
44
+ def __init__(self, pedb, scan_type="impedance"):
45
+ self._pedb = pedb
46
+ self.file_path = ""
47
+ if scan_type == "impedance":
48
+ self.scan_type = ScanType.IMPEDANCE
49
+ elif scan_type == "frequency_xtalk":
50
+ self.scan_type = ScanType.FREQ_XTALK
51
+ elif scan_type == "time_xtalk":
52
+ self.scan_type = ScanType.TIME_XTALK
53
+ else:
54
+ self._pedb.logger.error(f"No valid scan type argument : {scan_type}")
55
+ self._pedb.logger.error('Supported argument : "impedance", "frequency_xtalk", "time_xtalk"')
56
+
57
+ self.impedance_scan = ImpedanceScan(self._pedb)
58
+ self.frequency_xtalk_scan = CrosstalkFrequency(self._pedb)
59
+ self.time_xtalk_scan = CrossTalkTime(self._pedb)
60
+
61
+ def write_xml(self):
62
+ """Write XML control file
63
+
64
+ Returns
65
+ -------
66
+ bool
67
+ """
68
+ if not self.file_path:
69
+ self._pedb.logger.error("No xml file path provided, please provide absolute valid one.")
70
+ return False
71
+ self._pedb.logger.info(f"Parsing xml file")
72
+ scan_config = ET.Element("SiwaveScanConfig")
73
+ scan_config.set("xmlns", "http://webstds.ipc.org/2581")
74
+ scan_config.set("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")
75
+ if self.scan_type == ScanType.IMPEDANCE:
76
+ self.impedance_scan.extend_xml(scan_config)
77
+ elif self.scan_type == ScanType.FREQ_XTALK:
78
+ self.frequency_xtalk_scan.extend_xml(scan_config)
79
+ elif self.scan_type == ScanType.TIME_XTALK:
80
+ self.time_xtalk_scan.extend_xml(scan_config)
81
+ try:
82
+ ET.indent(scan_config)
83
+ except AttributeError:
84
+ pass
85
+ tree = ET.ElementTree(scan_config)
86
+ self._pedb.logger.info(f"Writing xml file")
87
+ tree.write(self.file_path)
88
+ return True if os.path.exists(self.file_path) else False
@@ -0,0 +1,104 @@
1
+ # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ from pyedb.generic.general_methods import ET
24
+ from pyedb.misc.siw_feature_config.xtalk_scan.net import SingleEndedNet
25
+ from pyedb.misc.siw_feature_config.xtalk_scan.pins import DriverPin, ReceiverPin
26
+
27
+
28
+ class CrossTalkTime:
29
+ """Time domain crosstalk configuration class handler."""
30
+
31
+ def __init__(self, pedb):
32
+ self._pedb = pedb
33
+ self.nets = {}
34
+ self.driver_pins = []
35
+ self.receiver_pins = []
36
+
37
+ def add_single_ended_net(
38
+ self,
39
+ name,
40
+ driver_rise_time=5.0,
41
+ voltage=10,
42
+ driver_impedance=5.0,
43
+ termination_impedance=5.0,
44
+ ):
45
+ """Add single ended net.
46
+
47
+ Parameters
48
+ ----------
49
+ name : str
50
+ Net name.
51
+ driver_rise_time : flot or str
52
+ Near end crosstalk warning threshold value. Default value is ``5.0``.
53
+ voltage : float, str
54
+ Near end crosstalk violation threshold value. Default value is ``10.0
55
+
56
+ driver_impedance : float, str
57
+ Far end crosstalk violation threshold value, Default value is ``5.0``
58
+ termination_impedance : float, str
59
+ Far end crosstalk warning threshold value, Default value is ``5.0``
60
+
61
+ Returns
62
+ -------
63
+ bool
64
+ """
65
+ if name and name not in self.nets:
66
+ net = SingleEndedNet()
67
+ net.name = name
68
+ net.driver_rise_time = driver_rise_time
69
+ net.voltage = voltage
70
+ net.driver_impedance = driver_impedance
71
+ net.termination_impedance = termination_impedance
72
+ self.nets[name] = net
73
+ return True
74
+ else:
75
+ self._pedb.logger.error(f"Net {name} already assigned.")
76
+ return False
77
+
78
+ def add_driver_pins(self, name, ref_des, rise_time="100ps", voltage=1.0, impedance=50.0):
79
+ pin = DriverPin()
80
+ pin.name = name
81
+ pin.ref_des = ref_des
82
+ pin.driver_rise_time = rise_time
83
+ pin.voltage = voltage
84
+ pin.driver_impedance = impedance
85
+ self.driver_pins.append(pin)
86
+
87
+ def add_receiver_pin(self, name, ref_des, impedance):
88
+ pin = ReceiverPin()
89
+ pin.name = name
90
+ pin.ref_des = ref_des
91
+ pin.receiver_impedance = impedance
92
+ self.receiver_pins.append(pin)
93
+
94
+ def extend_xml(self, parent):
95
+ time_scan = ET.SubElement(parent, "TdXtalkConfig")
96
+ single_ended_nets = ET.SubElement(time_scan, "SingleEndedNets")
97
+ for net in list(self.nets.values()):
98
+ net.extend_xml(single_ended_nets)
99
+ driver_pins = ET.SubElement(time_scan, "DriverPins")
100
+ for pin in self.driver_pins:
101
+ pin.extend_xml(driver_pins)
102
+ receiver_pins = ET.SubElement(time_scan, "ReceiverPins")
103
+ for pin in self.receiver_pins:
104
+ pin.extend_xml(receiver_pins)
pyedb/workflow.py ADDED
@@ -0,0 +1,32 @@
1
+ from pathlib import Path
2
+ from typing import Union
3
+
4
+ import pandas as pd
5
+
6
+
7
+ class Workflow:
8
+ def __init__(self, pedb):
9
+ self._pedb = pedb
10
+
11
+ def export_bill_of_materials(self, file_path: Union[str, Path]):
12
+ """Export bill of materials to a csv file.
13
+
14
+ Parameters
15
+ ----------
16
+ file_path : Union[str, Path]
17
+ Path to the csv file.
18
+
19
+ Returns
20
+ -------
21
+
22
+ """
23
+ file_path = str(file_path)
24
+ data = self._pedb.configuration.get_data_from_db(components=True)
25
+ comps = data["components"]
26
+ temp = []
27
+ for comp in comps:
28
+ comp_attrs = {k: v for k, v in comp.items() if isinstance(v, Union[str, float, int])}
29
+ temp.append(comp_attrs)
30
+
31
+ df = pd.DataFrame(temp)
32
+ return df.to_csv(file_path)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyedb
3
- Version: 0.16.0
3
+ Version: 0.18.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>
@@ -1,11 +1,12 @@
1
- pyedb/__init__.py,sha256=HAdok962ENPcSNP4YCzTRB8o8iRR7OcPNmQT6sD08pE,1521
1
+ pyedb/__init__.py,sha256=BSUJbVwFX_rOFP9jdHFQgIGVs2HQjbF06YjEnDyk_48,1521
2
2
  pyedb/edb_logger.py,sha256=yNkXnoL2me7ubLT6O6r6ElVnkZ1g8fmfFYC_2XJZ1Sw,14950
3
3
  pyedb/exceptions.py,sha256=n94xluzUks6BA24vd_L6HkrvoP_H_l6__hQmqzdCyPo,111
4
4
  pyedb/siwave.py,sha256=p-j2AmJ3RPG9IKieDxiVPRhzRlXbjpxENP9GHAgT6l8,13086
5
+ pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
5
6
  pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
7
  pyedb/configuration/cfg_boundaries.py,sha256=ckb-OfaObItwy-xc0LqkHJyeCfKC5vg668olPjZbaKo,6647
7
8
  pyedb/configuration/cfg_common.py,sha256=5ne78TTA0wHpbi804nsUd9SPxNKZvut_X_Miu-xDRgk,1982
8
- pyedb/configuration/cfg_components.py,sha256=xirPvFvFwMgxHFcA4nnDbXTWZnAaCs9_4T4Kqv2AdtI,6005
9
+ pyedb/configuration/cfg_components.py,sha256=YPmaoVG0PO92yNKTbpi3LZNt01aNO75VHFJuY7DM94k,7684
9
10
  pyedb/configuration/cfg_data.py,sha256=ENvPsPWYD-crwyHWkB0LBAfz9mHjxoVrszwVS_EL0i8,3772
10
11
  pyedb/configuration/cfg_general.py,sha256=0dtd-rkQt2aYR3EOL0c3sNuDuJs7htRos1OWck3rxaI,1626
11
12
  pyedb/configuration/cfg_nets.py,sha256=SCiBTUVHX3Ub91MEU88m0xcHIot_axT9QTFJ8LawppI,1880
@@ -18,31 +19,32 @@ pyedb/configuration/cfg_s_parameter_models.py,sha256=NzS3eBjBSnd7ZDk_TsX04dqRcRX
18
19
  pyedb/configuration/cfg_setup.py,sha256=SPpNRLJusB-Cz2fDQkc6gkdilUqIlbNngoxF3zySt6g,10115
19
20
  pyedb/configuration/cfg_spice_models.py,sha256=tBY3okFiEffMGvBkpmZQrCrovpt-d62k51_WkkV4jqo,2435
20
21
  pyedb/configuration/cfg_stackup.py,sha256=CX7uNN5QRoYW_MOObknP8003YchTS7PH9Oee7FG0VKU,6589
21
- pyedb/configuration/configuration.py,sha256=5rpJgprlOt0PDyGCS0F1-ilktSRRD106twv2XTolN08,11444
22
+ pyedb/configuration/configuration.py,sha256=YIhmW9rDVvWUH9-gyjhKoohjia2dL-jptUviS0MT83s,11565
22
23
  pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
24
  pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
24
- pyedb/dotnet/edb.py,sha256=lgA6iwyrNFUupqzF4CicpomYBPAScOzm3DsFVYQOR6U,179565
25
+ pyedb/dotnet/edb.py,sha256=fRS00MYlaMPRJi7YnhNB72odsne-GiOpZ1AnysqKQoc,182382
25
26
  pyedb/dotnet/application/Variables.py,sha256=v_fxFJ6xjyyhk4uaMzWAbP-1FhXGuKsVNuyV1huaPME,77867
26
27
  pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
28
  pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
28
- pyedb/dotnet/edb_core/components.py,sha256=T7gyIGKvwyocPwGCV806eQyghDiabQs2RIHZE7Rd73M,103709
29
+ pyedb/dotnet/edb_core/components.py,sha256=9p7Aiq3mv5yDDpZGq0ym1aagJzAFfFTtOkXi0uC2j4Y,103687
29
30
  pyedb/dotnet/edb_core/general.py,sha256=f-WuyJY1nkfMEXm_fvU7poLfIi4axV1ha5Am1_m2eQ0,4572
30
31
  pyedb/dotnet/edb_core/hfss.py,sha256=paHUyp1QtnBHYtswiWEgeaYRvqDT-HdtFG6rmmkD2_w,68815
31
- pyedb/dotnet/edb_core/layout.py,sha256=ywUnsz01JaGqCO2KIKBrv2u76us08EoBzZyWJGmUrwQ,50263
32
- pyedb/dotnet/edb_core/layout_validation.py,sha256=_ZcLxePMNauzQxHKWWZGfjuT9tUPS0ZeVKNK7avtJnw,11714
32
+ pyedb/dotnet/edb_core/layout.py,sha256=OqhkmrKTLlIRVd74SBAjW3Wnb4uNhp6kwWtJI86j-98,50852
33
+ pyedb/dotnet/edb_core/layout_validation.py,sha256=aOYgttlJ007uGG94NnhZR_iNHTuCI5CHkHWWTcm9n-E,12617
33
34
  pyedb/dotnet/edb_core/materials.py,sha256=9HTDzxraPjAl3Jc7beHQfxe6axQY-tw6hDW1A05O2GM,43426
34
35
  pyedb/dotnet/edb_core/net_class.py,sha256=fAQoXsjn-Ae3gVYnUJO7yGZ6zEDEf_Zx5Mzq_h0UH7k,11582
35
- pyedb/dotnet/edb_core/nets.py,sha256=RtT22k4KGnFX1aLIsbIGoiWuxxdjCg8lYALDDB5bNAk,43384
36
+ pyedb/dotnet/edb_core/nets.py,sha256=U1GhGJE1Ybd3IWJ7tn5chKW1E23EEZYiSiCK6ds76nk,43373
36
37
  pyedb/dotnet/edb_core/padstack.py,sha256=-17eWSsUnh5Af_nZes505_on8Hy4GkWsP7vFBssqZ5Q,62760
37
- pyedb/dotnet/edb_core/siwave.py,sha256=swrXSIWD0P5i7aiIDfhwrXMoPA-lo7CFGipyfk8MHAY,63737
38
+ pyedb/dotnet/edb_core/siwave.py,sha256=FxhvigCavS-9ldSrcu2KEuYrNF30Ra4RT7NZPUlDMY4,64328
38
39
  pyedb/dotnet/edb_core/stackup.py,sha256=BbfamGczV7j0B2knGPT4SJPZPGz7Rb1jgXTgMr-Yd1o,120808
39
40
  pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- pyedb/dotnet/edb_core/cell/layout.py,sha256=a6ey3YHkfq352k474bVS6LcppyWrsUHsVEJPrnMI-QE,4703
41
+ pyedb/dotnet/edb_core/cell/layout.py,sha256=xzlcR8kgU3v-8VOuQkagqg71DbKrVD7qgfYMzSZ7IiQ,4343
41
42
  pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=xFqY4FAHdiNZWexQRRGHYqWcQ5SvFR9kDxMBGXBqbW8,4180
42
43
  pyedb/dotnet/edb_core/cell/primitive.py,sha256=b_Uyu1cwO9Bf_vSazYLeBWSNaz-67pS-n7TCxKoFUyU,11379
43
- pyedb/dotnet/edb_core/cell/voltage_regulator.py,sha256=kBw0ZpJb6nj7W8Q2pPctcC8Vgkn_6DWZwVt85QVURSo,5832
44
+ pyedb/dotnet/edb_core/cell/voltage_regulator.py,sha256=NQsM-0VnswjMokxsF2-cikobQ8MRoK_cWHYmEg9zi38,5714
44
45
  pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=FFJOX3bBc39vvDp90LmxsUJKpS5N_VhdDbDPJy28hN8,33934
46
+ pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=vLJnPuJkGYafMBR-Cub_i2JDAmqWIeWPY14mGBLzvq4,33858
47
+ pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=FLQeUqwW-VSvG8iaLeU50dSknfe-kEQB4s-GgVEFrFM,1895
46
48
  pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=LwXE4VUfptG5rJ9gmAmye0hECBv7bUGtby1ZzNFkeT0,3198
47
49
  pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py,sha256=fF6tY-6s-lW9EuvJ5sw3RlIkjuoSjeZbrNk5wG-_hzM,1356
48
50
  pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py,sha256=4zo2ut6UAeJqxw70n1luWg2QGEeuMRoVcEcdC9bYG50,3846
@@ -64,19 +66,19 @@ pyedb/dotnet/edb_core/definition/package_def.py,sha256=UoYNdfrB5j0rG4OK94yE25dCT
64
66
  pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
67
  pyedb/dotnet/edb_core/dotnet/database.py,sha256=m8QgX1E5elOoBTHt5zCsUKUFRuwru5r-31PmUE6rQr0,37653
66
68
  pyedb/dotnet/edb_core/dotnet/layout.py,sha256=_3lKFvEqA5S66yF_FSX5HbLsFNFpsigRsaN3Rj02pFk,8904
67
- pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=VGZ_QNfdYhHDU4vq7fRUTinBfDyYTIY7SBysQK0-2SM,48320
69
+ pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=grhQ1YO0PaoCGTPqeydP703tfca2_gvi_m4a8CSqpPo,53424
68
70
  pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
71
  pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=Z837yN4ZDWbtCW3eTWewVq_d_iY2jBSYx2QlL70-qog,48341
70
72
  pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
71
73
  pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
72
74
  pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=hKFHWUl0_OCMEZJbQn5c8Y1a-BYKr8nAycIlrCoeufk,13005
73
- pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py,sha256=R2kuSComcrrns7rNFtChChBsgNHuiIoDnqZjq4rVED4,15563
75
+ pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
76
  pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=SBx2IKtbSn4AvySw4b6IGu3rbb6F-nEoaiqhUwarpLY,25706
75
77
  pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=ICF61kgST9Rm4hUqU3KUh8FMNlrZEVQO1LqZR1VADkA,9979
76
78
  pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=eQCuZdYd5Q2_7jPoCQ5jsOE12kteKRB4rDyiUnUvMnU,79240
77
79
  pyedb/dotnet/edb_core/edb_data/ports.py,sha256=rKRlF0ugl34vi7oQbZuF1o8KLqddfbyk-NSt4EYdh8Q,9413
78
- pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=R22GSaF8j8924czFGVAQ_GzkJTMgd33fuaG-VjvybG4,43748
79
- pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py,sha256=YbPOn3mHwAYGra9lEa3PcrTRi5KpZtQTo4ENUtqDcxE,20913
80
+ pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=k2H0uZO4g02g81_7cwbOVdIUQ0nIv6sIAn6xIgf2j5E,43427
81
+ pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py,sha256=P37-OIsc8TuTC_s3CXRmvZcJqxAftHA7SATfEyoAnMM,20953
80
82
  pyedb/dotnet/edb_core/edb_data/simulation_configuration.py,sha256=w-fxyuj5LX5JwraM-3ONkXcqmsTBDzYto-0PUwF1974,101021
81
83
  pyedb/dotnet/edb_core/edb_data/sources.py,sha256=jzC6p-fiuPEvZn3b9z1-X5UexW5jd48jZRamXillnXI,15700
82
84
  pyedb/dotnet/edb_core/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e46EiFuiFtsroB4,4928
@@ -89,17 +91,17 @@ pyedb/dotnet/edb_core/sim_setup_data/data/__init__.py,sha256=8jByHkoaowAYQTCww-z
89
91
  pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py,sha256=tlHI7PUUoseNnJAtihpjb1PwXYNr-4ztAAnunlLLWVQ,2463
90
92
  pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py,sha256=bWKZTMqROiXvG6T3i7EcapcQBcL0gOChDu4tksdk1xo,8073
91
93
  pyedb/dotnet/edb_core/sim_setup_data/data/settings.py,sha256=u2EhL_netNF4FTQicWysPeXzkFBqBZhFjdwpu4LuBlk,27624
92
- pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py,sha256=dHeyuMm1hRimBx7zrDG0w1q74mIhcUGxk49QoETUq2w,2952
93
- pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py,sha256=OmaUj4uhRkhIQgm80eLzuAark8rs5Tx6GrSjvYN74Eo,2549
94
+ pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py,sha256=GcFfwifjAUQ-Ck4mz2vAFqkt_ubkpoH_V42Vb7K5q4U,2996
95
+ pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py,sha256=xEVQ_vj1La3zr3B0PjaenllkynsxLrHrNeL-ROUkacc,14242
94
96
  pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py,sha256=b7Zpg6nNQArYxvdxlVhXDzvvCSC5sKFvdt10b0MHkvc,8605
95
97
  pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py,sha256=YeFy9YoYVaieaBTnoXwzo66LyAOrEb5LnNDKv-FAlh8,17970
96
98
  pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
97
99
  pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py,sha256=XOGBUtFuBJ61lsyylmW0mR_FDbnmwJ7s58r36peREhE,31311
98
100
  pyedb/dotnet/edb_core/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
99
101
  pyedb/dotnet/edb_core/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
100
- pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py,sha256=Uy3w4rRu-c8s0jZ5OqAy_SZl0rPKWff-d_A48wTi3mg,13687
102
+ pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py,sha256=uyS9wstK0nuLnjETuweuedS4j7bXurfDvz_YMI0ONqo,16484
101
103
  pyedb/dotnet/edb_core/utilities/obj_base.py,sha256=lufR0sZj0QfZ2wlNvLL6aM1KVqCNY2A7taPPdWcK20w,3312
102
- pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=admZemUDqwOXg7485556MOH3LEMuayZVEtDCzNq0MWM,12299
104
+ pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=7iavXVKeEqR2HwJdr17lO3WUqZQ75UZIpkDaO-n5mR0,12484
103
105
  pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py,sha256=s24jfphD88c1Ru_bN2R-Hl70VdPzusBz7d75oYujtl4,12383
104
106
  pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
107
  pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
@@ -171,9 +173,15 @@ pyedb/misc/siw_feature_config/emc/component_tags.py,sha256=pyOAMxbuvgtg6dV-gHWVF
171
173
  pyedb/misc/siw_feature_config/emc/net_tags.py,sha256=HVYOQacmaLr6Mvf7FqZhqbhtqJLJgUSC3ojZdrl3eq0,1184
172
174
  pyedb/misc/siw_feature_config/emc/tag_library.py,sha256=yUK4w3hequU017E2DbkA4KE2MWIh1R6bfJBrevlDx6g,1557
173
175
  pyedb/misc/siw_feature_config/emc/xml_generic.py,sha256=55X-V0OxWq-v7FTiDVjaZif8V_2xxsvJlJ8bs9Bf61I,2521
176
+ pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py,sha256=5MKJ8aoCZtgrgcTq6-Kj8pM6YBZa4LkY4fsal1S1Yhk,3536
177
+ pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py,sha256=wHeupbGkheUm1l8F9m4xfaKO-s_QSIiSL-6QH3yrCJY,2905
178
+ pyedb/misc/siw_feature_config/xtalk_scan/net.py,sha256=iQBB2iIyvymLzJP4MTiyo_HTfFX09G1vQc_tOzaCLX8,3261
179
+ pyedb/misc/siw_feature_config/xtalk_scan/pins.py,sha256=NBZLWFoDLGfBj-zGCcZGHzcuANrlfDu4XSbTeC5F8tU,2237
180
+ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8WxeUI_sfpcVVPnFAjjygUNNhGMdo,3599
181
+ pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
174
182
  pyedb/modeler/geometry_operators.py,sha256=iXNGfp3oMAxc6Ij_jatawR9NAKksMfnmWTaoHQVGX80,72699
175
183
  pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
176
- pyedb-0.16.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
177
- pyedb-0.16.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
178
- pyedb-0.16.0.dist-info/METADATA,sha256=VG5dbv6_kD6GH-H56A7aGDCQDTcJgMNSJusDxQ8eTo0,8336
179
- pyedb-0.16.0.dist-info/RECORD,,
184
+ pyedb-0.18.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
185
+ pyedb-0.18.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
186
+ pyedb-0.18.0.dist-info/METADATA,sha256=k3nrmKYmQSCRdkJUsyLfawvYXzqg8aaPfrFYoGtPjOw,8336
187
+ pyedb-0.18.0.dist-info/RECORD,,
File without changes