pyedb 0.31.0__py3-none-any.whl → 0.34.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.

@@ -22,18 +22,15 @@
22
22
 
23
23
  from __future__ import absolute_import # noreorder
24
24
 
25
- import os
26
- import time
27
25
  import warnings
28
26
 
27
+ from pyedb.common.nets import CommonNets
29
28
  from pyedb.dotnet.edb_core.edb_data.nets_data import EDBNetsData
30
- from pyedb.generic.constants import CSS4_COLORS
31
29
  from pyedb.generic.general_methods import generate_unique_name
32
30
  from pyedb.misc.utilities import compute_arc_points
33
- from pyedb.modeler.geometry_operators import GeometryOperators
34
31
 
35
32
 
36
- class EdbNets(object):
33
+ class EdbNets(CommonNets):
37
34
  """Manages EDB methods for nets management accessible from `Edb.nets` property.
38
35
 
39
36
  Examples
@@ -381,295 +378,6 @@ class EdbNets(object):
381
378
  # fmt: on
382
379
  return x, y
383
380
 
384
- def get_plot_data(
385
- self,
386
- nets=None,
387
- layers=None,
388
- color_by_net=False,
389
- outline=None,
390
- plot_components_on_top=False,
391
- plot_components_on_bottom=False,
392
- ):
393
- """Return List of points for Matplotlib 2D Chart.
394
-
395
- Parameters
396
- ----------
397
- nets : str, list, optional
398
- Name of the net or list of nets to plot. If `None` (default value) all nets will be plotted.
399
- layers : str, list, optional
400
- Name of the layers to include in the plot. If `None` all the signal layers will be considered.
401
- color_by_net : bool, optional
402
- If ``True`` the plot will be colored by net.
403
- If ``False`` the plot will be colored by layer. (default)
404
- outline : list, optional
405
- List of points of the outline to plot.
406
- plot_components_on_top : bool, optional
407
- If ``True`` the components placed on top layer are plotted.
408
- If ``False`` the components are not plotted. (default)
409
- If nets and/or layers is specified, only the components belonging to the specified nets/layers are plotted.
410
- plot_components_on_bottom : bool, optional
411
- If ``True`` the components placed on bottom layer are plotted.
412
- If ``False`` the components are not plotted. (default)
413
- If nets and/or layers is specified, only the components belonging to the specified nets/layers are plotted.
414
-
415
- Returns
416
- -------
417
- List, str: list of data to be used in plot.
418
- In case of remote session it will be returned a string that could be converted \
419
- to list using ast.literal_eval().
420
- """
421
- start_time = time.time()
422
- if not nets:
423
- nets = list(self.nets.keys())
424
- if isinstance(nets, str):
425
- nets = [nets]
426
- if not layers:
427
- layers = list(self._pedb.stackup.signal_layers.keys())
428
- if isinstance(layers, str):
429
- layers = [layers]
430
- color_index = 0
431
- objects_lists = []
432
- label_colors = {}
433
- n_label = 0
434
- max_labels = 10
435
-
436
- if outline:
437
- xt = [i[0] for i in outline]
438
- yt = [i[1] for i in outline]
439
- xc, yc = GeometryOperators.orient_polygon(xt, yt, clockwise=True)
440
- vertices = [(i, j) for i, j in zip(xc, yc)]
441
- codes = [2 for _ in vertices]
442
- codes[0] = 1
443
- vertices.append((0, 0))
444
- codes.append(79)
445
- objects_lists.append([vertices, codes, "b", "Outline", 1.0, 1.5, "contour"])
446
- n_label += 1
447
- layer_colors = {i: k.color for i, k in self._pedb.stackup.layers.items()}
448
- top_layer = list(self._pedb.stackup.signal_layers.keys())[0]
449
- bottom_layer = list(self._pedb.stackup.signal_layers.keys())[-1]
450
- if plot_components_on_top or plot_components_on_bottom:
451
- nc = 0
452
- for comp in self._pedb.components.instances.values():
453
- if not comp.is_enabled:
454
- continue
455
- net_names = comp.nets
456
- if nets and not any([i in nets for i in net_names]):
457
- continue
458
- layer_name = comp.placement_layer
459
- if layer_name not in layers:
460
- continue
461
- if plot_components_on_top and layer_name == top_layer:
462
- component_color = (184 / 255, 115 / 255, 51 / 255) # this is the color used in AEDT
463
- label = "Component on top layer"
464
- elif plot_components_on_bottom and layer_name == bottom_layer:
465
- component_color = (41 / 255, 171 / 255, 135 / 255) # 41, 171, 135
466
- label = "Component on bottom layer"
467
- else:
468
- continue
469
- cbb = comp.bounding_box
470
- x = [cbb[0], cbb[0], cbb[2], cbb[2]]
471
- y = [cbb[1], cbb[3], cbb[3], cbb[1]]
472
- vertices = [(i, j) for i, j in zip(x, y)]
473
- codes = [2 for _ in vertices]
474
- codes[0] = 1
475
- vertices.append((0, 0))
476
- codes.append(79)
477
- if label not in label_colors:
478
- label_colors[label] = component_color
479
- objects_lists.append([vertices, codes, label_colors[label], label, 1.0, 2.0, "contour"])
480
- n_label += 1
481
- else:
482
- objects_lists.append([vertices, codes, label_colors[label], None, 1.0, 2.0, "contour"])
483
- nc += 1
484
- self._logger.debug("Plotted {} component(s)".format(nc))
485
- for prim in self._pedb.modeler.primitives:
486
- if prim.is_void:
487
- continue
488
- net_name = prim.net_name
489
- layer_name = prim.layer_name
490
- if nets and (net_name not in nets or layer_name not in layers):
491
- continue
492
- prim_type = prim.primitive_type
493
- if prim_type == "path":
494
- try:
495
- x, y = prim.points()
496
- except ValueError:
497
- x = None
498
- if not x:
499
- continue
500
- create_label = False
501
- if not color_by_net:
502
- label = "Layer " + layer_name
503
- if label not in label_colors:
504
- try:
505
- color = layer_colors[layer_name]
506
- c = (
507
- float(color[0] / 255),
508
- float(color[1] / 255),
509
- float(color[2] / 255),
510
- )
511
- except:
512
- c = list(CSS4_COLORS.keys())[color_index]
513
- color_index += 1
514
- if color_index >= len(CSS4_COLORS):
515
- color_index = 0
516
- label_colors[label] = c
517
- create_label = True
518
- else:
519
- label = "Net " + net_name
520
- if label not in label_colors:
521
- label_colors[label] = list(CSS4_COLORS.keys())[color_index]
522
- color_index += 1
523
- if color_index >= len(CSS4_COLORS):
524
- color_index = 0
525
- create_label = True
526
-
527
- if create_label and n_label <= max_labels:
528
- objects_lists.append([x, y, label_colors[label], label, 0.4, "fill"])
529
- n_label += 1
530
- else:
531
- objects_lists.append([x, y, label_colors[label], None, 0.4, "fill"])
532
- elif prim_type == "polygon":
533
- xt, yt = prim.points()
534
- if not xt:
535
- continue
536
- x, y = GeometryOperators.orient_polygon(xt, yt, clockwise=True)
537
- vertices = [(i, j) for i, j in zip(x, y)]
538
- codes = [2 for _ in vertices]
539
- codes[0] = 1
540
- vertices.append((0, 0))
541
- codes.append(79)
542
-
543
- for void in prim.voids:
544
- xvt, yvt = void.points()
545
- if xvt:
546
- xv, yv = GeometryOperators.orient_polygon(xvt, yvt, clockwise=False)
547
- tmpV = [(i, j) for i, j in zip(xv, yv)]
548
- vertices.extend(tmpV)
549
- tmpC = [2 for _ in tmpV]
550
- tmpC[0] = 1
551
- codes.extend(tmpC)
552
- vertices.append((0, 0))
553
- codes.append(79)
554
-
555
- create_label = False
556
- if not color_by_net:
557
- label = "Layer " + layer_name
558
- if label not in label_colors:
559
- try:
560
- color = layer_colors[layer_name]
561
- c = (
562
- float(color[0] / 255),
563
- float(color[1] / 255),
564
- float(color[2] / 255),
565
- )
566
- except:
567
- c = list(CSS4_COLORS.keys())[color_index]
568
- color_index += 1
569
- if color_index >= len(CSS4_COLORS):
570
- color_index = 0
571
- label_colors[label] = c
572
- create_label = True
573
- else:
574
- label = "Net " + net_name
575
- if label not in label_colors:
576
- label_colors[label] = list(CSS4_COLORS.keys())[color_index]
577
- color_index += 1
578
- if color_index >= len(CSS4_COLORS):
579
- color_index = 0
580
- create_label = True
581
-
582
- if create_label and n_label <= max_labels:
583
- if layer_name == "Outline":
584
- objects_lists.append([vertices, codes, label_colors[label], label, 1.0, 2.0, "contour"])
585
- else:
586
- objects_lists.append([vertices, codes, label_colors[label], label, 0.4, "path"])
587
- n_label += 1
588
- else:
589
- if layer_name == "Outline":
590
- objects_lists.append([vertices, codes, label_colors[label], None, 1.0, 2.0, "contour"])
591
- else:
592
- objects_lists.append([vertices, codes, label_colors[label], None, 0.4, "path"])
593
- elif prim_type == "circle":
594
- x, y = prim.points()
595
- if not x:
596
- continue
597
- create_label = False
598
- if not color_by_net:
599
- label = "Layer " + layer_name
600
- if label not in label_colors:
601
- try:
602
- color = layer_colors[layer_name]
603
- c = (
604
- float(color[0] / 255),
605
- float(color[1] / 255),
606
- float(color[2] / 255),
607
- )
608
- except:
609
- c = list(CSS4_COLORS.keys())[color_index]
610
- color_index += 1
611
- if color_index >= len(CSS4_COLORS):
612
- color_index = 0
613
- label_colors[label] = c
614
- create_label = True
615
- else:
616
- label = "Net " + net_name
617
- if label not in label_colors:
618
- label_colors[label] = list(CSS4_COLORS.keys())[color_index]
619
- color_index += 1
620
- if color_index >= len(CSS4_COLORS):
621
- color_index = 0
622
- create_label = True
623
-
624
- if create_label and n_label <= max_labels:
625
- objects_lists.append([x, y, label_colors[label], label, 0.4, "fill"])
626
- n_label += 1
627
- else:
628
- objects_lists.append([x, y, label_colors[label], None, 0.4, "fill"])
629
- elif prim_type == "rectangle":
630
- x, y = prim.points()
631
- if not x:
632
- continue
633
- create_label = False
634
- if not color_by_net:
635
- label = "Layer " + layer_name
636
- if label not in label_colors:
637
- try:
638
- color = layer_colors[layer_name]
639
- c = (
640
- float(color[0] / 255),
641
- float(color[1] / 255),
642
- float(color[2] / 255),
643
- )
644
- except:
645
- c = list(CSS4_COLORS.keys())[color_index]
646
- color_index += 1
647
- if color_index >= len(CSS4_COLORS):
648
- color_index = 0
649
- label_colors[label] = c
650
- create_label = True
651
- else:
652
- label = "Net " + net_name
653
- if label not in label_colors:
654
- label_colors[label] = list(CSS4_COLORS.keys())[color_index]
655
- color_index += 1
656
- if color_index >= len(CSS4_COLORS):
657
- color_index = 0
658
- create_label = True
659
-
660
- if create_label and n_label <= max_labels:
661
- objects_lists.append([x, y, label_colors[label], label, 0.4, "fill"])
662
- n_label += 1
663
- else:
664
- objects_lists.append([x, y, label_colors[label], None, 0.4, "fill"])
665
-
666
- end_time = time.time() - start_time
667
- self._logger.info("Nets Point Generation time %s seconds", round(end_time, 3))
668
- if os.getenv("PYAEDT_SERVER_AEDT_PATH", None):
669
- return str(objects_lists)
670
- else:
671
- return objects_lists
672
-
673
381
  def classify_nets(self, power_nets=None, signal_nets=None):
674
382
  """Reassign power/ground or signal nets based on list of nets.
