pyedb 0.26.0__py3-none-any.whl → 0.26.2__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 CHANGED
@@ -44,7 +44,7 @@ deprecation_warning()
44
44
  #
45
45
 
46
46
  pyedb_path = os.path.dirname(__file__)
47
- __version__ = "0.26.0"
47
+ __version__ = "0.26.2"
48
48
  version = __version__
49
49
 
50
50
  #
pyedb/dotnet/edb.py CHANGED
@@ -4411,12 +4411,19 @@ class Edb(Database):
4411
4411
  if not temp_directory:
4412
4412
  self.logger.error("Temp directory must be provided when creating model foe arbitrary wave port")
4413
4413
  return False
4414
+ if mounting_side not in ["top", "bottom"]:
4415
+ self.logger.error(
4416
+ "Mounting side must be provided and only `top` or `bottom` are supported. Setting to "
4417
+ "`top` will take the top layer from the current design as reference. Setting to `bottom` "
4418
+ "will take the bottom one."
4419
+ )
4414
4420
  if not output_edb:
4415
4421
  output_edb = os.path.join(temp_directory, "waveport_model.aedb")
4416
4422
  if os.path.isdir(temp_directory):
4417
4423
  shutil.rmtree(temp_directory)
4424
+ os.mkdir(temp_directory)
4418
4425
  reference_layer = list(self.stackup.signal_layers.keys())[0]
4419
- if mounting_side.lower == "bottom":
4426
+ if mounting_side.lower() == "bottom":
4420
4427
  reference_layer = list(self.stackup.signal_layers.keys())[-1]
4421
4428
  if not signal_nets:
4422
4429
  signal_nets = list(self.nets.signal.keys())
@@ -4462,25 +4469,31 @@ class Edb(Database):
4462
4469
  )
4463
4470
  return False
4464
4471
  cloned_edb = Edb(edbpath=output_edb, edbversion=self.edbversion)
4465
- cloned_edb.stackup.add_layer(layer_name="ref", layer_type="signal", thickness=0.0, material="pec")
4472
+
4466
4473
  cloned_edb.stackup.add_layer(
4467
4474
  layer_name="ports",
4468
4475
  layer_type="signal",
4469
4476
  thickness=self.stackup.signal_layers[reference_layer].thickness,
4470
4477
  material="pec",
4471
4478
  )
4472
- box_thick = "100um"
4473
4479
  if launching_box_thickness:
4474
- box_thick = self.edb_value(launching_box_thickness).ToString()
4475
- if mounting_side == "top":
4476
- cloned_edb.stackup.add_layer(
4477
- layer_name="port_pec", layer_type="signal", thickness=box_thick, method="add_on_bottom", material="pec"
4478
- )
4479
- else:
4480
- cloned_edb.stackup.add_layer(
4481
- layer_name="port_pec", layer_type="signal", thickness=box_thick, method="add_on_top", material="pec"
4482
- )
4483
-
4480
+ launching_box_thickness = self.edb_value(launching_box_thickness).ToString()
4481
+ cloned_edb.stackup.add_layer(
4482
+ layer_name="ref",
4483
+ layer_type="signal",
4484
+ thickness=0.0,
4485
+ material="pec",
4486
+ method=f"add_on_{mounting_side}",
4487
+ base_layer="ports",
4488
+ )
4489
+ cloned_edb.stackup.add_layer(
4490
+ layer_name="port_pec",
4491
+ layer_type="signal",
4492
+ thickness=launching_box_thickness,
4493
+ method=f"add_on_{mounting_side}",
4494
+ material="pec",
4495
+ base_layer="ports",
4496
+ )
4484
4497
  for void_info in void_padstacks:
