pyedb 0.14.0__py3-none-any.whl → 0.15.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.

@@ -0,0 +1,369 @@
1
+ import warnings
2
+
3
+ from pyedb.dotnet.edb_core.general import (
4
+ convert_netdict_to_pydict,
5
+ convert_pydict_to_netdict,
6
+ )
7
+ from pyedb.dotnet.edb_core.sim_setup_data.data.sim_setup_info import SimSetupInfo
8
+ from pyedb.dotnet.edb_core.sim_setup_data.data.siw_dc_ir_settings import (
9
+ SiwaveDCIRSettings,
10
+ )
11
+ from pyedb.dotnet.edb_core.sim_setup_data.io.siwave import (
12
+ AdvancedSettings,
13
+ DCAdvancedSettings,
14
+ DCSettings,
15
+ )
16
+ from pyedb.dotnet.edb_core.utilities.simulation_setup import SimulationSetup
17
+ from pyedb.generic.general_methods import is_linux
18
+
19
+
20
+ def _parse_value(v):
21
+ """Parse value in C sharp format."""
22
+ # duck typing parse of the value 'v'
23
+ if v is None or v == "":
24
+ pv = v
25
+ elif v == "true":
26
+ pv = True
27
+ elif v == "false":
28
+ pv = False
29
+ else:
30
+ try:
31
+ pv = int(v)
32
+ except ValueError:
33
+ try:
34
+ pv = float(v)
35
+ except ValueError:
36
+ if isinstance(v, str) and v[0] == v[-1] == "'":
37
+ pv = v[1:-1]
38
+ else:
39
+ pv = v
40
+ return pv
41
+
42
+
43
+ def clone_edb_sim_setup_info(source, target):
44
+ string = source.ToString().replace("\t", "").split("\r\n")
45
+ if is_linux:
46
+ string = string[0].split("\n")
47
+ keys = [i.split("=")[0] for i in string if len(i.split("=")) == 2 and "SourceTermsToGround" not in i]
48
+ values = [i.split("=")[1] for i in string if len(i.split("=")) == 2 and "SourceTermsToGround" not in i]
49
+ for val in string:
50
+ if "SourceTermsToGround()" in val:
51
+ break
52
+ elif "SourceTermsToGround" in val:
53
+ sources = {}
54
+ val = val.replace("SourceTermsToGround(", "").replace(")", "").split(",")
55
+ for v in val:
56
+ source = v.split("=")
57
+ sources[source[0]] = int(source[1].replace("'", ""))
58
+ target.SimulationSettings.DCIRSettings.SourceTermsToGround = convert_pydict_to_netdict(sources)
59
+ break
60
+ for k in keys:
61
+ value = _parse_value(values[keys.index(k)])
62
+ setter = None
63
+ if k in dir(target.SimulationSettings):
64
+ setter = target.SimulationSettings
65
+ elif k in dir(target.SimulationSettings.AdvancedSettings):
66
+ setter = target.SimulationSettings.AdvancedSettings
67
+
68
+ elif k in dir(target.SimulationSettings.DCAdvancedSettings):
69
+ setter = target.SimulationSettings.DCAdvancedSettings
70
+ elif "DCIRSettings" in dir(target.SimulationSettings) and k in dir(target.SimulationSettings.DCIRSettings):
71
+ setter = target.SimulationSettings.DCIRSettings
72
+ elif k in dir(target.SimulationSettings.DCSettings):
73
+ setter = target.SimulationSettings.DCSettings
74
+ elif k in dir(target.SimulationSettings.AdvancedSettings):
75
+ setter = target.SimulationSettings.AdvancedSettings
76
+ if setter:
77
+ try:
78
+ setter.__setattr__(k, value)
79
+ except TypeError:
80
+ try:
81
+ setter.__setattr__(k, str(value))
82
+ except:
83
+ pass
84
+
85
+
86
+ class SiwaveSimulationSetup(SimulationSetup):
87
+ """Manages EDB methods for SIwave simulation setup."""
88
+
89
+ def __init__(self, pedb, edb_object=None, name: str = None):
90
+ super().__init__(pedb, edb_object)
91
+ self._simulation_setup_builder = self._pedb._edb.Utility.SIWaveSimulationSetup
92
+ if edb_object is None:
93
+ self._name = name
94
+ sim_setup_info = SimSetupInfo(self._pedb, sim_setup=self, setup_type="kSIwave", name=name)
95
+ self._edb_object = self._simulation_setup_builder(sim_setup_info._edb_object)
96
+ self._update_setup()
97
+
98
+ def create(self, name=None):
99
+ """Create a SIwave SYZ setup.
100
+
101
+ Returns
102
+ -------
103
+ :class:`SiwaveDCSimulationSetup`
104
+ """
105
+ self._name = name
106
+ self._create(name, simulation_setup_type="kSIwave")
107
+ self.si_slider_position = 1
108
+
109
+ return self
110
+
111
+ def get_configurations(self):
112
+ """Get SIwave SYZ simulation settings.
113
+
114
+ Returns
115
+ -------
116
+ dict
117
+ Dictionary of SIwave SYZ simulation settings.
118
+ """
119
+ return {
120
+ "pi_slider_position": self.pi_slider_position,
121
+ "si_slider_position": self.si_slider_position,
122
+ "use_custom_settings": self.use_si_settings,
123
+ "use_si_settings": self.use_si_settings,
124
+ "advanced_settings": self.advanced_settings.get_configurations(),
125
+ }
126
+
127
+ @property
128
+ def advanced_settings(self):
129
+ """SIwave advanced settings."""
130
+ return AdvancedSettings(self)
131
+
132
+ @property
133
+ def sim_setup_info(self):
134
+ """Overrides the default sim_setup_info object."""
135
+ return SimSetupInfo(self._pedb, sim_setup=self, edb_object=self.get_sim_setup_info)
136
+
137
+ @sim_setup_info.setter
138
+ def sim_setup_info(self, sim_setup_info):
139
+ self._edb_object = self._simulation_setup_builder(sim_setup_info._edb_object)
140
+
141
+ @property
142
+ def get_sim_setup_info(self):
143
+ """Get simulation information from the setup."""
144
+
145
+ sim_setup_info = SimSetupInfo(self._pedb, sim_setup=self, setup_type="kSIwave", name=self._edb_object.GetName())
146
+ clone_edb_sim_setup_info(source=self._edb_object, target=sim_setup_info._edb_object)
147
+ return sim_setup_info._edb_object
148
+
149
+ def set_pi_slider(self, value):
150
+ """Set SIwave PI simulation accuracy level.
151
+ Options are:
152
+ - ``0``: Optimal speed
153
+ - ``1``: Balanced
154
+ - ``2``: Optimal accuracy
155
+
156
+ .. deprecated:: 0.7.5
157
+ Use :property:`pi_slider_position` property instead.
158
+
159
+ """
160
+ warnings.warn("`set_pi_slider` is deprecated. Use `pi_slider_position` property instead.", DeprecationWarning)
161
+ self.pi_slider_position = value
162
+
163
+ def set_si_slider(self, value):
164
+ """Set SIwave SI simulation accuracy level.
165
+
166
+ Options are:
167
+ - ``0``: Optimal speed;
168
+ - ``1``: Balanced;
169
+ - ``2``: Optimal accuracy```.
170
+ """
171
+ self.use_si_settings = True
172
+ self.use_custom_settings = False
173
+ self.si_slider_position = value
174
+ self.advanced_settings.set_si_slider(value)
175
+
176
+ @property
177
+ def pi_slider_position(self):
178
+ """PI solider position. Values are from ``1`` to ``3``."""
179
+ return self.get_sim_setup_info.SimulationSettings.PISliderPos
180
+
181
+ @pi_slider_position.setter
182
+ def pi_slider_position(self, value):
183
+ edb_setup_info = self.get_sim_setup_info
184
+ edb_setup_info.SimulationSettings.PISliderPos = value
185
+ self._edb_object = self._set_edb_setup_info(edb_setup_info)
186
+ self._update_setup()
187
+
188
+ self.use_si_settings = False
189
+ self.use_custom_settings = False
190
+ self.advanced_settings.set_pi_slider(value)
191
+
192
+ @property
193
+ def si_slider_position(self):
194
+ """SI slider position. Values are from ``1`` to ``3``."""
195
+ return self.get_sim_setup_info.SimulationSettings.SISliderPos
196
+
197
+ @si_slider_position.setter
198
+ def si_slider_position(self, value):
199
+ edb_setup_info = self.get_sim_setup_info
200
+ edb_setup_info.SimulationSettings.SISliderPos = value
201
+ self._edb_object = self._set_edb_setup_info(edb_setup_info)
202
+ self._update_setup()
203
+
204
+ self.use_si_settings = True
205
+ self.use_custom_settings = False
206
+ self.advanced_settings.set_si_slider(value)
207
+
208
+ @property
209
+ def use_custom_settings(self):
210
+ """Custom settings to use.
211
+
212
+ Returns
213
+ -------
214
+ bool
215
+ """
216
+ return self.get_sim_setup_info.SimulationSettings.UseCustomSettings
217
+
218
+ @use_custom_settings.setter
219
+ def use_custom_settings(self, value):
220
+ edb_setup_info = self.get_sim_setup_info
221
+ edb_setup_info.SimulationSettings.UseCustomSettings = value
222
+ self._edb_object = self._set_edb_setup_info(edb_setup_info)
223
+ self._update_setup()
224
+
225
+ @property
226
+ def use_si_settings(self):
227
+ """Whether to use SI Settings.
228
+
229
+ Returns
230
+ -------
231
+ bool
232
+ """
233
+ return self.get_sim_setup_info.SimulationSettings.UseSISettings
234
+
235
+ @use_si_settings.setter
236
+ def use_si_settings(self, value):
237
+ edb_setup_info = self.get_sim_setup_info
238
+ edb_setup_info.SimulationSettings.UseSISettings = value
239
+ self._edb_object = self._set_edb_setup_info(edb_setup_info)
240
+ self._update_setup()
241
+
242
+
243
+ class SiwaveDCSimulationSetup(SimulationSetup):
244
+ """Manages EDB methods for SIwave DC simulation setup."""
245
+
246
+ def __init__(self, pedb, edb_object=None, name: str = None):
247
+ super().__init__(pedb, edb_object)
248
+ self._simulation_setup_builder = self._pedb._edb.Utility.SIWaveDCIRSimulationSetup
249
+ self._mesh_operations = {}
250
+ if edb_object is None:
251
+ self._name = name
252
+ sim_setup_info = SimSetupInfo(self._pedb, sim_setup=self, setup_type="kSIwaveDCIR", name=name)
253
+ self._edb_object = self._simulation_setup_builder(sim_setup_info._edb_object)
254
+ self._update_setup()
255
+
256
+ def create(self, name=None):
257
+ """Create a SIwave DCIR setup.
258
+
259
+ Returns
260
+ -------
261
+ :class:`SiwaveDCSimulationSetup`
262
+ """
263
+ self._name = name
264
+ self._create(name)
265
+ self.set_dc_slider(1)
266
+ return self
267
+
268
+ @property
269
+ def sim_setup_info(self):
270
+ """Overrides the default sim_setup_info object."""
271
+ return SimSetupInfo(self._pedb, sim_setup=self, edb_object=self.get_sim_setup_info)
272
+
273
+ @sim_setup_info.setter
274
+ def sim_setup_info(self, sim_setup_info):
275
+ self._edb_object = self._simulation_setup_builder(sim_setup_info._edb_object)
276
+
277
+ @property
278
+ def get_sim_setup_info(self):
279
+ """Get simulation information from the setup."""
280
+
281
+ sim_setup_info = SimSetupInfo(
282
+ self._pedb, sim_setup=self, setup_type="kSIwaveDCIR", name=self._edb_object.GetName()
283
+ )
284
+ clone_edb_sim_setup_info(source=self._edb_object, target=sim_setup_info._edb_object)
285
+ return sim_setup_info._edb_object
286
+
287
+ @property
288
+ def dc_ir_settings(self):
289
+ """DC IR settings."""
290
+ return SiwaveDCIRSettings(self)
291
+
292
+ def get_configurations(self):
293
+ """Get SIwave DC simulation settings.
294
+
295
+ Returns
296
+ -------
297
+ dict
298
+ Dictionary of SIwave DC simulation settings.
299
+ """
300
+ return {
301
+ "dc_settings": self.dc_settings.get_configurations(),
302
+ "dc_advanced_settings": self.dc_advanced_settings.get_configurations(),
303
+ }
304
+
305
+ def set_dc_slider(self, value):
306
+ """Set DC simulation accuracy level.
307
+
308
+ Options are:
309
+
310
+ - ``0``: Optimal speed
311
+ - ``1``: Balanced
312
+ - ``2``: Optimal accuracy
313
+ """
314
+ self.use_custom_settings = False
315
+ self.dc_settings.dc_slider_position = value
316
+ self.dc_advanced_settings.set_dc_slider(value)
317
+
318
+ @property
319
+ def dc_settings(self):
320
+ """SIwave DC setting."""
321
+ return DCSettings(self)
322
+
323
+ @property
324
+ def dc_advanced_settings(self):
325
+ """Siwave DC advanced settings.
326
+
327
+ Returns
328
+ -------
329
+ :class:`pyedb.dotnet.edb_core.edb_data.siwave_simulation_setup_data.SiwaveDCAdvancedSettings`
330
+ """
331
+ return DCAdvancedSettings(self)
332
+
333
+ @property
334
+ def source_terms_to_ground(self):
335
+ """Dictionary of grounded terminals.
336
+
337
+ Returns
338
+ -------
339
+ Dictionary
340
+ {str, int}, keys is source name, value int 0 unspecified, 1 negative node, 2 positive one.
341
+
342
+ """
343
+ return convert_netdict_to_pydict(self.get_sim_setup_info.SimulationSettings.DCIRSettings.SourceTermsToGround)
344
+
345
+ def add_source_terminal_to_ground(self, source_name, terminal=0):
346
+ """Add a source terminal to ground.
347
+
348
+ Parameters
349
+ ----------
350
+ source_name : str,
351
+ Source name.
352
+ terminal : int, optional
353
+ Terminal to assign. Options are:
354
+
355
+ - 0=Unspecified
356
+ - 1=Negative node
357
+ - 2=Positive none
358
+
359
+ Returns
360
+ -------
361
+ bool
362
+
363
+ """
364
+ terminals = self.source_terms_to_ground
365
+ terminals[source_name] = terminal
366
+ self.get_sim_setup_info.SimulationSettings.DCIRSettings.SourceTermsToGround = convert_pydict_to_netdict(
367
+ terminals
368
+ )
369
+ return self._update_setup()
pyedb/siwave.py CHANGED
@@ -21,6 +21,22 @@ from pyedb.misc.misc import list_installed_ansysem
21
21
  from pyedb.siwave_core.icepak import Icepak