675
383
 
@@ -701,85 +409,6 @@ class EdbNets(object):
701
409
  self.nets[net].net_object.SetIsPowerGround(False)
702
410
  return True
703
411
 
704
- def plot(
705
- self,
706
- nets=None,
707
- layers=None,
708
- color_by_net=False,
709
- show_legend=True,
710
- save_plot=None,
711
- outline=None,
712
- size=(2000, 1000),
713
- plot_components_on_top=False,
714
- plot_components_on_bottom=False,
715
- show=True,
716
- title=None,
717
- ):
718
- """Plot a Net to Matplotlib 2D Chart.
719
-
720
- Parameters
721
- ----------
722
- nets : str, list, optional
723
- Name of the net or list of nets to plot. If ``None`` all nets will be plotted.
724
- layers : str, list, optional
725
- Name of the layers to include in the plot. If ``None`` all the signal layers will be considered.
726
- color_by_net : bool, optional
727
- If ``True`` the plot will be colored by net.
728
- If ``False`` the plot will be colored by layer. (default)
729
- show_legend : bool, optional
730
- If ``True`` the legend is shown in the plot. (default)
731
- If ``False`` the legend is not shown.
732
- save_plot : str, optional
733
- If a path is specified the plot will be saved in this location.
734
- If ``save_plot`` is provided, the ``show`` parameter is ignored.
735
- outline : list, optional
736
- List of points of the outline to plot.
737
- size : tuple, int, optional
738
- Image size in pixel (width, height). Default value is ``(2000, 1000)``
739
- plot_components_on_top : bool, optional
740
- If ``True`` the components placed on top layer are plotted.
741
- If ``False`` the components are not plotted. (default)
742
- If nets and/or layers is specified, only the components belonging to the specified nets/layers are plotted.
743
- plot_components_on_bottom : bool, optional
744
- If ``True`` the components placed on bottom layer are plotted.
745
- If ``False`` the components are not plotted. (default)
746
- If nets and/or layers is specified, only the components belonging to the specified nets/layers are plotted.
747
- show : bool, optional
748
- Whether to show the plot or not. Default is `True`.
749
- """
750
- from pyedb.generic.plot import plot_matplotlib
751
-
752
- object_lists = self.get_plot_data(
753
- nets,
754
- layers,
755
- color_by_net,
756
- outline,
757
- plot_components_on_top,
758
- plot_components_on_bottom,
759
- )
760
-
761
- if isinstance(size, int): # pragma: no cover
762
- board_size_x, board_size_y = self._pedb.get_statistics().layout_size
763
- fig_size_x = size
764
- fig_size_y = board_size_y * fig_size_x / board_size_x
765
- size = (fig_size_x, fig_size_y)
766
-
767
- plot_title = title
768
- if plot_title is None:
769
- plot_title = self._pedb.active_cell.GetName()
770
-
771
- return plot_matplotlib(
772
- plot_data=object_lists,
773
- size=size,
774
- show_legend=show_legend,
775
- xlabel="X (m)",
776
- ylabel="Y (m)",
777
- title=plot_title,
778
- save_plot=save_plot,
779
- axis_equal=True,
780
- show=show,
781
- )
782
-
783
412
  def is_power_gound_net(self, netname_list):
