pyedb 0.44.0__py3-none-any.whl → 0.45.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/configuration/cfg_boundaries.py +1 -1
- pyedb/configuration/cfg_components.py +7 -7
- pyedb/configuration/cfg_general.py +8 -2
- pyedb/configuration/cfg_modeler.py +7 -0
- pyedb/configuration/cfg_operations.py +40 -1
- pyedb/configuration/cfg_pin_groups.py +1 -1
- pyedb/configuration/cfg_ports_sources.py +159 -51
- pyedb/configuration/cfg_s_parameter_models.py +51 -1
- pyedb/configuration/cfg_setup.py +77 -16
- pyedb/configuration/configuration.py +13 -3
- pyedb/dotnet/database/cell/primitive/path.py +12 -0
- pyedb/dotnet/database/geometry/point_data.py +26 -0
- pyedb/dotnet/database/geometry/polygon_data.py +9 -0
- pyedb/dotnet/database/nets.py +13 -3
- pyedb/dotnet/edb.py +41 -18
- pyedb/grpc/database/components.py +1 -2
- pyedb/grpc/database/definition/component_def.py +1 -1
- pyedb/grpc/database/hfss.py +10 -1
- pyedb/grpc/database/layout_validation.py +2 -2
- pyedb/grpc/database/padstacks.py +15 -9
- pyedb/grpc/database/ports/ports.py +3 -3
- pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +18 -13
- pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +73 -30
- pyedb/grpc/database/simulation_setup/sweep_data.py +12 -1
- pyedb/grpc/database/siwave.py +10 -1
- pyedb/grpc/database/source_excitations.py +12 -2
- pyedb/grpc/database/stackup.py +12 -4
- pyedb/grpc/database/terminal/edge_terminal.py +93 -0
- pyedb/grpc/database/terminal/pingroup_terminal.py +14 -1
- pyedb/grpc/edb.py +13 -9
- pyedb/grpc/edb_init.py +19 -15
- pyedb/grpc/rpc_session.py +11 -8
- {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/METADATA +6 -6
- {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/RECORD +37 -37
- {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/LICENSE +0 -0
- {pyedb-0.44.0.dist-info → pyedb-0.45.0.dist-info}/WHEEL +0 -0
pyedb/grpc/database/stackup.py
CHANGED
|
@@ -138,15 +138,23 @@ class LayerCollection(GrpcLayerCollection):
|
|
|
138
138
|
|
|
139
139
|
"""
|
|
140
140
|
thickness = GrpcValue(0.0)
|
|
141
|
+
layer_type_map = {"dielectric": GrpcLayerType.DIELECTRIC_LAYER, "signal": GrpcLayerType.SIGNAL_LAYER}
|
|
141
142
|
if "thickness" in kwargs:
|
|
142
143
|
thickness = GrpcValue(kwargs["thickness"])
|
|
143
144
|
elevation = GrpcValue(0.0)
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
145
|
+
if "type" in kwargs:
|
|
146
|
+
_layer_type = layer_type_map[kwargs["type"]]
|
|
147
|
+
else:
|
|
148
|
+
_layer_type = layer_type_map[layer_type]
|
|
149
|
+
if "material" in kwargs:
|
|
150
|
+
_material = kwargs["material"]
|
|
151
|
+
else:
|
|
152
|
+
_material = "copper"
|
|
147
153
|
layer = GrpcStackupLayer.create(
|
|
148
|
-
name=name, layer_type=_layer_type, thickness=thickness, material=
|
|
154
|
+
name=name, layer_type=_layer_type, thickness=thickness, material=_material, elevation=elevation
|
|
149
155
|
)
|
|
156
|
+
if "fill_material" in kwargs:
|
|
157
|
+
layer.set_fill_material(kwargs["fill_material"])
|
|
150
158
|
return self._layer_collection.add_layer_bottom(layer)
|
|
151
159
|
|
|
152
160
|
def add_layer_below(self, name, base_layer_name, layer_type="signal", **kwargs):
|
|
@@ -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
|
+
import re
|
|
24
|
+
|
|
23
25
|
from ansys.edb.core.terminal.bundle_terminal import BundleTerminal as GrpcBundleTerminal
|
|
24
26
|
from ansys.edb.core.terminal.edge_terminal import EdgeTerminal as GrpcEdgeTerminal
|
|
25
27
|
|
|
@@ -29,6 +31,65 @@ class EdgeTerminal(GrpcEdgeTerminal):
|
|
|
29
31
|
super().__init__(edb_object.msg)
|
|
30
32
|
self._pedb = pedb
|
|
31
33
|
self._edb_object = edb_object
|
|
34
|
+
self._hfss_type = "Gap"
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def _edb_properties(self):
|
|
38
|
+
from ansys.edb.core.database import ProductIdType as GrpcProductIdType
|
|
39
|
+
|
|
40
|
+
try:
|
|
41
|
+
p = self._edb_object.get_product_property(GrpcProductIdType.DESIGNER, 1)
|
|
42
|
+
except:
|
|
43
|
+
p = ""
|
|
44
|
+
return p
|
|
45
|
+
|
|
46
|
+
@_edb_properties.setter
|
|
47
|
+
def _edb_properties(self, value):
|
|
48
|
+
from ansys.edb.core.database import ProductIdType as GrpcProductIdType
|
|
49
|
+
|
|
50
|
+
self._edb_object.set_product_property(GrpcProductIdType.DESIGNER, 1, value)
|
|
51
|
+
|
|
52
|
+
@property
|
|
53
|
+
def is_wave_port(self):
|
|
54
|
+
if self._hfss_port_property:
|
|
55
|
+
return True
|
|
56
|
+
return False
|
|
57
|
+
|
|
58
|
+
@property
|
|
59
|
+
def _hfss_port_property(self):
|
|
60
|
+
"""HFSS port property."""
|
|
61
|
+
hfss_prop = re.search(r"HFSS\(.*?\)", self._edb_properties)
|
|
62
|
+
p = {}
|
|
63
|
+
if hfss_prop:
|
|
64
|
+
hfss_type = re.search(r"'HFSS Type'='([^']+)'", hfss_prop.group())
|
|
65
|
+
orientation = re.search(r"'Orientation'='([^']+)'", hfss_prop.group())
|
|
66
|
+
horizontal_ef = re.search(r"'Horizontal Extent Factor'='([^']+)'", hfss_prop.group())
|
|
67
|
+
vertical_ef = re.search(r"'Vertical Extent Factor'='([^']+)'", hfss_prop.group())
|
|
68
|
+
radial_ef = re.search(r"'Radial Extent Factor'='([^']+)'", hfss_prop.group())
|
|
69
|
+
pec_w = re.search(r"'PEC Launch Width'='([^']+)'", hfss_prop.group())
|
|
70
|
+
|
|
71
|
+
p["HFSS Type"] = hfss_type.group(1) if hfss_type else ""
|
|
72
|
+
p["Orientation"] = orientation.group(1) if orientation else ""
|
|
73
|
+
p["Horizontal Extent Factor"] = float(horizontal_ef.group(1)) if horizontal_ef else ""
|
|
74
|
+
p["Vertical Extent Factor"] = float(vertical_ef.group(1)) if vertical_ef else ""
|
|
75
|
+
p["Radial Extent Factor"] = float(radial_ef.group(1)) if radial_ef else ""
|
|
76
|
+
p["PEC Launch Width"] = pec_w.group(1) if pec_w else ""
|
|
77
|
+
else:
|
|
78
|
+
p["HFSS Type"] = ""
|
|
79
|
+
p["Orientation"] = ""
|
|
80
|
+
p["Horizontal Extent Factor"] = ""
|
|
81
|
+
p["Vertical Extent Factor"] = ""
|
|
82
|
+
p["Radial Extent Factor"] = ""
|
|
83
|
+
p["PEC Launch Width"] = ""
|
|
84
|
+
return p
|
|
85
|
+
|
|
86
|
+
@_hfss_port_property.setter
|
|
87
|
+
def _hfss_port_property(self, value):
|
|
88
|
+
txt = []
|
|
89
|
+
for k, v in value.items():
|
|
90
|
+
txt.append("'{}'='{}'".format(k, v))
|
|
91
|
+
txt = ",".join(txt)
|
|
92
|
+
self._edb_properties = "HFSS({})".format(txt)
|
|
32
93
|
|
|
33
94
|
def couple_ports(self, port):
|
|
34
95
|
"""Create a bundle wave port.
|
|
@@ -49,3 +110,35 @@ class EdgeTerminal(GrpcEdgeTerminal):
|
|
|
49
110
|
temp.extend([i for i in port])
|
|
50
111
|
bundle_terminal = GrpcBundleTerminal.create(temp)
|
|
51
112
|
return self._pedb.ports[bundle_terminal.name]
|
|
113
|
+
|
|
114
|
+
@property
|
|
115
|
+
def is_port(self):
|
|
116
|
+
return True
|
|
117
|
+
|
|
118
|
+
@property
|
|
119
|
+
def ref_terminal(self):
|
|
120
|
+
"""Return refeference terminal.
|
|
121
|
+
|
|
122
|
+
..deprecated:: 0.44.0
|
|
123
|
+
Use: func:`reference_terminal` property instead.
|
|
124
|
+
|
|
125
|
+
"""
|
|
126
|
+
self._pedb.logger.warning("ref_terminal is deprecated, use reference_terminal property instead.")
|
|
127
|
+
return self.reference_terminal
|
|
128
|
+
|
|
129
|
+
@ref_terminal.setter
|
|
130
|
+
def ref_terminal(self, value):
|
|
131
|
+
self._pedb.logger.warning("ref_terminal is deprecated, use reference_terminal property instead.")
|
|
132
|
+
self.reference_terminal = value
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
def hfss_type(self):
|
|
136
|
+
return self._hfss_type
|
|
137
|
+
|
|
138
|
+
@hfss_type.setter
|
|
139
|
+
def hfss_type(self, value):
|
|
140
|
+
self._hfss_type = value
|
|
141
|
+
|
|
142
|
+
@property
|
|
143
|
+
def terminal_type(self):
|
|
144
|
+
return "EdgeTerminal"
|
|
@@ -184,12 +184,25 @@ class PinGroupTerminal(GrpcPinGroupTerminal):
|
|
|
184
184
|
|
|
185
185
|
"""
|
|
186
186
|
self._pedb.logger.warning("ref_terminal property is deprecated, use reference_terminal property instead.")
|
|
187
|
-
return self.reference_terminal
|
|
187
|
+
return PinGroupTerminal(self._pedb, self.reference_terminal)
|
|
188
188
|
|
|
189
189
|
@ref_terminal.setter
|
|
190
190
|
def ref_terminal(self, value):
|
|
191
|
+
self._pedb.logger.warning("ref_terminal is deprecated, use reference_terminal instead.")
|
|
191
192
|
self.reference_terminal = value
|
|
192
193
|
|
|
193
194
|
@property
|
|
194
195
|
def hfss_type(self):
|
|
195
196
|
return "circuit"
|
|
197
|
+
|
|
198
|
+
@property
|
|
199
|
+
def is_current_source(self):
|
|
200
|
+
if self.boundary_type == "current_source":
|
|
201
|
+
return True
|
|
202
|
+
return False
|
|
203
|
+
|
|
204
|
+
@property
|
|
205
|
+
def is_voltage_source(self):
|
|
206
|
+
if self.boundary_type == "voltage_source":
|
|
207
|
+
return True
|
|
208
|
+
return False
|
pyedb/grpc/edb.py
CHANGED
|
@@ -198,7 +198,6 @@ class Edb(EdbInit):
|
|
|
198
198
|
use_ppe=False,
|
|
199
199
|
technology_file=None,
|
|
200
200
|
restart_rpc_server=False,
|
|
201
|
-
kill_all_instances=False,
|
|
202
201
|
):
|
|
203
202
|
edbversion = get_string_version(edbversion)
|
|
204
203
|
self._clean_variables()
|
|
@@ -273,9 +272,9 @@ class Edb(EdbInit):
|
|
|
273
272
|
self.logger.info("EDB %s was created correctly from %s file.", self.edbpath, edbpath[-2:])
|
|
274
273
|
elif edbpath.endswith("edb.def"):
|
|
275
274
|
self.edbpath = os.path.dirname(edbpath)
|
|
276
|
-
self.open_edb(restart_rpc_server=restart_rpc_server
|
|
275
|
+
self.open_edb(restart_rpc_server=restart_rpc_server)
|
|
277
276
|
elif not os.path.exists(os.path.join(self.edbpath, "edb.def")):
|
|
278
|
-
self.create_edb(restart_rpc_server=restart_rpc_server
|
|
277
|
+
self.create_edb(restart_rpc_server=restart_rpc_server)
|
|
279
278
|
self.logger.info("EDB %s created correctly.", self.edbpath)
|
|
280
279
|
elif ".aedb" in edbpath:
|
|
281
280
|
self.edbpath = edbpath
|
|
@@ -290,8 +289,7 @@ class Edb(EdbInit):
|
|
|
290
289
|
return self
|
|
291
290
|
|
|
292
291
|
def __exit__(self, ex_type, ex_value, ex_traceback):
|
|
293
|
-
|
|
294
|
-
self.edb_exception(ex_value, ex_traceback)
|
|
292
|
+
self._signal_handler(ex_type, ex_value)
|
|
295
293
|
|
|
296
294
|
def __getitem__(self, variable_name):
|
|
297
295
|
"""Get a variable to the Edb project. The variable can be project using ``$`` prefix or
|
|
@@ -493,7 +491,9 @@ class Edb(EdbInit):
|
|
|
493
491
|
"""
|
|
494
492
|
terminals = [term for term in self.layout.terminals if not term.is_reference_terminal]
|
|
495
493
|
ports = {}
|
|
494
|
+
from pyedb.grpc.database.ports.ports import WavePort
|
|
496
495
|
from pyedb.grpc.database.terminal.bundle_terminal import BundleTerminal
|
|
496
|
+
from pyedb.grpc.database.terminal.edge_terminal import EdgeTerminal
|
|
497
497
|
from pyedb.grpc.database.terminal.padstack_instance_terminal import (
|
|
498
498
|
PadstackInstanceTerminal,
|
|
499
499
|
)
|
|
@@ -504,6 +504,11 @@ class Edb(EdbInit):
|
|
|
504
504
|
ports[bundle_ter.name] = bundle_ter
|
|
505
505
|
elif isinstance(t, PadstackInstanceTerminal):
|
|
506
506
|
ports[t.name] = CoaxPort(self, t)
|
|
507
|
+
elif isinstance(t, EdgeTerminal):
|
|
508
|
+
if t.is_wave_port:
|
|
509
|
+
ports[t.name] = WavePort(self, t)
|
|
510
|
+
else:
|
|
511
|
+
ports[t.name] = EdgeTerminal(self, t)
|
|
507
512
|
else:
|
|
508
513
|
ports[t.name] = GapPort(self, t)
|
|
509
514
|
return ports
|
|
@@ -572,7 +577,6 @@ class Edb(EdbInit):
|
|
|
572
577
|
self.edbpath,
|
|
573
578
|
self.isreadonly,
|
|
574
579
|
restart_rpc_server=restart_rpc_server,
|
|
575
|
-
kill_all_instances=kill_all_instances,
|
|
576
580
|
)
|
|
577
581
|
n_try -= 1
|
|
578
582
|
except Exception as e:
|
|
@@ -613,7 +617,7 @@ class Edb(EdbInit):
|
|
|
613
617
|
n_try = 10
|
|
614
618
|
while not self.db and n_try:
|
|
615
619
|
try:
|
|
616
|
-
self.create(self.edbpath, restart_rpc_server=restart_rpc_server
|
|
620
|
+
self.create(self.edbpath, restart_rpc_server=restart_rpc_server)
|
|
617
621
|
n_try -= 1
|
|
618
622
|
except Exception as e:
|
|
619
623
|
self.logger.error(e.args[0])
|
|
@@ -2015,8 +2019,8 @@ class Edb(EdbInit):
|
|
|
2015
2019
|
nets_to_preserve.extend(el.nets)
|
|
2016
2020
|
if include_pingroups:
|
|
2017
2021
|
for pingroup in self.layout.pin_groups:
|
|
2018
|
-
for pin in pingroup.pins:
|
|
2019
|
-
if
|
|
2022
|
+
for pin_name, pin in pingroup.pins.items():
|
|
2023
|
+
if pin_name in reference_list:
|
|
2020
2024
|
pins_to_preserve.append(pin.edb_uid)
|
|
2021
2025
|
if check_terminals:
|
|
2022
2026
|
terms = [
|
pyedb/grpc/edb_init.py
CHANGED
|
@@ -22,7 +22,9 @@
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
"""Database."""
|
|
25
|
+
import atexit
|
|
25
26
|
import os
|
|
27
|
+
import signal
|
|
26
28
|
import sys
|
|
27
29
|
|
|
28
30
|
import ansys.edb.core.database as database
|
|
@@ -68,13 +70,22 @@ class EdbInit(object):
|
|
|
68
70
|
oa_directory = os.path.join(self.base_path, "common", "oa")
|
|
69
71
|
os.environ["ANSYS_OADIR"] = oa_directory
|
|
70
72
|
os.environ["PATH"] = "{};{}".format(os.environ["PATH"], self.base_path)
|
|
73
|
+
# register server kill
|
|
74
|
+
atexit.register(self._signal_handler)
|
|
75
|
+
# register signal handlers
|
|
76
|
+
signal.signal(signal.SIGTERM, self._signal_handler)
|
|
77
|
+
signal.signal(signal.SIGINT, self._signal_handler)
|
|
78
|
+
|
|
79
|
+
@staticmethod
|
|
80
|
+
def _signal_handler(signum=None, frame=None):
|
|
81
|
+
RpcSession.kill()
|
|
71
82
|
|
|
72
83
|
@property
|
|
73
84
|
def db(self):
|
|
74
85
|
"""Active database object."""
|
|
75
86
|
return self._db
|
|
76
87
|
|
|
77
|
-
def create(self, db_path, port=0, restart_rpc_server=False
|
|
88
|
+
def create(self, db_path, port=0, restart_rpc_server=False):
|
|
78
89
|
"""Create a Database at the specified file location.
|
|
79
90
|
|
|
80
91
|
Parameters
|
|
@@ -82,12 +93,12 @@ class EdbInit(object):
|
|
|
82
93
|
db_path : str
|
|
83
94
|
Path to top-level database folder
|
|
84
95
|
|
|
96
|
+
port : int
|
|
97
|
+
grpc port number.
|
|
98
|
+
|
|
85
99
|
restart_rpc_server : optional, bool
|
|
86
100
|
Force restarting RPC server when `True`.Default value is `False`
|
|
87
101
|
|
|
88
|
-
kill_all_instances : optional, bool.
|
|
89
|
-
Force killing all RPC server instances, must be used with caution. Default value is `False`.
|
|
90
|
-
|
|
91
102
|
Returns
|
|
92
103
|
-------
|
|
93
104
|
Database
|
|
@@ -97,7 +108,6 @@ class EdbInit(object):
|
|
|
97
108
|
edb_version=self.edbversion,
|
|
98
109
|
port=port,
|
|
99
110
|
restart_server=restart_rpc_server,
|
|
100
|
-
kill_all_instances=kill_all_instances,
|
|
101
111
|
)
|
|
102
112
|
if not RpcSession.pid:
|
|
103
113
|
self.logger.error("Failed to start RPC server.")
|
|
@@ -105,7 +115,7 @@ class EdbInit(object):
|
|
|
105
115
|
self._db = database.Database.create(db_path)
|
|
106
116
|
return self._db
|
|
107
117
|
|
|
108
|
-
def open(self, db_path, read_only, port=0, restart_rpc_server=False
|
|
118
|
+
def open(self, db_path, read_only, port=0, restart_rpc_server=False):
|
|
109
119
|
"""Open an existing Database at the specified file location.
|
|
110
120
|
|
|
111
121
|
Parameters
|
|
@@ -115,11 +125,9 @@ class EdbInit(object):
|
|
|
115
125
|
read_only : bool
|
|
116
126
|
Obtain read-only access.
|
|
117
127
|
port : optional, int.
|
|
118
|
-
Specify the port number.If not provided a randon free one is selected. Default value is `0`.
|
|
128
|
+
Specify the port number. If not provided a randon free one is selected. Default value is `0`.
|
|
119
129
|
restart_rpc_server : optional, bool
|
|
120
130
|
Force restarting RPC server when `True`. Default value is `False`.
|
|
121
|
-
kill_all_instances : optional, bool.
|
|
122
|
-
Force killing all RPC server instances, must be used with caution. Default value is `False`.
|
|
123
131
|
|
|
124
132
|
Returns
|
|
125
133
|
-------
|
|
@@ -133,7 +141,6 @@ class EdbInit(object):
|
|
|
133
141
|
edb_version=self.edbversion,
|
|
134
142
|
port=port,
|
|
135
143
|
restart_server=restart_rpc_server,
|
|
136
|
-
kill_all_instances=kill_all_instances,
|
|
137
144
|
)
|
|
138
145
|
if not RpcSession.pid:
|
|
139
146
|
self.logger.error("Failed to start RPC server.")
|
|
@@ -154,7 +161,7 @@ class EdbInit(object):
|
|
|
154
161
|
"""Save any changes into a file."""
|
|
155
162
|
return self._db.save()
|
|
156
163
|
|
|
157
|
-
def close(self, terminate_rpc_session=True
|
|
164
|
+
def close(self, terminate_rpc_session=True):
|
|
158
165
|
"""Close the database.
|
|
159
166
|
|
|
160
167
|
Parameters
|
|
@@ -167,10 +174,7 @@ class EdbInit(object):
|
|
|
167
174
|
"""
|
|
168
175
|
self._db.close()
|
|
169
176
|
self._db = None
|
|
170
|
-
if
|
|
171
|
-
RpcSession._kill_all_instances()
|
|
172
|
-
RpcSession.pid = 0
|
|
173
|
-
elif terminate_rpc_session:
|
|
177
|
+
if terminate_rpc_session:
|
|
174
178
|
RpcSession.rpc_session.disconnect()
|
|
175
179
|
RpcSession.pid = 0
|
|
176
180
|
return True
|
pyedb/grpc/rpc_session.py
CHANGED
|
@@ -50,7 +50,7 @@ class RpcSession:
|
|
|
50
50
|
port = 10000
|
|
51
51
|
|
|
52
52
|
@staticmethod
|
|
53
|
-
def start(edb_version, port=0, restart_server=False
|
|
53
|
+
def start(edb_version, port=0, restart_server=False):
|
|
54
54
|
"""Start RPC-server, the server must be started before opening EDB.
|
|
55
55
|
|
|
56
56
|
Parameters
|
|
@@ -107,10 +107,7 @@ class RpcSession:
|
|
|
107
107
|
if RpcSession.pid:
|
|
108
108
|
if restart_server:
|
|
109
109
|
pyedb_logger.logger.info("Restarting RPC server")
|
|
110
|
-
|
|
111
|
-
RpcSession.__kill_all_instances()
|
|
112
|
-
else:
|
|
113
|
-
RpcSession.__kill()
|
|
110
|
+
RpcSession.kill()
|
|
114
111
|
RpcSession.__start_rpc_server()
|
|
115
112
|
else:
|
|
116
113
|
pyedb_logger.info(f"Server already running on port {RpcSession.port}")
|
|
@@ -141,13 +138,18 @@ class RpcSession:
|
|
|
141
138
|
pyedb_logger.logger.info("Grpc session started")
|
|
142
139
|
|
|
143
140
|
@staticmethod
|
|
144
|
-
def
|
|
141
|
+
def kill():
|
|
145
142
|
p = psutil.Process(RpcSession.pid)
|
|
146
143
|
time.sleep(latency_delay)
|
|
147
|
-
|
|
144
|
+
try:
|
|
145
|
+
p.terminate()
|
|
146
|
+
print(f"RPC session pid: {RpcSession.pid} killed due to execution failure.")
|
|
147
|
+
RpcSession.pid = 0
|
|
148
|
+
except:
|
|
149
|
+
print("RPC session closed.")
|
|
148
150
|
|
|
149
151
|
@staticmethod
|
|
150
|
-
def
|
|
152
|
+
def kill_all_instances():
|
|
151
153
|
proc = [p.pid for p in list(psutil.process_iter()) if "edb_rpc" in p.name().lower()]
|
|
152
154
|
time.sleep(latency_delay)
|
|
153
155
|
for pid in proc:
|
|
@@ -163,6 +165,7 @@ class RpcSession:
|
|
|
163
165
|
end_managing()
|
|
164
166
|
RpcSession.rpc_session.disconnect()
|
|
165
167
|
time.sleep(latency_delay)
|
|
168
|
+
RpcSession.__get_process_id()
|
|
166
169
|
|
|
167
170
|
@staticmethod
|
|
168
171
|
def __get_random_free_port():
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.45.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>
|
|
@@ -127,15 +127,15 @@ Documentation for the latest stable release of PyEDB is hosted at
|
|
|
127
127
|
[PyEDB documentation](https://edb.docs.pyansys.com/version/stable/index.html).
|
|
128
128
|
The documentation has five sections:
|
|
129
129
|
|
|
130
|
-
- [Getting started](https://edb.docs.pyansys.com/version/
|
|
130
|
+
- [Getting started](https://edb.docs.pyansys.com/version/stable/getting_started/index.html): Describes
|
|
131
131
|
how to install PyEDB in user mode.
|
|
132
|
-
- [User guide](https://edb.docs.pyansys.com/version/
|
|
132
|
+
- [User guide](https://edb.docs.pyansys.com/version/stable/user_guide/index.html#user-guide): Describes how to
|
|
133
133
|
use PyEDB.
|
|
134
|
-
- [API reference](https://edb.docs.pyansys.com/version/
|
|
134
|
+
- [API reference](https://edb.docs.pyansys.com/version/stable/api/index.html): Provides API member descriptions
|
|
135
135
|
and usage examples.
|
|
136
|
-
- [Examples](https://
|
|
136
|
+
- [Examples](https://examples.aedt.docs.pyansys.com/version/dev/examples/high_frequency/layout/index.html): Provides examples showing
|
|
137
137
|
end-to-end workflows for using PyEDB.
|
|
138
|
-
- [Contribute](https://edb.docs.pyansys.com/version/
|
|
138
|
+
- [Contribute](https://edb.docs.pyansys.com/version/stable/contributing.html): Describes how to install
|
|
139
139
|
PyEDB in developer mode and how to contribute to this PyAnsys library.
|
|
140
140
|
|
|
141
141
|
In the upper right corner of the documentation's title bar, there is an option
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
pyedb/__init__.py,sha256=
|
|
1
|
+
pyedb/__init__.py,sha256=jPfquPDdV0IJjTtldZ3mliXjMnIiYmW12PqLoINlJP8,1525
|
|
2
2
|
pyedb/edb_logger.py,sha256=7KXPvAMCKzlzJ5zioiNO5A3zkqbpCHhWHB4aXKfgu5Y,14959
|
|
3
3
|
pyedb/exceptions.py,sha256=n94xluzUks6BA24vd_L6HkrvoP_H_l6__hQmqzdCyPo,111
|
|
4
4
|
pyedb/siwave.py,sha256=Mgg5ZGzOUOtNdlePHcnrgN3rletQ7jrqRi3WfxF58uU,17727
|
|
@@ -7,26 +7,26 @@ pyedb/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
7
7
|
pyedb/common/nets.py,sha256=a6w_U-dCrWA4l0GUC9mf1nio91BGGOKh3K6cqd4I5vM,17877
|
|
8
8
|
pyedb/component_libraries/ansys_components.py,sha256=O3ypt832IHY9zG2AD_yrRrbH2KH9P1yFaoi1EO6Zllw,4830
|
|
9
9
|
pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
pyedb/configuration/cfg_boundaries.py,sha256
|
|
10
|
+
pyedb/configuration/cfg_boundaries.py,sha256=-CEUVF3_mnRJv9otavjMKX6iOsLSo1X03nfxnrrApmo,11216
|
|
11
11
|
pyedb/configuration/cfg_common.py,sha256=U45p2qksEwMY_woVFaSwn5qjib9QQJDShajZZ-IZV0Y,2575
|
|
12
|
-
pyedb/configuration/cfg_components.py,sha256=
|
|
12
|
+
pyedb/configuration/cfg_components.py,sha256=LFciizI0GIkny-A3PE2_KPnhf1VDjkQph7QNa35fN24,26082
|
|
13
13
|
pyedb/configuration/cfg_data.py,sha256=sy1xUrfhRA3jorbR60qGExaMxQ1nQGGAbZYJ0xXYktE,3860
|
|
14
|
-
pyedb/configuration/cfg_general.py,sha256=
|
|
15
|
-
pyedb/configuration/cfg_modeler.py,sha256=
|
|
14
|
+
pyedb/configuration/cfg_general.py,sha256=RvBG9DnGB7700fDTa8eEZpOUgI2wwS3GoPXOUzmaDNQ,3200
|
|
15
|
+
pyedb/configuration/cfg_modeler.py,sha256=ytuGzb3Do4ZO793TkIk0nRfc27SkYcv9CnCJsPncJAU,10567
|
|
16
16
|
pyedb/configuration/cfg_nets.py,sha256=vAtp3tTTuTDSDZw6uay4qXjbThqcCoyEXf7fNKW64DY,2900
|
|
17
|
-
pyedb/configuration/cfg_operations.py,sha256=
|
|
17
|
+
pyedb/configuration/cfg_operations.py,sha256=20CUt8-HYhMusaIH_iLOkrfcHF7eflFAXpxzrHBbWiA,8078
|
|
18
18
|
pyedb/configuration/cfg_package_definition.py,sha256=aNA3ympBjvxtw9hVehF9PQWaEvNLVB8cwb-r7MtZtzY,7844
|
|
19
19
|
pyedb/configuration/cfg_padstacks.py,sha256=RxCmRe4qbIefuKYaPCPhZ6fJ3-Tz9sektvXnswljQwU,39801
|
|
20
|
-
pyedb/configuration/cfg_pin_groups.py,sha256=
|
|
21
|
-
pyedb/configuration/cfg_ports_sources.py,sha256=
|
|
22
|
-
pyedb/configuration/cfg_s_parameter_models.py,sha256=
|
|
23
|
-
pyedb/configuration/cfg_setup.py,sha256=
|
|
20
|
+
pyedb/configuration/cfg_pin_groups.py,sha256=UkDgJNAa6E9bv2Jo0K4vY2eTuqC61qcgqszrZ_bUcEg,5595
|
|
21
|
+
pyedb/configuration/cfg_ports_sources.py,sha256=4_t88bqAQzfypFH95Ro9ATBFz1ZJenZBjKpDfeb4lfk,39821
|
|
22
|
+
pyedb/configuration/cfg_s_parameter_models.py,sha256=UBrCOt69AQof5r2OqpoSJ7E8G52jo0lAcSfYvJhm8hU,10224
|
|
23
|
+
pyedb/configuration/cfg_setup.py,sha256=A8fm2Qqy9SFi8peToI55rfh0jxPESmOM6ecNBWHCggA,17526
|
|
24
24
|
pyedb/configuration/cfg_spice_models.py,sha256=Q_5j2-V6cepSFcnijot8iypTqzanLp7HOz-agmnwKns,2570
|
|
25
25
|
pyedb/configuration/cfg_stackup.py,sha256=1tRO2xCKm6J0wBQOokrUcrt4WJ3XoKT_pL_RV1Oy1KU,10643
|
|
26
|
-
pyedb/configuration/configuration.py,sha256=
|
|
26
|
+
pyedb/configuration/configuration.py,sha256=yw9pTjUMwFaU8Q8DvytJ3Fx9Fz4RKwhXZebPXedL8QA,22960
|
|
27
27
|
pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
pyedb/dotnet/clr_module.py,sha256=EabqZgZgBZOhJD9_V8Ll8sEKgBFj9xe9zARNYIvYM_s,5304
|
|
29
|
-
pyedb/dotnet/edb.py,sha256=
|
|
29
|
+
pyedb/dotnet/edb.py,sha256=ayw86yMIOXlmri2Q4xbs3z_SdgnqOmsSTBSrz0mXFx8,186587
|
|
30
30
|
pyedb/dotnet/database/Variables.py,sha256=CX12X6u-2tbcgjYJU643TVjIJEGB58a2nM4f4wMVTR8,77687
|
|
31
31
|
pyedb/dotnet/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
|
|
32
32
|
pyedb/dotnet/database/components.py,sha256=9HldXwn2xV7RPD-C9u_zpHTd6b5SKZkDled-NKrbweo,109471
|
|
@@ -37,7 +37,7 @@ pyedb/dotnet/database/layout_validation.py,sha256=kanRMaFz7Xv_3jFUwdbbzc1d6Rj6ka
|
|
|
37
37
|
pyedb/dotnet/database/materials.py,sha256=lR3LwHpK9UUBuL542M7jw5mLlmgwn5n4d4kHcmBF2AU,44234
|
|
38
38
|
pyedb/dotnet/database/modeler.py,sha256=ygY-9E3sIfFhHpk19-_J7xlLbQXB1Iw5xhXnW1Eoalw,55675
|
|
39
39
|
pyedb/dotnet/database/net_class.py,sha256=NxRX8feIaJyf3NmRfSzZ08ItDbZOucOyAnTHZh-LkUI,11354
|
|
40
|
-
pyedb/dotnet/database/nets.py,sha256=
|
|
40
|
+
pyedb/dotnet/database/nets.py,sha256=bs7aX6a3xWWNzxsX471omu17_4jmC1HmNH9q8fefBJc,25614
|
|
41
41
|
pyedb/dotnet/database/padstack.py,sha256=maddMpEB07E408TNkoiBP4xWvmbpfHWDpv0zOM09Coo,73340
|
|
42
42
|
pyedb/dotnet/database/siwave.py,sha256=yq6sRdJofKgXGMd2gvq7SpS-hXRqL_OPQCmOgwgkBfY,64366
|
|
43
43
|
pyedb/dotnet/database/stackup.py,sha256=y-lrZWwK3BVLuV1WR3pP3o6IppioaQkzeO5QPiN_KKY,120035
|
|
@@ -56,7 +56,7 @@ pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py,sha256=o7Omw4R9uQGCBDj
|
|
|
56
56
|
pyedb/dotnet/database/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCskkqZ3rdVHMSS_fGlAfwJSk,1443
|
|
57
57
|
pyedb/dotnet/database/cell/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
58
58
|
pyedb/dotnet/database/cell/primitive/bondwire.py,sha256=3Wqn_9a54xhfPw38Vyo4ekzCF8NoU-WN_mNlhS8lFvw,7322
|
|
59
|
-
pyedb/dotnet/database/cell/primitive/path.py,sha256=
|
|
59
|
+
pyedb/dotnet/database/cell/primitive/path.py,sha256=NsbGXaXmWJjpZEvAHWp8wcEbNgGaHZ8fak_2m5rbnHI,13096
|
|
60
60
|
pyedb/dotnet/database/cell/primitive/primitive.py,sha256=KvzC_EdC2qbxWVyFLSAKON5grqFLaIb5i0NHtqOqqoQ,28796
|
|
61
61
|
pyedb/dotnet/database/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
62
|
pyedb/dotnet/database/cell/terminal/bundle_terminal.py,sha256=6wKbXqnyCCoYsBQGkHga-40brmGzGv4zly45OB33HJM,1977
|
|
@@ -90,8 +90,8 @@ pyedb/dotnet/database/edb_data/sources.py,sha256=PEJXUwHALV3P6n8_OldlFrgeBfGlXq3
|
|
|
90
90
|
pyedb/dotnet/database/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e46EiFuiFtsroB4,4928
|
|
91
91
|
pyedb/dotnet/database/edb_data/variables.py,sha256=mJvOXT9A5rlxZamizCsC77QPWyt0zO_tUpPPl61xqcE,3501
|
|
92
92
|
pyedb/dotnet/database/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
93
|
-
pyedb/dotnet/database/geometry/point_data.py,sha256=
|
|
94
|
-
pyedb/dotnet/database/geometry/polygon_data.py,sha256=
|
|
93
|
+
pyedb/dotnet/database/geometry/point_data.py,sha256=Cbs2849-Q6KC2nSr8AqFyhQrt2SSDFaTaZLRDeyP1EM,2174
|
|
94
|
+
pyedb/dotnet/database/geometry/polygon_data.py,sha256=_dj-6bgFrUZWg5SCA-9SYkrXX6yknfvGGA2SQtUSF18,5752
|
|
95
95
|
pyedb/dotnet/database/sim_setup_data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
96
96
|
pyedb/dotnet/database/sim_setup_data/data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
97
97
|
pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py,sha256=tlHI7PUUoseNnJAtihpjb1PwXYNr-4ztAAnunlLLWVQ,2463
|
|
@@ -119,24 +119,24 @@ pyedb/generic/general_methods.py,sha256=Lg4k53Ny9LraiU6AQX5WwBiPFqtvGaZ3Ik7LcWil
|
|
|
119
119
|
pyedb/generic/plot.py,sha256=4zCA5lpk-FhPmWR7xi6yecc5lZtRpxJdd3B8FLGXmxE,4705
|
|
120
120
|
pyedb/generic/process.py,sha256=i0poMbEnFFAsnNOPWN-myMnUaG7hMClKi9kGPMFyvCM,11148
|
|
121
121
|
pyedb/generic/settings.py,sha256=QTX5OVZ8sVPIy_QaSxRODUWvoXkYkVpzh3l6pQPseKQ,9220
|
|
122
|
-
pyedb/grpc/edb.py,sha256=
|
|
123
|
-
pyedb/grpc/edb_init.py,sha256=
|
|
124
|
-
pyedb/grpc/rpc_session.py,sha256=
|
|
122
|
+
pyedb/grpc/edb.py,sha256=6PuJCp7R9jN_edjMw0SeM7C92m0s9paGt2u6FIXXo6E,160387
|
|
123
|
+
pyedb/grpc/edb_init.py,sha256=APv7vPNSoW9FMqwyaUYfmMnYHYtyvy9UejIURIiDjnI,14320
|
|
124
|
+
pyedb/grpc/rpc_session.py,sha256=HEGyWpmF8bvRcS_33C7-cOGPUdtiu3PMDTFOgP1LSSQ,7065
|
|
125
125
|
pyedb/grpc/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
|
|
126
|
-
pyedb/grpc/database/components.py,sha256
|
|
126
|
+
pyedb/grpc/database/components.py,sha256=dO4ZHgi0dEgc8f_o7emJ3inSeGrrovGeY7hHAhHIoWY,83849
|
|
127
127
|
pyedb/grpc/database/control_file.py,sha256=rEsdYykh5-GcYTrZW32nk3IPpdNjlhlQ2PYgbkBgQ_8,48217
|
|
128
128
|
pyedb/grpc/database/definitions.py,sha256=jtfg2crkmwqn9rEe8pSn1F-TtyBDLl8U6hs7ZmNbXA8,2922
|
|
129
129
|
pyedb/grpc/database/general.py,sha256=QBZlMO4Tzec00HcaLVQ8fDTLox-pHjOcH2wpWge2sZw,1633
|
|
130
|
-
pyedb/grpc/database/hfss.py,sha256
|
|
131
|
-
pyedb/grpc/database/layout_validation.py,sha256=
|
|
130
|
+
pyedb/grpc/database/hfss.py,sha256=-BS-Gm-Ytyj3FRgs7rOK9H7QiD_yNnHX18nut2GCX14,46033
|
|
131
|
+
pyedb/grpc/database/layout_validation.py,sha256=3XNjX6VX942fRPfSqIhGvRACmsQnbrbiXtW0elPwC50,13492
|
|
132
132
|
pyedb/grpc/database/modeler.py,sha256=PT06tPaHh0ILY36HbGKfTwr45AHsxZRUfZFlizzaBnM,55065
|
|
133
133
|
pyedb/grpc/database/nets.py,sha256=aBGhSzudYcq_heAyOX9ucAmLXY4nwOPrnRegRJ3lcHc,21234
|
|
134
|
-
pyedb/grpc/database/padstacks.py,sha256=
|
|
135
|
-
pyedb/grpc/database/siwave.py,sha256=
|
|
136
|
-
pyedb/grpc/database/source_excitations.py,sha256=
|
|
137
|
-
pyedb/grpc/database/stackup.py,sha256=
|
|
134
|
+
pyedb/grpc/database/padstacks.py,sha256=sHzuCuqeckS0ModCVEFNLV6uCr33nUbAaRHgHZb64h4,64997
|
|
135
|
+
pyedb/grpc/database/siwave.py,sha256=sjiJ4D4CCK8WQO9b9vzrETbaCVWKOAjnK7kMW2ZHS3A,35472
|
|
136
|
+
pyedb/grpc/database/source_excitations.py,sha256=syOk88rcLKaPTJUYR3sX1Bo7jbr5rM5g6jLUykNoLJ8,107619
|
|
137
|
+
pyedb/grpc/database/stackup.py,sha256=BieO4aYOb9FwPTlCtpBhuWhRjvhaqERSibaKxOyZgHU,109568
|
|
138
138
|
pyedb/grpc/database/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
139
|
-
pyedb/grpc/database/definition/component_def.py,sha256=
|
|
139
|
+
pyedb/grpc/database/definition/component_def.py,sha256=hc9Rh0E_QB7axgNtUvimLYkKxzRKxEWZsfMjQE0g1G4,7383
|
|
140
140
|
pyedb/grpc/database/definition/component_model.py,sha256=9TRfILC3FfmgSrnYRwEdF2kbY4jFcC5rSeR9xeeb3wg,1689
|
|
141
141
|
pyedb/grpc/database/definition/component_pin.py,sha256=PfwTv6ILn6irJ4P5nB0PNtz2U5dR4NPevsw6P33pAfQ,1493
|
|
142
142
|
pyedb/grpc/database/definition/materials.py,sha256=sN8jkqImW8us6UKI1eSYqwPbb0E1AEGimaH7xj7hfDw,45253
|
|
@@ -169,7 +169,7 @@ pyedb/grpc/database/net/extended_net.py,sha256=DeK1vwsx_kuCWhORitL_z2APTigdtWZZf
|
|
|
169
169
|
pyedb/grpc/database/net/net.py,sha256=T0i_Q_xhpfZSSIplk8fqQlBJIy_jDbdaB298CQcg50E,7027
|
|
170
170
|
pyedb/grpc/database/net/net_class.py,sha256=ojoEZ_7YJW0cEhRWIc9hLBHILBhrVPuRpRjrrBJux3c,2961
|
|
171
171
|
pyedb/grpc/database/ports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
172
|
-
pyedb/grpc/database/ports/ports.py,sha256=
|
|
172
|
+
pyedb/grpc/database/ports/ports.py,sha256=LCBfkFqhUpib-VMz7cY2BrPV4sVGVKq70RTUTy_8Hqw,10231
|
|
173
173
|
pyedb/grpc/database/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
174
174
|
pyedb/grpc/database/primitive/bondwire.py,sha256=IpDhf1z7GtaXZ12wbK172YNGCKkDB6sQ-7wH8HAXMnA,6238
|
|
175
175
|
pyedb/grpc/database/primitive/circle.py,sha256=clKkYUTuQ-Cwbdmk7Uc6x4zi-QN53lVN2C2jKcGTF-8,2514
|
|
@@ -186,7 +186,7 @@ pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py,sha256=H_aqDcxATHK8yeJ
|
|
|
186
186
|
pyedb/grpc/database/simulation_setup/hfss_general_settings.py,sha256=gL39zOgV0ZKDWDlclXwGHiyqKlq35b3TgGpQ5dGi85o,2433
|
|
187
187
|
pyedb/grpc/database/simulation_setup/hfss_settings_options.py,sha256=QqSYROingDWwxdUX1QTMdxrUjqg4-fofxWyR_49mC48,2929
|
|
188
188
|
pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py,sha256=GbToEtsZ5tiYZodcAsUuLzzRd7GrSuVjmRQnT9dWT4s,3946
|
|
189
|
-
pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py,sha256=
|
|
189
|
+
pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py,sha256=Z-RZFEX4iEY0PYVAQ_8lrjr-391XbMC-CXPerG3Q4T4,15306
|
|
190
190
|
pyedb/grpc/database/simulation_setup/hfss_solver_settings.py,sha256=Xi4N-cCO_8-JxMkI_tGyJ3SGcJrP5_rLvdbXx7P-uJI,1474
|
|
191
191
|
pyedb/grpc/database/simulation_setup/mesh_operation.py,sha256=Ejf9v9njc-Ll3jw_DdA26CAT1WreludC6CwBrpoS16A,1439
|
|
192
192
|
pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py,sha256=mo2zHBsdxHG9N81FNefulKjUv-Oi_VkV49kvKKXrhrs,1505
|
|
@@ -194,13 +194,13 @@ pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py,sha256=Sp-r6W8
|
|
|
194
194
|
pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py,sha256=Ovl7CNmSBtC7lxgWfZV-aI2DoCmBWjI4fdwq2bSPvnE,2359
|
|
195
195
|
pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py,sha256=La0fgP9w5iEbDhzTRXzm6NU1Bj8fMJbgWI96r1FOvO0,4783
|
|
196
196
|
pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py,sha256=--LrmRx54PkvgzKEc7HbmVtttir3uOAjJaehilasMaA,1524
|
|
197
|
-
pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py,sha256=
|
|
198
|
-
pyedb/grpc/database/simulation_setup/sweep_data.py,sha256=
|
|
197
|
+
pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py,sha256=LtFl14cy4M5lynrqb0cLr9WMV9iur9dGpoiKI4hJU0g,6484
|
|
198
|
+
pyedb/grpc/database/simulation_setup/sweep_data.py,sha256=NfoUdUdgRFTw9SqR0UZhxaFA13MLpicDa7JXhgkBsug,1897
|
|
199
199
|
pyedb/grpc/database/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
200
200
|
pyedb/grpc/database/terminal/bundle_terminal.py,sha256=hr5FpAuH1gMsDO6CnJBgFU07m5t0XrUOcjhuQ_9tib8,6505
|
|
201
|
-
pyedb/grpc/database/terminal/edge_terminal.py,sha256=
|
|
201
|
+
pyedb/grpc/database/terminal/edge_terminal.py,sha256=6Ea7vZjWVBEt0BR9LyJhOg8n2DDm4Ic_fiGQkFLOJwI,5429
|
|
202
202
|
pyedb/grpc/database/terminal/padstack_instance_terminal.py,sha256=p5EKecNtzN8Zo4exsYA_IGDYRaGyM_3VrmcEnZ5VP2A,6067
|
|
203
|
-
pyedb/grpc/database/terminal/pingroup_terminal.py,sha256=
|
|
203
|
+
pyedb/grpc/database/terminal/pingroup_terminal.py,sha256=ysQCdCq2k6xivXO_0N4_swNCPKqEAbJxqa6wXul49Ms,5739
|
|
204
204
|
pyedb/grpc/database/terminal/point_terminal.py,sha256=gwYJ1UP3Ny1BjcKEBOSPvLf4N3r2ZSIjRsUNkoRShPY,3469
|
|
205
205
|
pyedb/grpc/database/terminal/terminal.py,sha256=n5W7fdcvbWcLH5CeItrZl8DJkGDUtZF080XqBIwkUKA,17008
|
|
206
206
|
pyedb/grpc/database/utility/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
@@ -282,7 +282,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
|
|
|
282
282
|
pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
|
|
283
283
|
pyedb/modeler/geometry_operators.py,sha256=YhR-QE0dvIkbp4SsjWp309KDE1OZa6wUzr8a634MuJ4,74195
|
|
284
284
|
pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
|
|
285
|
-
pyedb-0.
|
|
286
|
-
pyedb-0.
|
|
287
|
-
pyedb-0.
|
|
288
|
-
pyedb-0.
|
|
285
|
+
pyedb-0.45.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
|
|
286
|
+
pyedb-0.45.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
|
|
287
|
+
pyedb-0.45.0.dist-info/METADATA,sha256=YKDuYdhY4PMac09SQ9J7d3coe57XivALh3vmIh6xkgg,8619
|
|
288
|
+
pyedb-0.45.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|