22
22
 
23
23
 
24
+ def wait_export_file(flag, file_path, time_sleep=0.5):
25
+ while True:
26
+ if os.path.isfile(file_path):
27
+ break
28
+ else:
29
+ time.sleep(1)
30
+ os.path.getsize(file_path)
31
+ while True:
32
+ file_size = os.path.getsize(file_path)
33
+ if file_size > 0:
34
+ break
35
+ else:
36
+ time.sleep(time_sleep)
37
+ return True
38
+
39
+
24
40
  class Siwave(object): # pragma no cover
25
41
  """Initializes SIwave based on the inputs provided and manages SIwave release and closing.
26
42
 
@@ -309,8 +325,12 @@ class Siwave(object): # pragma no cover
309
325
  bool
310
326
  ``True`` when successful, ``False`` when failed.
311
327
  """
312
- self.oproject.ScrExportElementData(simulation_name, file_path, data_type)
313
- return True
328
+ flag = self.oproject.ScrExportElementData(simulation_name, file_path, data_type)
329
+ if flag == 0:
330
+ self._logger.info(f"Exporting element data to {file_path}.")
331
+ return wait_export_file(flag, file_path, time_sleep=1)
332
+ else:
333
+ return False
314
334
 
315
335
  def export_siwave_report(self, simulation_name, file_path, bkground_color="White"):