784
413
  """Determine if one of the nets in a list is power or ground.
785
414
 
@@ -116,13 +116,10 @@ class Scratch:
116
116
  -------
117
117
 
118
118
  """
119
- from distutils.dir_util import copy_tree
120
119
 
121
- if destfolder:
122
- copy_tree(src_folder, destfolder)
123
- else:
120
+ if not destfolder:
124
121
  destfolder = os.path.join(self.path, os.path.split(src_folder)[-1])
125
- copy_tree(src_folder, destfolder)
122
+ shutil.copytree(src_folder, destfolder, dirs_exist_ok=True)
126
123
  return destfolder
127
124
 
128
125
  def __enter__(self):
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.31.0
3
+ Version: 0.34.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>
@@ -17,9 +17,9 @@ Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  Requires-Dist: cffi>=1.16.0,<1.18; platform_system=='Linux'
19
19
  Requires-Dist: pywin32 >= 303;platform_system=='Windows'
20
- Requires-Dist: ansys-pythonnet >= 3.1.0rc3
20
+ Requires-Dist: ansys-pythonnet >= 3.1.0rc4
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,<3
23
23
  Requires-Dist: pandas>=1.1.0,<2.3
24
24
  Requires-Dist: pydantic>=2.6.4,<2.10
25
25
  Requires-Dist: Rtree >= 1.2.0