4485
4498
  port_poly = cloned_edb.modeler.create_polygon(
4486
4499
  main_shape=void_info[0].polygon_data._edb_object, layer_name="ref", net_name="GND"
@@ -19,11 +19,11 @@
19
19
  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
- import math
23
22
 
24
23
  from pyedb.dotnet.edb_core.cell.connectable import Connectable
25
24
  from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
26
25
  from pyedb.dotnet.edb_core.geometry.polygon_data import PolygonData
26
+ from pyedb.misc.utilities import compute_arc_points
27
27
  from pyedb.modeler.geometry_operators import GeometryOperators
28
28
 
29
29
 
@@ -202,80 +202,6 @@ class Primitive(Connectable):
202
202
  def is_negative(self, value):
203
203
  self._edb_object.SetIsNegative(value)
204
204
 
205
- @staticmethod
206
- def _eval_arc_points(p1, p2, h, n=6, tol=1e-12):
207
- """Get the points of the arc
208
-
209
- Parameters
210
- ----------
211
- p1 : list
212
- Arc starting point.
213
- p2 : list
214
- Arc ending point.
215
- h : float
216
- Arc height.
217
- n : int
218
- Number of points to generate along the arc.
219
- tol : float
220
- Geometric tolerance.
221
-
222
- Returns
223
- -------
224
- list, list
225
- Points generated along the arc.
226
- """
227
- # fmt: off
228
- if abs(h) < tol:
229
- return [], []
230
- elif h > 0:
231
- reverse = False
232
- x1 = p1[0]
233
- y1 = p1[1]
234
- x2 = p2[0]
235
- y2 = p2[1]
236
- else:
237
- reverse = True
238
- x1 = p2[0]
239
- y1 = p2[1]
240
- x2 = p1[0]
241
- y2 = p1[1]
242
- h *= -1
243
- xa = (x2 - x1) / 2
244
- ya = (y2 - y1) / 2
245
- xo = x1 + xa
246
- yo = y1 + ya
247
- a = math.sqrt(xa ** 2 + ya ** 2)
248
- if a < tol:
249
- return [], []
250
- r = (a ** 2) / (2 * h) + h / 2
251
- if abs(r - a) < tol:
252
- b = 0
253
- th = 2 * math.asin(1) # chord angle
254
- else:
255
- b = math.sqrt(r ** 2 - a ** 2)
256
- th = 2 * math.asin(a / r) # chord angle
257
-
258
- # center of the circle
259
- xc = xo + b * ya / a
260
- yc = yo - b * xa / a
261
-
262
- alpha = math.atan2((y1 - yc), (x1 - xc))
263
- xr = []
264
- yr = []
265
- for i in range(n):
266
- i += 1
267
- dth = (float(i) / (n + 1)) * th
268
- xi = xc + r * math.cos(alpha - dth)
269
- yi = yc + r * math.sin(alpha - dth)
270
- xr.append(xi)
271
- yr.append(yi)
272
-
273
- if reverse:
274
- xr.reverse()
275
- yr.reverse()
276
- # fmt: on
277
- return xr, yr
278
-
279
205
  def _get_points_for_plot(self, my_net_points, num):
280
206
  """
281
207
  Get the points to be plotted.
@@ -295,7 +221,7 @@ class Primitive(Connectable):
295
221
  p2 = [my_net_points[i + 1].X.ToDouble(), my_net_points[i + 1].Y.ToDouble()]
296
222
  else:
297
223
  p2 = [my_net_points[0].X.ToDouble(), my_net_points[0].Y.ToDouble()]
298
- x_arc, y_arc = self._eval_arc_points(p1, p2, arc_h, num)
224
+ x_arc, y_arc = compute_arc_points(p1, p2, arc_h, num)
299
225
  x.extend(x_arc)
300
226
  y.extend(y_arc)
301
227
  # i += 1
@@ -21,8 +21,10 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  """Primitive."""
24
+
24
25
  from pyedb.dotnet.edb_core.dotnet.database import NetDotNet
25
26
  from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
27
+ from pyedb.misc.utilities import compute_arc_points
26
28
  from pyedb.modeler.geometry_operators import GeometryOperators
27
29
 
28
30
 
@@ -256,11 +258,10 @@ class PrimitiveDotNet:
256
258
  """
257
259
  self.prim_obj.MakeZonePrimitive(zone_id)
258
260
 
259
- def _get_points_for_plot(self, my_net_points, num):
261
+ def _get_points_for_plot(self, my_net_points, n=6, tol=1e-12):
260
262
  """
261
263
  Get the points to be plot
262
264
  """
263
- # fmt: off
264
265
  x = []
265
266
  y = []
266
267
  for i, point in enumerate(my_net_points):
@@ -276,11 +277,9 @@ class PrimitiveDotNet:
276
277
  p2 = [my_net_points[i + 1].X.ToDouble(), my_net_points[i + 1].Y.ToDouble()]
277
278
  else:
278
279
  p2 = [my_net_points[0].X.ToDouble(), my_net_points[0].Y.ToDouble()]
279
- x_arc, y_arc = self._eval_arc_points(p1, p2, arc_h, num)
280
+ x_arc, y_arc = compute_arc_points(p1, p2, arc_h, n, tol)
280
281
  x.extend(x_arc)
281
282
  y.extend(y_arc)
282
- # i += 1
283
- # fmt: on
284
283
  return x, y
285
284
 
286
285
  def points(self, arc_segments=6):
@@ -488,7 +488,7 @@ class EDBArcs(object):
488
488
  """
489
489
  try:
490
490
  my_net_points = self.points_raw
491
- xt, yt = self._app._get_points_for_plot(my_net_points, arc_segments)
491
+ xt, yt = self._app._active_cell.primitive._get_points_for_plot(my_net_points, arc_segments)
492
492
  if not xt:
493
493
  return []
494
494
  x, y = GeometryOperators.orient_polygon(xt, yt, clockwise=True)
@@ -22,7 +22,6 @@
22
22
 
23
23
  from __future__ import absolute_import # noreorder
24
24
 
25
- import math
26
25
  import os
27
26
  import time
28
27
  import warnings
@@ -30,6 +29,7 @@ import warnings
30
29
  from pyedb.dotnet.edb_core.edb_data.nets_data import EDBNetsData
31
30
  from pyedb.generic.constants import CSS4_COLORS
32
31
  from pyedb.generic.general_methods import generate_unique_name
32
+ from pyedb.misc.utilities import compute_arc_points
33
33
  from pyedb.modeler.geometry_operators import GeometryOperators
34
34
 
35
35
 
@@ -354,80 +354,6 @@ class EdbNets(object):
354
354
 
355
355
  return _extended_nets
356
356
 
357
- @staticmethod
358
- def _eval_arc_points(p1, p2, h, n=6, tol=1e-12):
359
- """Get the points of the arc.
360
-
361
- Parameters
362
- ----------
363
- p1 : list
364
- Arc starting point.
365
- p2 : list
366
- Arc ending point.
367
- h : float
368
- Arc height.
369
- n : int
370
- Number of points to generate along the arc.
371
- tol : float
372
- Geometric tolerance.
373
-
374
- Returns
375
- -------
376
- list
377
- points generated along the arc.
378
- """
379
- # fmt: off
380
- if abs(h) < tol:
381
- return [], []
382
- elif h > 0:
383
- reverse = False
384
- x1 = p1[0]
385
- y1 = p1[1]
386
- x2 = p2[0]
387
- y2 = p2[1]
388
- else:
389
- reverse = True
390
- x1 = p2[0]
391
- y1 = p2[1]
392
- x2 = p1[0]
393
- y2 = p1[1]
394
- h *= -1
395
- xa = (x2 - x1) / 2
396
- ya = (y2 - y1) / 2
397
- xo = x1 + xa
398
- yo = y1 + ya
399
- a = math.sqrt(xa ** 2 + ya ** 2)
400
- if a < tol:
401
- return [], []
402
- r = (a ** 2) / (2 * h) + h / 2
403
- if abs(r - a) < tol:
404
- b = 0
405
- th = 2 * math.asin(1) # chord angle
406
- else:
407
- b = math.sqrt(r ** 2 - a ** 2)
408
- th = 2 * math.asin(a / r) # chord angle
409
-
410
- # center of the circle
411
- xc = xo + b * ya / a
412
- yc = yo - b * xa / a
413
-
414
- alpha = math.atan2((y1 - yc), (x1 - xc))
415
- xr = []
416
- yr = []
417
- for i in range(n):
418
- i += 1
419
- dth = (i / (n + 1)) * th
420
- xi = xc + r * math.cos(alpha - dth)
421
- yi = yc + r * math.sin(alpha - dth)
422
- xr.append(xi)
423
- yr.append(yi)
424
-
425
- if reverse:
426
- xr.reverse()
427
- yr.reverse()
428
- # fmt: on
429
- return xr, yr
430
-
431
357
  def _get_points_for_plot(self, my_net_points):
432
358
  """
433
359
  Get the points to be plot
@@ -448,7 +374,7 @@ class EdbNets(object):
448
374
  p2 = [my_net_points[i + 1].X.ToDouble(), my_net_points[i + 1].Y.ToDouble()]
449
375
  else:
450
376
  p2 = [my_net_points[0].X.ToDouble(), my_net_points[0].Y.ToDouble()]
451
- x_arc, y_arc = self._eval_arc_points(p1, p2, arc_h)
377
+ x_arc, y_arc = compute_arc_points(p1, p2, arc_h)
452
378
  x.extend(x_arc)
453
379
  y.extend(y_arc)
454
380
  # i += 1
pyedb/misc/utilities.py CHANGED
@@ -1,27 +1,100 @@
1
- from distutils.dir_util import copy_tree
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.
2
22
 
23
+ """Module gathering utility functions for PyEDB modules."""
3
24
 
4
- class file_tools:
5
- def __init__(self):
6
- pass
7
25
 
8
- @staticmethod
9
- def copy_folder(source_folder, destination_folder):
10
- """
26
+ import math
11
27
 
12
- Parameters
13
- ----------
14
- source_folder : str
15
- source folder
16
28
 
17
- destination_folder : str
18
- destination folder.
29
+ def compute_arc_points(p1, p2, h, n=6, tol=1e-12):
30
+ """Get the points of the arc.
19
31
 
32
+ Parameters
33
+ ----------
34
+ p1 : list
35
+ Arc starting point.
36
+ p2 : list
37
+ Arc ending point.
38
+ h : float
39
+ Arc height.
40
+ n : int
41
+ Number of points to generate along the arc.
42
+ tol : float
43
+ Geometric tolerance.
20
44
 
21
- Returns
22
- -------
45
+ Returns
46
+ -------
47
+ list, list
48
+ Points generated along the arc.
49
+ """
50
+ if abs(h) < tol:
51
+ return [], []
52
+ elif h > 0:
53
+ reverse = False
54
+ x1 = p1[0]
55
+ y1 = p1[1]
56
+ x2 = p2[0]
57
+ y2 = p2[1]
58
+ else:
59
+ reverse = True
60
+ x1 = p2[0]
61
+ y1 = p2[1]
62
+ x2 = p1[0]
63
+ y2 = p1[1]
64
+ h *= -1
23
65
 
24
- """
66
+ xa = (x2 - x1) / 2
67
+ ya = (y2 - y1) / 2
68
+ xo = x1 + xa
69
+ yo = y1 + ya
70
+ a = math.sqrt(xa**2 + ya**2)
71
+ if a < tol:
72
+ return [], []
73
+ r = (a**2) / (2 * h) + h / 2
74
+ if abs(r - a) < tol:
75
+ b = 0
76
+ th = 2 * math.asin(1) # chord angle
77
+ else:
78
+ b = math.sqrt(r**2 - a**2)
79
+ th = 2 * math.asin(a / r) # chord angle
25
80
 
26
- copy_tree(source_folder, destination_folder)
27
- return True
81
+ # Center of the circle
82
+ xc = xo + b * ya / a
83
+ yc = yo - b * xa / a
84
+
85
+ alpha = math.atan2((y1 - yc), (x1 - xc))
86
+ xr = []
87
+ yr = []
88
+ for i in range(n):
89
+ i += 1
90
+ dth = (float(i) / (n + 1)) * th
91
+ xi = xc + r * math.cos(alpha - dth)
92
+ yi = yc + r * math.sin(alpha - dth)
93
+ xr.append(xi)
94
+ yr.append(yi)
95
+
96
+ if reverse:
97
+ xr.reverse()
98
+ yr.reverse()
99
+
100
+ return xr, yr
pyedb/siwave.py CHANGED
@@ -11,6 +11,7 @@ from __future__ import absolute_import # noreorder
11
11
  import os
12
12
  from pathlib import Path
13
13
  import pkgutil
14
+ import shutil
14
15
  import sys
15
16
  import tempfile
16
17
  import time
@@ -19,7 +20,7 @@ import warnings
19
20
  from pyedb import Edb
20
21
  from pyedb.dotnet.clr_module import _clr
21
22
  from pyedb.edb_logger import pyedb_logger
22
- from pyedb.generic.general_methods import _pythonver, is_windows
23
+ from pyedb.generic.general_methods import _pythonver, generate_unique_name, is_windows
23
24
  from pyedb.misc.misc import list_installed_ansysem
24
25
  from pyedb.siwave_core.icepak import Icepak
25
26
 
@@ -63,6 +64,11 @@ class Siwave(object): # pragma no cover
63
64
 
64
65
  """
65
66
 
67
+ @property
68
+ def version(self):
69
+ ver = self.oSiwave.GetVersion()
70
+ return ".".join(ver.split(".")[:-1])
71
+
66
72
  @property
67
73
  def version_keys(self):
68
74
  """Version keys for AEDT."""
@@ -330,6 +336,7 @@ class Siwave(object): # pragma no cover
330
336
 
331
337
  """
332
338
  self._main.oSiwave.Quit()
339
+ self._main.oSiwave = None
333
340
  return True
334
341
 
335
342
  def export_element_data(self, simulation_name, file_path, data_type="Vias"):
@@ -509,16 +516,17 @@ class Siwave(object): # pragma no cover
509
516
  # temp_folder = tempfile.TemporaryDirectory(suffix=".ansys")
510
517
  # temp_edb = os.path.join(temp_folder.name, "temp.aedb")
511
518
 
512
- temp_edb = os.path.join(self.file_dir, "temp.aedb")
519
+ temp_edb = os.path.join(tempfile.gettempdir(), generate_unique_name("temp") + ".aedb")
513
520
 
514
521
  self.export_edb(temp_edb)
515
522
  self.oproject.ScrCloseProject()
516
- edbapp = Edb(temp_edb, edbversion=self.current_version)
523
+ edbapp = Edb(temp_edb, edbversion=self.version)
517
524
  edbapp.configuration.load(file_path)
518
525
  edbapp.configuration.run()
519
526
  edbapp.save()
520
527
  edbapp.close()
521
528
  self.import_edb(temp_edb)
529
+ shutil.rmtree(Path(temp_edb), ignore_errors=True)
522
530
 
523
531
  def export_configuration(self, file_path: str):
524
532
  """Export layout information into a configuration file.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyedb
3
- Version: 0.26.0
3
+ Version: 0.26.2
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>
@@ -19,7 +19,7 @@ Requires-Dist: cffi>=1.16.0,<1.18; platform_system=='Linux'
19
19
  Requires-Dist: pywin32 >= 303;platform_system=='Windows'
20
20
  Requires-Dist: ansys-pythonnet >= 3.1.0rc3
21
21
  Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
22
- Requires-Dist: numpy>=1.20.0,<2
22
+ Requires-Dist: numpy>=1.20.0,<2.2
23
23
  Requires-Dist: pandas>=1.1.0,<2.3
24
24
  Requires-Dist: pydantic>=2.6.4,<2.9
25
25
  Requires-Dist: Rtree >= 1.2.0
@@ -27,7 +27,7 @@ Requires-Dist: toml == 0.10.2
27
27
  Requires-Dist: scikit-rf
28
28
  Requires-Dist: ansys-sphinx-theme>=0.10.0,<1.1 ; extra == "doc"
29
29
  Requires-Dist: imageio>=2.30.0,<2.36 ; extra == "doc"
30
- Requires-Dist: ipython>=8.13.0,<8.27 ; extra == "doc"
30
+ Requires-Dist: ipython>=8.13.0,<8.28 ; extra == "doc"
31
31
  Requires-Dist: jupyterlab>=4.0.0,<4.3 ; extra == "doc"
32
32
  Requires-Dist: jupytext>=1.16.0,<1.17 ; extra == "doc"
33
33
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "doc"
@@ -1,7 +1,7 @@
1
- pyedb/__init__.py,sha256=LPbrtRXIz0vH59E8iYey-OmAoq8r4GQp4vPaU_f2o3w,1521
1
+ pyedb/__init__.py,sha256=RglbscTRC8mmU618z55DRmbE_rhlS0DCjMa8U6X7ukM,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=mH3wJ2e-lvAgNjAFRIkLTZ7mUjz7Gp_jm4z-QN66M88,16442
4
+ pyedb/siwave.py,sha256=OT1O7RSC78nmkhzDrwBo8mlWnsIyPCTy8nD1ZZm8BTk,16720
5
5
  pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
6
6
  pyedb/component_libraries/ansys_components.py,sha256=O3ypt832IHY9zG2AD_yrRrbH2KH9P1yFaoi1EO6Zllw,4830
7
7
  pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -23,7 +23,7 @@ pyedb/configuration/cfg_stackup.py,sha256=CX7uNN5QRoYW_MOObknP8003YchTS7PH9Oee7F
23
23
  pyedb/configuration/configuration.py,sha256=fWYRDI0G4O8cyR1pk0_2RNqBOjKVL0oYRevIVjlV8fo,12944
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=uyYtlbirX3S62eKdy2fWBgG6fWLmib5PqH8UDxOvPIM,181316
26
+ pyedb/dotnet/edb.py,sha256=B7HYfgZkc-ezrdMIm3wInWAd5zw6ZMM5KdBG3H6y7L0,181695
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
@@ -35,7 +35,7 @@ pyedb/dotnet/edb_core/layout_validation.py,sha256=B2FIHsize6JZ5VhwN_3zBniK7iRC6d
35
35
  pyedb/dotnet/edb_core/materials.py,sha256=zzYWIJ5dvOIO2H2vREpRnwGDx0hEa5QhCsg_EJkydww,43222
36
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=JZvrlPOKiRjbHAX6GkrYKvaXujHS3lz-rucS0Ib8ezk,43213
38
+ pyedb/dotnet/edb_core/nets.py,sha256=WMKC9aKkmGP_NFqAkQpM8b4AjgDgjhrRXOz8VrN4yj8,41429
39
39
  pyedb/dotnet/edb_core/padstack.py,sha256=al5cXfnJXyaM6-KCAd8D8-TZzcIXHwco8grD44U7gNY,63588
40
40
  pyedb/dotnet/edb_core/siwave.py,sha256=4duoAsFCuPMNLxtMTEEVJCUaHKNkdbLDmtTXiD93VrM,64311
41
41
  pyedb/dotnet/edb_core/stackup.py,sha256=b56leXg7X7dEVPP2DUD9n8LZIakWcjIsjiqqkIWsyZU,120035
@@ -55,7 +55,7 @@ pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCs
55
55
  pyedb/dotnet/edb_core/cell/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
56
56
  pyedb/dotnet/edb_core/cell/primitive/bondwire.py,sha256=fqIMdv0bNvk591DG6De5c--w9Rpkl5AOeo_qgzoPE6M,7322
57
57
  pyedb/dotnet/edb_core/cell/primitive/path.py,sha256=XVN7dOVpccoBP28M8l5iMzK5QSQdHqpKqC4jK76UTis,12543
58
- pyedb/dotnet/edb_core/cell/primitive/primitive.py,sha256=L9MNMc1OD8g_ghN2fhtdxa8v6jv6FY8D7oj7fF2A4vw,29825
58
+ pyedb/dotnet/edb_core/cell/primitive/primitive.py,sha256=4gshnuVsfZOoHFpxCQJIf1qTYw8XX_j7nzLHvJC4vGs,28029
59
59
  pyedb/dotnet/edb_core/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py,sha256=qM0wEXkZ-DpoJ6vlVa560Ce8IgOdp4vyIJPedvoa3O0,1977
61
61
  pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py,sha256=lafPRrvsDPYKcysvrkO-5tEZXF3h4IcTXdeJgTjleuI,2158
@@ -71,7 +71,7 @@ pyedb/dotnet/edb_core/definition/definitions.py,sha256=9Zjl5LNidDBk07m-QGpducWfF
71
71
  pyedb/dotnet/edb_core/definition/package_def.py,sha256=UoYNdfrB5j0rG4OK94yE25dCTzHcpDjSEn4L2yF10YY,6145
72
72
  pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
73
  pyedb/dotnet/edb_core/dotnet/database.py,sha256=9mfEg451IX3Y8PKnyhbVPApqtgmB9R4VTeWyfux8Q0A,36691
74
- pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=GVXsOtTowFiuxFw-Sdv80lv0XZFpoLr4KIj80bEDd7U,49942
74
+ pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=2Mhh-pwnLzZUGLVRSCiBMtcxfvmrU40cASbpfXe1Ecs,49944
75
75
  pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
76
  pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=_W5DDBFvm4gTq8yCvhzfiWUsfpQK4PnLkjmntIYvW8E,48217
77
77
  pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
@@ -81,7 +81,7 @@ pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=2K1rvBXAWg3s8paNU6TPNb5tC1B3
81
81
  pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=Ifi5uSfnOuTLwesO9TS3_F-qa_8rpPXrJy6W5lvIWik,9684
82
82
  pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=wOBO86cFGnx8OIsALzlQv59XeSGBhUYhJa7rksySGRE,77523
83
83
  pyedb/dotnet/edb_core/edb_data/ports.py,sha256=wr2RQi8VExuNIVmnp7c4VpTIhODgthmJmHr01zO4ueo,8873
84
- pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=AkZOS-Uam_SLXy1WpPPlSWCyD1IyQ8afxFcl8gi0A_E,15426
84
+ pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=CC-uSLponRiJKGh1rqc6FsITpBB5on0jP3M7YAGArfM,15449
85
85
  pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py,sha256=P37-OIsc8TuTC_s3CXRmvZcJqxAftHA7SATfEyoAnMM,20953
86
86
  pyedb/dotnet/edb_core/edb_data/simulation_configuration.py,sha256=Z_Iuh7qgj9s0PwmlOOdBOC47imBTgWPAWt8KxGNZmZQ,100432
87
87
  pyedb/dotnet/edb_core/edb_data/sources.py,sha256=jzC6p-fiuPEvZn3b9z1-X5UexW5jd48jZRamXillnXI,15700
@@ -169,7 +169,7 @@ pyedb/misc/aedtlib_personalib_install.py,sha256=eCVAdEoriMU92bZwPzY9Aig85cBbUO0J
169
169
  pyedb/misc/downloads.py,sha256=j9jJhwGTTJwm4WWaCSEhGZzOGyOyHhBAFexx0NtD4Uw,10824
170
170
  pyedb/misc/misc.py,sha256=3vyQ-l7lKUxdpdc_kGc7QNwu_EkmD8rRxe01Zx5Drr4,3315
171
171
  pyedb/misc/pyedb.runtimeconfig.json,sha256=2xof-Vl0hY2VOs1KkMSReTMZACsZhcmPmyHXukfb-oY,301
172
- pyedb/misc/utilities.py,sha256=w8mSGtgBlakcdOtWyP_NY0hUu_hxannOQOBvVxn02Fc,465
172
+ pyedb/misc/utilities.py,sha256=tW5O8R-qo0yhAufKZWxZPzbVy8qcz6UJCIqrKNhlghk,2742
173
173
  pyedb/misc/siw_feature_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
174
  pyedb/misc/siw_feature_config/emc_rule_checker_settings.py,sha256=arnOR1gSo5aGxLrRQbYewdg1jyce9EyLonPZeHYYVVE,7389
175
175
  pyedb/misc/siw_feature_config/emc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -185,7 +185,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
185
185
  pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
186
186
  pyedb/modeler/geometry_operators.py,sha256=g_Sy7a6R23sP6RtboJn1rl8uTuo8oeLmMF21rNkzwjk,74198
187
187
  pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
188
- pyedb-0.26.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
189
- pyedb-0.26.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
190
- pyedb-0.26.0.dist-info/METADATA,sha256=jAmjbUO3XTLpJ7Y-PIpgYQvcktdrERXU9caJNfVcSXc,8386
191
- pyedb-0.26.0.dist-info/RECORD,,
188
+ pyedb-0.26.2.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
189
+ pyedb-0.26.2.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
190
+ pyedb-0.26.2.dist-info/METADATA,sha256=8buRdKWtIIWq5lyQWkomJ_4QUeH5k_hZV8Tj0y97no8,8388
191
+ pyedb-0.26.2.dist-info/RECORD,,
File without changes