316
336
  """Export the Siwave report.
@@ -358,20 +378,8 @@ class Siwave(object): # pragma no cover
358
378
  self.oproject.ScrExportDcSimReportScaling("All", "All", -1, -1, False)
359
379
  flag = self.oproject.ScrExportDcSimReport(simulation_name, background_color, fpath)
360
380
  if flag == 0:
361
- while True:
362
- self._logger.info(f"Exporting Siwave DC simulation report to {fpath}.")
363
- if os.path.isfile(fpath):
364
- break
365
- else:
366
- time.sleep(1)
367
- os.path.getsize(fpath)
368
- while True:
369
- file_size = os.path.getsize(fpath)
370
- if file_size > 0:
371
- break
372
- else:
373
- time.sleep(1)
374
- return True
381
+ self._logger.info(f"Exporting Siwave DC simulation report to {fpath}.")
382
+ return wait_export_file(flag, fpath, time_sleep=1)
375
383
  else:
376
384
  return False
377
385
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyedb
3
- Version: 0.14.0
3
+ Version: 0.15.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>
@@ -22,7 +22,7 @@ Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
22
22
  Requires-Dist: pydantic>=2.6.4,<2.8
23
23
  Requires-Dist: toml == 0.10.2
24
24
  Requires-Dist: Rtree >= 1.2.0
25
- Requires-Dist: numpy>=1.20.0,<2
25
+ Requires-Dist: numpy>=1.20.0,<3
26
26
  Requires-Dist: ansys-sphinx-theme>=0.10.0,<0.17 ; extra == "doc"
27
27
  Requires-Dist: imageio>=2.30.0,<2.35 ; extra == "doc"
28
28
  Requires-Dist: ipython>=8.13.0,<8.26 ; extra == "doc"
@@ -41,7 +41,7 @@ Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
41
41
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "full"
42
42
  Requires-Dist: pandas>=1.1.0,<2.3 ; extra == "full"
43
43
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "tests"
44
- Requires-Dist: numpy>=1.20.0,<2 ; extra == "tests"
44
+ Requires-Dist: numpy>=1.20.0,<3 ; extra == "tests"
45
45
  Requires-Dist: mock>=5.1.0,<5.2 ; extra == "tests"
46
46
  Requires-Dist: pandas>=1.1.0,<2.3 ; extra == "tests"
47
47
  Requires-Dist: pytest>=7.4.0,<8.3 ; extra == "tests"
@@ -1,7 +1,7 @@
1
- pyedb/__init__.py,sha256=a4MDi9HhM1y7ivscGHNtGgkgMu2g_yR8q5q97tvwhWU,1521
1
+ pyedb/__init__.py,sha256=ikLG55mimstWvvlVdh0MuRlCP8bx_lJ9dx4rzqN0Fr8,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=HMCbGb0_OnwGx7WmVyk-gC5xq3SRTbIbAwcTUCV6E3E,12865
4
+ pyedb/siwave.py,sha256=p-j2AmJ3RPG9IKieDxiVPRhzRlXbjpxENP9GHAgT6l8,13086
5
5
  pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  pyedb/configuration/cfg_boundaries.py,sha256=ckb-OfaObItwy-xc0LqkHJyeCfKC5vg668olPjZbaKo,6647
7
7
  pyedb/configuration/cfg_common.py,sha256=PVLYBv6pWiVAPa4haOsXdC87hH82rpZTkVW-MOqUObs,2020
@@ -21,7 +21,7 @@ pyedb/configuration/cfg_stackup.py,sha256=YIFyfGAwnlErPGB5y87Viau_wxISofCHl5fPWV
21
21
  pyedb/configuration/configuration.py,sha256=At0W6PbIbV72nBzpLlLz0ElP99T5xMB9kNjmdjJ_dck,11275
22
22
  pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
24
- pyedb/dotnet/edb.py,sha256=Wp34lZqrXXzK1epX9Sw2fiNqetnwjwLrBh7SOJ_fZNQ,178954
24
+ pyedb/dotnet/edb.py,sha256=QUw9Jv97vXTCB8G-RuILjURt4iYSvHDlwv9cKHOPCww,179407
25
25
  pyedb/dotnet/application/Variables.py,sha256=v_fxFJ6xjyyhk4uaMzWAbP-1FhXGuKsVNuyV1huaPME,77867
26
26
  pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
27
27
  pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
@@ -34,11 +34,13 @@ pyedb/dotnet/edb_core/materials.py,sha256=9HTDzxraPjAl3Jc7beHQfxe6axQY-tw6hDW1A0
34
34
  pyedb/dotnet/edb_core/net_class.py,sha256=fAQoXsjn-Ae3gVYnUJO7yGZ6zEDEf_Zx5Mzq_h0UH7k,11582
35
35
  pyedb/dotnet/edb_core/nets.py,sha256=RtT22k4KGnFX1aLIsbIGoiWuxxdjCg8lYALDDB5bNAk,43384
36
36
  pyedb/dotnet/edb_core/padstack.py,sha256=-17eWSsUnh5Af_nZes505_on8Hy4GkWsP7vFBssqZ5Q,62760
37
- pyedb/dotnet/edb_core/siwave.py,sha256=3qxDS6kJp9q0F6lfYNFJAmCpxQUTDxA2FDywbyS28lI,61716
37
+ pyedb/dotnet/edb_core/siwave.py,sha256=swrXSIWD0P5i7aiIDfhwrXMoPA-lo7CFGipyfk8MHAY,63737
38
38
  pyedb/dotnet/edb_core/stackup.py,sha256=BbfamGczV7j0B2knGPT4SJPZPGz7Rb1jgXTgMr-Yd1o,120808
39
+ pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
40
  pyedb/dotnet/edb_core/cell/layout.py,sha256=a6ey3YHkfq352k474bVS6LcppyWrsUHsVEJPrnMI-QE,4703
40
41
  pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=xFqY4FAHdiNZWexQRRGHYqWcQ5SvFR9kDxMBGXBqbW8,4180
41
42
  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
42
44
  pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
45
  pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=FFJOX3bBc39vvDp90LmxsUJKpS5N_VhdDbDPJy28hN8,33934
44
46
  pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=LwXE4VUfptG5rJ9gmAmye0hECBv7bUGtby1ZzNFkeT0,3198
@@ -86,15 +88,19 @@ pyedb/dotnet/edb_core/sim_setup_data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQm
86
88
  pyedb/dotnet/edb_core/sim_setup_data/data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
87
89
  pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py,sha256=tlHI7PUUoseNnJAtihpjb1PwXYNr-4ztAAnunlLLWVQ,2463
88
90
  pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py,sha256=tP55JjbCvhJiWNNFbyia4_K43j1IkdRo-YtaaoPz5gU,7919
89
- pyedb/dotnet/edb_core/sim_setup_data/data/settings.py,sha256=738pF5gm4Fs8Z4splpnJRJ0O3aoBw-sGnMdVOeZRi3w,27627
91
+ 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
90
94
  pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py,sha256=b7Zpg6nNQArYxvdxlVhXDzvvCSC5sKFvdt10b0MHkvc,8605
91
- pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py,sha256=Pg1Y9y1qTpmifbj3_6aS63GzDpfBnONmPJZhyH8nWTU,16304
95
+ pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py,sha256=fs9kk5futupQUoG_k4lD9krY89YFHwkc7KTHaTdF2DA,17071
92
96
  pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
97
  pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py,sha256=XOGBUtFuBJ61lsyylmW0mR_FDbnmwJ7s58r36peREhE,31311
94
98
  pyedb/dotnet/edb_core/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
95
99
  pyedb/dotnet/edb_core/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
100
+ pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py,sha256=YJr1k0iRaw3rswcX57YPKCU_kStkLMQkpmrr6FeWBiM,13819
96
101
  pyedb/dotnet/edb_core/utilities/obj_base.py,sha256=lufR0sZj0QfZ2wlNvLL6aM1KVqCNY2A7taPPdWcK20w,3312
97
- pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=UbEbs90j-cHQYukeGUrctPlKr5l70Aj6o-ZXsT94bQ8,34262
102
+ pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=_yRSgYZRXWZw-uS7fXREIhhT3g4XtJM-trXvWfoYIYc,11594
103
+ pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py,sha256=s24jfphD88c1Ru_bN2R-Hl70VdPzusBz7d75oYujtl4,12383
98
104
  pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
105
  pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
100
106
  pyedb/generic/data_handlers.py,sha256=rfqNe2tPCJRqhXZBCyWxRFu5SjQ92Cdzq4l0TDC4Pvw,6905
@@ -167,7 +173,7 @@ pyedb/misc/siw_feature_config/emc/tag_library.py,sha256=yUK4w3hequU017E2DbkA4KE2
167
173
  pyedb/misc/siw_feature_config/emc/xml_generic.py,sha256=55X-V0OxWq-v7FTiDVjaZif8V_2xxsvJlJ8bs9Bf61I,2521
168
174
  pyedb/modeler/geometry_operators.py,sha256=iXNGfp3oMAxc6Ij_jatawR9NAKksMfnmWTaoHQVGX80,72699
169
175
  pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
170
- pyedb-0.14.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
171
- pyedb-0.14.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
172
- pyedb-0.14.0.dist-info/METADATA,sha256=u08pkNNxLDxUgFbD3P3PPn43CK5emzwDV_QwzDBsnc8,8336
173
- pyedb-0.14.0.dist-info/RECORD,,
176
+ pyedb-0.15.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
177
+ pyedb-0.15.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
178
+ pyedb-0.15.0.dist-info/METADATA,sha256=S2CnVCGVKwvjhyNatAma3o1zlQaEhjaepHEHSZQYBwA,8336
179
+ pyedb-0.15.0.dist-info/RECORD,,
File without changes