@@ -27,8 +27,8 @@ 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.37 ; extra == "doc"
30
- Requires-Dist: ipython>=8.13.0,<8.29 ; extra == "doc"
31
- Requires-Dist: jupyterlab>=4.0.0,<4.3 ; extra == "doc"
30
+ Requires-Dist: ipython>=8.13.0,<8.30 ; extra == "doc"
31
+ Requires-Dist: jupyterlab>=4.0.0,<4.4 ; 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"
34
34
  Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
@@ -36,19 +36,22 @@ Requires-Dist: nbconvert < 7.17 ; extra == "doc"
36
36
  Requires-Dist: numpydoc>=1.5.0,<1.9 ; extra == "doc"
37
37
  Requires-Dist: pypandoc>=1.10.0,<1.15 ; extra == "doc"
38
38
  Requires-Dist: recommonmark ; extra == "doc"
39
- Requires-Dist: Sphinx>=7.1.0,<8.1 ; extra == "doc"
39
+ Requires-Dist: Sphinx>=7.1.0,<8.2 ; extra == "doc"
40
40
  Requires-Dist: sphinx-autobuild==2021.3.14 ; extra == "doc" and ( python_version == '3.8')
41
41
  Requires-Dist: sphinx-autobuild==2024.10.3 ; extra == "doc" and ( python_version > '3.8')
42
42
  Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
43
- Requires-Dist: sphinx-gallery>=0.14.0,<0.18 ; extra == "doc"
43
+ Requires-Dist: sphinx-gallery>=0.14.0,<0.19 ; extra == "doc"
44
44
  Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
45
+ Requires-Dist: shapely ; extra == "doc"
45
46
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "full"
47
+ Requires-Dist: shapely ; extra == "full"
46
48
  Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "tests"
47
49
  Requires-Dist: mock>=5.1.0,<5.2 ; extra == "tests"
48
50
  Requires-Dist: pytest>=7.4.0,<8.4 ; extra == "tests"
49
- Requires-Dist: pytest-cov>=4.0.0,<5.1 ; extra == "tests"
51
+ Requires-Dist: pytest-cov>=4.0.0,<6.1 ; extra == "tests"
50
52
  Requires-Dist: pytest-xdist>=3.5.0,<3.7 ; extra == "tests"
51
53
  Requires-Dist: scikit-rf ; extra == "tests"
54
+ Requires-Dist: shapely ; extra == "tests"
52
55
  Project-URL: Bugs, https://github.com/ansys/pyedb/issues
53
56
  Project-URL: Discussions, https://github.com/ansys/pyedb/discussions
54
57
  Project-URL: Documentation, https://edb.docs.pyansys.com
@@ -1,51 +1,54 @@
1
- pyedb/__init__.py,sha256=DpBNAuuQlg5m9iAbcc0FqP_bcF40hpWtCXsRwN-cLfE,2592
1
+ pyedb/__init__.py,sha256=QDZQJEGmN8ozVPpYOuJ8bPgkeAyMFHii3mheyJ_LaKQ,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
5
5
  pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
6
+ pyedb/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ pyedb/common/nets.py,sha256=daGdkzlv6kcyz_EnLLjTnXP3f9jOyK9LKe93NF-K6wo,20230
6
8
  pyedb/component_libraries/ansys_components.py,sha256=O3ypt832IHY9zG2AD_yrRrbH2KH9P1yFaoi1EO6Zllw,4830
7
9
  pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
10
  pyedb/configuration/cfg_boundaries.py,sha256=5_v6HD0VgkFCJHgx5zTIn_nxPv3KpcCuGz9P4Kk4ywM,6246
9
- pyedb/configuration/cfg_common.py,sha256=yF_dwdHA8rsyBcqLmhfkJoZ_aOVkDM5pqePGQqBh-Nk,1992
10
- pyedb/configuration/cfg_components.py,sha256=-AXoHvFqrQI_j6JCzXPit-u6cYK-qR2_k1msPrn_Xkw,4587
11
- pyedb/configuration/cfg_data.py,sha256=KPejkIgaY1JfLA8gsbsqcn1x9gEgyDMok1A33sgXHGs,3498
11
+ pyedb/configuration/cfg_common.py,sha256=feXGIBSlTPAewSsmu0m1SgyfF9DuK4C7SNP_RNQGD2A,2549
12
+ pyedb/configuration/cfg_components.py,sha256=33XrTkyMvSgo1dFo15ChRXywwLnzprCxKG7yp9msVUA,12388
13
+ pyedb/configuration/cfg_data.py,sha256=qCCR-Oo5_le61qWWmjrK4gIt_HH9jVqu4K0GbekAJkU,3773
12
14
  pyedb/configuration/cfg_general.py,sha256=DJAKTW8Sqojfqzc3jO3MU1-J8MrmVi37jUIkTD_Tw6o,2068
15
+ pyedb/configuration/cfg_modeler.py,sha256=tgeTs-if1d_vQvnGzD6qqMGnJlqqG302APHUu0b5jtE,5889
13
16
  pyedb/configuration/cfg_nets.py,sha256=18NezeNh0ZOwk2ehz3zWJF_xYR7IYCqGlpDfDt7Ilho,2349
14
- pyedb/configuration/cfg_operations.py,sha256=mk0uY9kWEZ6hLciZz6l9ESBC-yHr08GgWBEX2iLutPE,4674
17
+ pyedb/configuration/cfg_operations.py,sha256=CFLBdM2kQBsW6f7W0NHWbV56RDMHSnaNQl3BmqDWQWo,4707
15
18
  pyedb/configuration/cfg_package_definition.py,sha256=f_RRT9R-3H5kHBlc4QSpjq9uQgYbaKQ78XXXrc_r3kg,5296
16
- pyedb/configuration/cfg_padstacks.py,sha256=v64An3lCkh7FBwzUaBQcHD2_h8ctlBckAc8xB3z5-j0,5068
19
+ pyedb/configuration/cfg_padstacks.py,sha256=sjVlUDO-Jyl9VheCx2TM9lNEt971a1G8DUAtb-INUWo,18292
17
20
  pyedb/configuration/cfg_pin_groups.py,sha256=b0H6NaPKJ5zlcXL9W2Q8_HbiLB8-OxaqjsM4wlqP2ic,3768
18
- pyedb/configuration/cfg_ports_sources.py,sha256=8D4QcHlrCdMI0URv3NzSRf0ke8BiF1dpREiimwb9Hbk,16430
19
- pyedb/configuration/cfg_s_parameter_models.py,sha256=iwLT581u7v26QtsLOaxrtpvAxrnk1VWqNiRYKOmK3y0,5300
21
+ pyedb/configuration/cfg_ports_sources.py,sha256=t2LvKswLF4iohCIjj-tAoveiVQ_8R4G-QIK1XuSt8xs,20791
22
+ pyedb/configuration/cfg_s_parameter_models.py,sha256=DgBprcEYR2r_3BY4f_CuwuhJw_QFEag3xaAlLTRfMuE,5356
20
23
  pyedb/configuration/cfg_setup.py,sha256=QGKQHAEeo196TYtKMvIMb2-p8KC4U8fmHx0yn0SpgMo,10351
21
24
  pyedb/configuration/cfg_spice_models.py,sha256=Q_5j2-V6cepSFcnijot8iypTqzanLp7HOz-agmnwKns,2570
22
25
  pyedb/configuration/cfg_stackup.py,sha256=ZKUcTh4UAFLJgES2W-5J7uXkUdz_q0URg28lUZUyfdo,6433
23
- pyedb/configuration/configuration.py,sha256=ndNU2C9Kgp7t2InZt0IcrBXooxjwFChpc7ylajhbTNc,14622
26
+ pyedb/configuration/configuration.py,sha256=MnoO5H5VZSogQSZ3MUJqWiO3DB-_QUYOfM4qROTHcnY,15470
24
27
  pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
- pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
26
- pyedb/dotnet/edb.py,sha256=6b2EaZMMVoLuwF1ZAADlFj6gSXBcYz2CppdICEmj3K8,184149
28
+ pyedb/dotnet/clr_module.py,sha256=JnQQ1GFQcGVa5Fk7D8sLFOlohIQtETGu51TGL_aT8Tc,5827
29
+ pyedb/dotnet/edb.py,sha256=Ut1lpxs_YwagTRjcmrANr8xyIOVu-BzedW_YtU6kIcU,186395
27
30
  pyedb/dotnet/application/Variables.py,sha256=awNhyiLASBYrNjWIyW8IJowgqt7FfFPKF9UElRWyjZg,77750
28
31
  pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
32
  pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
30
33
  pyedb/dotnet/edb_core/components.py,sha256=r8Gr9mV4Cuky7lVKOg-JWhRR2bflGYESsnOGG2g4BwM,111146
31
34
  pyedb/dotnet/edb_core/general.py,sha256=k2Bcr5VV-QUzEZlYorqYCX1ZchHBH7WqUvc8maMxId0,4716
32
- pyedb/dotnet/edb_core/hfss.py,sha256=C6-to6YKoruQjRWedLY7agkTVQv4Hb2U2qX-iPzHOI0,68655
35
+ pyedb/dotnet/edb_core/hfss.py,sha256=oQFC6PwRbjAwfR60RoklwpZ_2sDI4OheNNdwaqY23ok,68671
33
36
  pyedb/dotnet/edb_core/layout_obj_instance.py,sha256=Pd8rfdO3b6HLFGwXBMw-tfE4LPIcW_9_X5KEdFaiito,1407
34
- pyedb/dotnet/edb_core/layout_validation.py,sha256=ONhxkMFi9k5Or_F4l4pdOzyj1-ZVKE2BmbgxbuvCOHE,13647
35
- pyedb/dotnet/edb_core/materials.py,sha256=zzYWIJ5dvOIO2H2vREpRnwGDx0hEa5QhCsg_EJkydww,43222
36
- pyedb/dotnet/edb_core/modeler.py,sha256=87amEA3xHszL52ae8i-7fAJzWL4Ntqp72omocNO5XAw,55442
37
+ pyedb/dotnet/edb_core/layout_validation.py,sha256=JBaLnEgDv2GrX8GD0D4_3zT8EWLSMmXu5F2AhW7oGuU,13592
38
+ pyedb/dotnet/edb_core/materials.py,sha256=s105DUTFkQoQRWgtRMp02DKcU2YcSrfLbJoi8hcTQII,42293
39
+ pyedb/dotnet/edb_core/modeler.py,sha256=rVJ-eh3eKOnCHENaBLZ8D7duH7tUtUqZJNLKGLFsZ_M,55519
37
40
  pyedb/dotnet/edb_core/net_class.py,sha256=4U6Cc1Gn7ZJ_ub9uKmtrsoz5wD1XS42afci3Y3ewRp0,11354
38
- pyedb/dotnet/edb_core/nets.py,sha256=N8kFX_bbVnHrmPcwCNbabV7xME_XBr5Ft50DYz_vGIc,41579
41
+ pyedb/dotnet/edb_core/nets.py,sha256=Wc84urZG6nM3fZYqMj2HzM6CgNz_B4s4O3WmMGr-5H0,25199
39
42
  pyedb/dotnet/edb_core/padstack.py,sha256=19cRYqTHVjjvblYVoZgMetRBXDjtP5-URUv6eA0mvfY,63566
40
43
  pyedb/dotnet/edb_core/siwave.py,sha256=4duoAsFCuPMNLxtMTEEVJCUaHKNkdbLDmtTXiD93VrM,64311
41
44
  pyedb/dotnet/edb_core/stackup.py,sha256=b56leXg7X7dEVPP2DUD9n8LZIakWcjIsjiqqkIWsyZU,120035
42
45
  pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
46
  pyedb/dotnet/edb_core/cell/connectable.py,sha256=gc5jhWx4DX718T7koL6oZZzfS4EdQNTiFX76ZJ2c83E,2864
44
- pyedb/dotnet/edb_core/cell/layout.py,sha256=qMok2j0LbjoYJ0QBDEZp-nHDLaIXZYZ1jPpqso7z5gs,12448
47
+ pyedb/dotnet/edb_core/cell/layout.py,sha256=Bh8WKMwCB0qn9ehP-_rShRTpN7KGgI72K5h_JdkOd6Y,12413
45
48
  pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=S42rdiI6gVqO77DV3ikc4YxTNufTuqW_X1G-2zkWArA,2765
46
49
  pyedb/dotnet/edb_core/cell/voltage_regulator.py,sha256=-uAzuyERV6ca0bFRzdH4SllcpGY2D9JEdpS7RYaQt6c,5387
47
50
  pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
- pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=3TlxpkCIJnAC13xEzzm65ar43AaC9CFE_pskb79yHHQ,43673
51
+ pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=Iri2YVNntt02ojqtBAg-NosarqN7aHyr37kl5TKQzuM,34847
49
52
  pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=OUNK6INKlbJkCbzy6jKZzrQs7fvCR1qiTjt7te0S7nQ,2160
50
53
  pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=LwXE4VUfptG5rJ9gmAmye0hECBv7bUGtby1ZzNFkeT0,3198
51
54
  pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py,sha256=fF6tY-6s-lW9EuvJ5sw3RlIkjuoSjeZbrNk5wG-_hzM,1356
@@ -55,7 +58,7 @@ pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCs
55
58
  pyedb/dotnet/edb_core/cell/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
56
59
  pyedb/dotnet/edb_core/cell/primitive/bondwire.py,sha256=fqIMdv0bNvk591DG6De5c--w9Rpkl5AOeo_qgzoPE6M,7322
57
60
  pyedb/dotnet/edb_core/cell/primitive/path.py,sha256=XVN7dOVpccoBP28M8l5iMzK5QSQdHqpKqC4jK76UTis,12543
58
- pyedb/dotnet/edb_core/cell/primitive/primitive.py,sha256=ApzSvcKHs3UI8hOOSqT3mTDAgjXfGCSMw01QFey7ohY,27675
61
+ pyedb/dotnet/edb_core/cell/primitive/primitive.py,sha256=wZcHylKr_OVnXzVfNtce_WuCTreXEDxeLhinp2Xh7ZA,26709
59
62
  pyedb/dotnet/edb_core/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
63
  pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py,sha256=qM0wEXkZ-DpoJ6vlVa560Ce8IgOdp4vyIJPedvoa3O0,1977
61
64
  pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py,sha256=lafPRrvsDPYKcysvrkO-5tEZXF3h4IcTXdeJgTjleuI,2158
@@ -73,15 +76,15 @@ pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
73
76
  pyedb/dotnet/edb_core/dotnet/database.py,sha256=9mfEg451IX3Y8PKnyhbVPApqtgmB9R4VTeWyfux8Q0A,36691
74
77
  pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=2Mhh-pwnLzZUGLVRSCiBMtcxfvmrU40cASbpfXe1Ecs,49944
75
78
  pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=_W5DDBFvm4gTq8yCvhzfiWUsfpQK4PnLkjmntIYvW8E,48217
79
+ pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=qIXBJG0V_dvpvSqIycQcNOb8UrjJiGmlfOE6rwU0Ifo,49679
77
80
  pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
78
81
  pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
79
82
  pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=wIKH4it1uYkEae4OimS3YE6QoSf8rAAIhxdTwtR9cqU,13040
80
83
  pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=Yg3y80d4dn47vtFaNUr2Mt8LRIKvu9TMGxQiu9CIc_s,29586
81
- pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=B3SirURVYrmFZPjQLGEYUfTSDZOzzCSB1l7CPQFdWr4,9942
82
- pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=zimAnMlKQ_TOOEYpK1uKm73IJ3tGD0fVK_QiwaShe5Q,88866
84
+ pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=fXJ1U18ZLm9xI7MJD3UcTsI8XNZSq5kf20KF2IMib4o,10137
85
+ pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=1j_GG552iwvzvx6TKI3Yx6C3RXOWiSNehdlbD8AuzaI,78474
83
86
  pyedb/dotnet/edb_core/edb_data/ports.py,sha256=wr2RQi8VExuNIVmnp7c4VpTIhODgthmJmHr01zO4ueo,8873
84
- pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=zDgVbOcvgc7fbpLnCcCHURV9_ePYT4R129kAhSJRy9A,15467
87
+ pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=kIXkd5SXeN881eJqdJ2KxEZebpimB4qFEed1g6w-Raw,16826
85
88
  pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py,sha256=P37-OIsc8TuTC_s3CXRmvZcJqxAftHA7SATfEyoAnMM,20953
86
89
  pyedb/dotnet/edb_core/edb_data/simulation_configuration.py,sha256=Z_Iuh7qgj9s0PwmlOOdBOC47imBTgWPAWt8KxGNZmZQ,100432
87
90
  pyedb/dotnet/edb_core/edb_data/sources.py,sha256=jzC6p-fiuPEvZn3b9z1-X5UexW5jd48jZRamXillnXI,15700
@@ -111,7 +114,7 @@ pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
114
  pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
112
115
  pyedb/generic/data_handlers.py,sha256=rfqNe2tPCJRqhXZBCyWxRFu5SjQ92Cdzq4l0TDC4Pvw,6905
113
116
  pyedb/generic/design_types.py,sha256=qHyIaz-Vd3ra4CP9xER76-nGRonYmSAiI3Dr8YPUeH8,4354
114
- pyedb/generic/filesystem.py,sha256=gqYh3xet_JjBOFopxCJldgeUItFRbBpVVi2ACnveCYw,3757
117
+ pyedb/generic/filesystem.py,sha256=EqsLGwdhCgY3asomjoWZBBYWQiGhVOBlSzQlM6FCZhw,3674
115
118
  pyedb/generic/general_methods.py,sha256=HfDQEiQkNng4apFUbStsEfvKDbPkZ0Oz9Wjlqqz5LSI,42798
116
119
  pyedb/generic/plot.py,sha256=0x2-v_xNSoy07rILKGQStQMTUIYrvJEvFO1n9KuSfAc,4717
117
120
  pyedb/generic/process.py,sha256=DiOanqNq5APYryBYo3Wt4mQ54cBR9-ULrrIOqGE4S8c,11107
@@ -185,7 +188,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
185
188
  pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
186
189
  pyedb/modeler/geometry_operators.py,sha256=g_Sy7a6R23sP6RtboJn1rl8uTuo8oeLmMF21rNkzwjk,74198
187
190
  pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
188
- pyedb-0.31.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
189
- pyedb-0.31.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
190
- pyedb-0.31.0.dist-info/METADATA,sha256=-tg_0GOKyeg5L2pcJDxsQG0--DNFg5y7kj2Arow4w2o,8389
191
- pyedb-0.31.0.dist-info/RECORD,,
191
+ pyedb-0.34.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
192
+ pyedb-0.34.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
193
+ pyedb-0.34.0.dist-info/METADATA,sha256=6eG251kM6ji9x7LJqi29QQC14ROMC5fqebanw9STWcc,8512
194
+ pyedb-0.34.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.9.0
2
+ Generator: flit 3.10.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any