pyedb 0.47.1__py3-none-any.whl → 0.49.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyedb might be problematic. Click here for more details.

Files changed (37) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_stackup.py +35 -1
  3. pyedb/configuration/configuration.py +13 -13
  4. pyedb/dotnet/database/cell/hierarchy/component.py +61 -5
  5. pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py +7 -0
  6. pyedb/dotnet/database/cell/primitive/primitive.py +8 -1
  7. pyedb/dotnet/database/cell/terminal/terminal.py +25 -7
  8. pyedb/dotnet/database/components.py +87 -46
  9. pyedb/dotnet/database/definition/package_def.py +29 -5
  10. pyedb/dotnet/database/dotnet/database.py +18 -0
  11. pyedb/dotnet/database/edb_data/padstacks_data.py +25 -5
  12. pyedb/dotnet/database/edb_data/ports.py +14 -0
  13. pyedb/dotnet/database/edb_data/utilities.py +1 -1
  14. pyedb/dotnet/database/geometry/polygon_data.py +15 -2
  15. pyedb/dotnet/database/hfss.py +11 -1
  16. pyedb/dotnet/database/materials.py +78 -0
  17. pyedb/dotnet/database/modeler.py +21 -10
  18. pyedb/dotnet/database/padstack.py +7 -5
  19. pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py +24 -0
  20. pyedb/dotnet/database/siwave.py +37 -33
  21. pyedb/dotnet/database/utilities/simulation_setup.py +51 -9
  22. pyedb/dotnet/database/utilities/siwave_simulation_setup.py +3 -1
  23. pyedb/dotnet/edb.py +67 -8
  24. pyedb/grpc/database/components.py +19 -13
  25. pyedb/grpc/database/hfss.py +3 -3
  26. pyedb/grpc/database/modeler.py +4 -4
  27. pyedb/grpc/database/padstacks.py +3 -1
  28. pyedb/grpc/database/ports/ports.py +4 -0
  29. pyedb/grpc/database/primitive/path.py +2 -2
  30. pyedb/grpc/database/primitive/primitive.py +6 -1
  31. pyedb/grpc/database/source_excitations.py +16 -8
  32. pyedb/grpc/database/terminal/bundle_terminal.py +1 -1
  33. pyedb/grpc/edb.py +125 -32
  34. {pyedb-0.47.1.dist-info → pyedb-0.49.0.dist-info}/METADATA +1 -1
  35. {pyedb-0.47.1.dist-info → pyedb-0.49.0.dist-info}/RECORD +37 -37
  36. {pyedb-0.47.1.dist-info → pyedb-0.49.0.dist-info}/LICENSE +0 -0
  37. {pyedb-0.47.1.dist-info → pyedb-0.49.0.dist-info}/WHEEL +0 -0
pyedb/grpc/edb.py CHANGED
@@ -35,6 +35,7 @@ import sys
35
35
  import tempfile
36
36
  import time
37
37
  import traceback
38
+ from typing import Union
38
39
  import warnings
39
40
  from zipfile import ZipFile as zpf
40
41
 
@@ -57,7 +58,7 @@ from pyedb.generic.general_methods import (
57
58
  from pyedb.generic.process import SiwaveSolve
58
59
  from pyedb.generic.settings import settings
59
60
  from pyedb.grpc.database.components import Components
60
- from pyedb.grpc.database.control_file import ControlFile, convert_technology_file
61
+ from pyedb.grpc.database.control_file import ControlFile
61
62
  from pyedb.grpc.database.definition.materials import Materials
62
63
  from pyedb.grpc.database.hfss import Hfss
63
64
  from pyedb.grpc.database.layout.layout import Layout
@@ -110,7 +111,7 @@ class Edb(EdbInit):
110
111
  edbpath : str, optional
111
112
  Full path to the ``aedb`` folder. The variable can also contain
112
113
  the path to a layout to import. Allowed formats are BRD, MCM,
113
- XML (IPC2581), GDS, and DXF. The default is ``None``.
114
+ XML (IPC2581), GDS, ODB++(TGZ and ZIP) and DXF. The default is ``None``.
114
115
  For GDS import, the Ansys control file (also XML) should have the same
115
116
  name as the GDS file. Only the file extension differs.
116
117
  cellname : str, optional
@@ -120,14 +121,25 @@ class Edb(EdbInit):
120
121
  owned by HFSS 3D Layout. The default is ``False``.
121
122
  edbversion : str, int, float, optional
122
123
  Version of EDB to use. The default is ``None``.
123
- Examples of input values are ``252``, ``25.2``,``2025.2``,``"2025.2"``.
124
+ Examples of input values are ``232``, ``23.2``, ``2023.2``, ``"2023.2"``.
124
125
  isaedtowned : bool, optional
125
126
  Whether to launch EDB from HFSS 3D Layout. The
126
127
  default is ``False``.
127
128
  oproject : optional
128
129
  Reference to the AEDT project object.
130
+ student_version : bool, optional
131
+ Whether to open the AEDT student version. The default is ``False.``
132
+ control_file : str, optional
133
+ Path to the XML file. The default is ``None``, in which case an attempt is made to find
134
+ the XML file in the same directory as the board file. To succeed, the XML file and board file
135
+ must have the same name. Only the extension differs.
136
+ map_file : str, optional
137
+ Layer map .map file.
129
138
  technology_file : str, optional
130
- Technology file full path to be converted to XML before importing or XML. Supported by GDS format only.
139
+ Full path to technology file to be converted to xml before importing or xml.
140
+ Supported by GDS format only.
141
+ layer_filter:str,optional
142
+ Layer filter .txt file.
131
143
  restart_rpc_server : bool, optional
132
144
  ``True`` RPC server is terminated and restarted. This will close all open EDB. RPC server is running on single
133
145
  instance loading all EDB, enabling this option should be used with caution but can be a solution to release
@@ -188,15 +200,19 @@ class Edb(EdbInit):
188
200
 
189
201
  def __init__(
190
202
  self,
191
- edbpath=None,
192
- cellname=None,
193
- isreadonly=False,
194
- edbversion=None,
195
- isaedtowned=False,
203
+ edbpath: Union[str, Path] = None,
204
+ cellname: str = None,
205
+ isreadonly: bool = False,
206
+ edbversion: str = None,
207
+ isaedtowned: bool = False,
196
208
  oproject=None,
197
209
  student_version: bool = False,
198
- use_ppe=False,
199
- technology_file=None,
210
+ use_ppe: bool = False,
211
+ control_file: str = None,
212
+ map_file: str = None,
213
+ technology_file: str = None,
214
+ layer_filter: str = None,
215
+ remove_existing_aedt: bool = False,
200
216
  restart_rpc_server=False,
201
217
  ):
202
218
  edbversion = get_string_version(edbversion)
@@ -247,14 +263,18 @@ class Edb(EdbInit):
247
263
  zipped_file.extractall(edbpath[:-4])
248
264
  self.logger.info("ODB++ unzipped successfully.")
249
265
  zipped_file.close()
250
- control_file = None
251
- if technology_file:
252
- if os.path.splitext(technology_file)[1] == ".xml":
253
- control_file = technology_file
254
- else:
255
- control_file = convert_technology_file(technology_file, edbversion=edbversion)
256
266
  self.logger.info("Translating ODB++ to EDB...")
257
- self.import_layout_pcb(edbpath[:-4], working_dir, use_ppe=use_ppe, control_file=control_file)
267
+ if not self.import_layout_file(
268
+ edbpath[:-4],
269
+ working_dir,
270
+ use_ppe=use_ppe,
271
+ control_file=control_file,
272
+ tech_file=technology_file,
273
+ layer_filter=layer_filter,
274
+ map_file=map_file,
275
+ ):
276
+ raise AttributeError("Translation was unsuccessful")
277
+ return False
258
278
  if settings.enable_local_log_file and self.log_name:
259
279
  self.logger.add_file_logger(self.log_name, "Edb")
260
280
  self.logger.info("EDB %s was created correctly from %s file.", self.edbpath, edbpath)
@@ -262,14 +282,17 @@ class Edb(EdbInit):
262
282
  elif edbpath[-3:] in ["brd", "mcm", "gds", "xml", "dxf", "tgz"]:
263
283
  self.edbpath = edbpath[:-4] + ".aedb"
264
284
  working_dir = os.path.dirname(edbpath)
265
- control_file = None
266
- if technology_file:
267
- if os.path.splitext(technology_file)[1] == ".xml":
268
- control_file = technology_file
269
- else:
270
- control_file = convert_technology_file(technology_file, edbversion=edbversion)
271
- self.import_layout_pcb(edbpath, working_dir, use_ppe=use_ppe, control_file=control_file)
272
- self.logger.info("EDB %s was created correctly from %s file.", self.edbpath, edbpath[-2:])
285
+ if not self.import_layout_file(
286
+ edbpath,
287
+ working_dir,
288
+ use_ppe=use_ppe,
289
+ control_file=control_file,
290
+ tech_file=technology_file,
291
+ layer_filter=layer_filter,
292
+ map_file=map_file,
293
+ ):
294
+ raise AttributeError("Translation was unsuccessful")
295
+ return False
273
296
  elif edbpath.endswith("edb.def"):
274
297
  self.edbpath = os.path.dirname(edbpath)
275
298
  self.open_edb(restart_rpc_server=restart_rpc_server)
@@ -638,10 +661,69 @@ class Edb(EdbInit):
638
661
  def import_layout_pcb(
639
662
  self,
640
663
  input_file,
641
- working_dir,
664
+ working_dir="",
665
+ anstranslator_full_path="",
666
+ use_ppe=False,
667
+ control_file=None,
668
+ map_file=None,
669
+ tech_file=None,
670
+ layer_filter=None,
671
+ ):
672
+ """Import a board file and generate an ``edb.def`` file in the working directory.
673
+
674
+ .. deprecated:: 0.42.0
675
+ Use :func:`import_layout_file` method instead.
676
+
677
+ This function supports all AEDT formats, including DXF, GDS, SML (IPC2581), BRD, MCM, SIP, ZIP and TGZ.
678
+
679
+ Parameters
680
+ ----------
681
+ input_file : str
682
+ Full path to the board file.
683
+ working_dir : str, optional
684
+ Directory in which to create the ``aedb`` folder. The name given to the AEDB file
685
+ is the same as the name of the board file.
686
+ anstranslator_full_path : str, optional
687
+ Full path to the Ansys translator. The default is ``""``.
688
+ use_ppe : bool
689
+ Whether to use the PPE License. The default is ``False``.
690
+ control_file : str, optional
691
+ Path to the XML file. The default is ``None``, in which case an attempt is made to find
692
+ the XML file in the same directory as the board file. To succeed, the XML file and board file
693
+ must have the same name. Only the extension differs.
694
+ tech_file : str, optional
695
+ Technology file. The file can be *.ircx, *.vlc.tech, or *.itf
696
+ map_file : str, optional
697
+ Layer map .map file.
698
+ layer_filter:str,optional
699
+ Layer filter .txt file.
700
+
701
+ Returns
702
+ -------
703
+ Full path to the AEDB file : str
704
+ """
705
+ self.logger.warning("import_layout_pcb method is deprecated, use import_layout_file instead.")
706
+ return self.import_layout_file(
707
+ input_file,
708
+ working_dir,
709
+ anstranslator_full_path,
710
+ use_ppe,
711
+ control_file,
712
+ map_file,
713
+ tech_file,
714
+ layer_filter,
715
+ )
716
+
717
+ def import_layout_file(
718
+ self,
719
+ input_file,
720
+ working_dir="",
642
721
  anstranslator_full_path="",
643
722
  use_ppe=False,
644
723
  control_file=None,
724
+ map_file=None,
725
+ tech_file=None,
726
+ layer_filter=None,
645
727
  ):
646
728
  """Import a board file and generate an ``edb.def`` file in the working directory.
647
729
 
@@ -651,7 +733,7 @@ class Edb(EdbInit):
651
733
  ----------
652
734
  input_file : str
653
735
  Full path to the board file.
654
- working_dir : str
736
+ working_dir : str, optional
655
737
  Directory in which to create the ``aedb`` folder. The name given to the AEDB file
656
738
  is the same as the name of the board file.
657
739
  anstranslator_full_path : str, optional
@@ -662,10 +744,16 @@ class Edb(EdbInit):
662
744
  Path to the XML file. The default is ``None``, in which case an attempt is made to find
663
745
  the XML file in the same directory as the board file. To succeed, the XML file and board file
664
746
  must have the same name. Only the extension differs.
747
+ tech_file : str, optional
748
+ Technology file. The file can be *.ircx, *.vlc.tech, or *.itf
749
+ map_file : str, optional
750
+ Layer map .map file.
751
+ layer_filter:str,optional
752
+ Layer filter .txt file.
665
753
 
666
754
  Returns
667
755
  -------
668
- str: Full path to the AEDB file.
756
+ Full path to the AEDB file : str
669
757
 
670
758
  """
671
759
  self._components = None
@@ -693,13 +781,18 @@ class Edb(EdbInit):
693
781
  ]
694
782
  if not use_ppe:
695
783
  cmd_translator.append("-ppe=false")
696
- if control_file and input_file[-3:] not in ["brd", "mcm"]:
784
+ if control_file and input_file[-3:] not in ["brd", "mcm", "sip"]:
697
785
  if is_linux:
698
786
  cmd_translator.append("-c={}".format(control_file))
699
787
  else:
700
788
  cmd_translator.append('-c="{}"'.format(control_file))
701
- p = subprocess.Popen(cmd_translator)
702
- p.wait()
789
+ if map_file:
790
+ cmd_translator.append('-g="{}"'.format(map_file))
791
+ if tech_file:
792
+ cmd_translator.append('-t="{}"'.format(tech_file))
793
+ if layer_filter:
794
+ cmd_translator.append('-f="{}"'.format(layer_filter))
795
+ subprocess.run(cmd_translator)
703
796
  if not os.path.exists(os.path.join(working_dir, aedb_name)):
704
797
  self.logger.error("Translator failed to translate.")
705
798
  return False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.47.1
3
+ Version: 0.49.0
4
4
  Summary: Higher-Level Pythonic Ansys Electronics Data Base
5
5
  Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
6
6
  Maintainer-email: PyEDB developers <simon.vandenbrouck@ansys.com>
@@ -1,4 +1,4 @@
1
- pyedb/__init__.py,sha256=uQHUdTZcqS3frfBAlYGBcYzhxguTpvF1CAzSl9YXI4k,1525
1
+ pyedb/__init__.py,sha256=D-QTHDj41UTM5IywWlQfuFq5s1POfpP6q7wSxyHa4X8,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
@@ -22,24 +22,24 @@ pyedb/configuration/cfg_ports_sources.py,sha256=4_t88bqAQzfypFH95Ro9ATBFz1ZJenZB
22
22
  pyedb/configuration/cfg_s_parameter_models.py,sha256=UBrCOt69AQof5r2OqpoSJ7E8G52jo0lAcSfYvJhm8hU,10224
23
23
  pyedb/configuration/cfg_setup.py,sha256=A8fm2Qqy9SFi8peToI55rfh0jxPESmOM6ecNBWHCggA,17526
24
24
  pyedb/configuration/cfg_spice_models.py,sha256=Q_5j2-V6cepSFcnijot8iypTqzanLp7HOz-agmnwKns,2570
25
- pyedb/configuration/cfg_stackup.py,sha256=1tRO2xCKm6J0wBQOokrUcrt4WJ3XoKT_pL_RV1Oy1KU,10643
26
- pyedb/configuration/configuration.py,sha256=yw9pTjUMwFaU8Q8DvytJ3Fx9Fz4RKwhXZebPXedL8QA,22960
25
+ pyedb/configuration/cfg_stackup.py,sha256=T28HTuR-EUIEGh41oIVD_BDambEds6CmJXmSggYKY70,12597
26
+ pyedb/configuration/configuration.py,sha256=KFMN90cxeUhbE7lpqmZLDBOEL9I8YTSNLeqzFkwzHXE,23023
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=ayw86yMIOXlmri2Q4xbs3z_SdgnqOmsSTBSrz0mXFx8,186587
29
+ pyedb/dotnet/edb.py,sha256=CTtXIEoPmgIA23HOl4u1GI_ofSOFvh_pMH6PgJ0buC0,188086
30
30
  pyedb/dotnet/database/Variables.py,sha256=CX12X6u-2tbcgjYJU643TVjIJEGB58a2nM4f4wMVTR8,77687
31
31
  pyedb/dotnet/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
32
- pyedb/dotnet/database/components.py,sha256=9HldXwn2xV7RPD-C9u_zpHTd6b5SKZkDled-NKrbweo,109471
32
+ pyedb/dotnet/database/components.py,sha256=BZJzALawqdmtNitVOv5uHpn5SC7Ky3ngW3_z0Ar3b4I,111385
33
33
  pyedb/dotnet/database/general.py,sha256=k2Bcr5VV-QUzEZlYorqYCX1ZchHBH7WqUvc8maMxId0,4716
34
- pyedb/dotnet/database/hfss.py,sha256=9UuTuEZwFKAw9E2HJXuzb4uH4kNrp3t00dJjgY1Ymug,68671
34
+ pyedb/dotnet/database/hfss.py,sha256=I1PxGkIVXQjC0obuN7J6BYGXmfKiqHwHHPtaCTIS-9E,69165
35
35
  pyedb/dotnet/database/layout_obj_instance.py,sha256=se6eJ2kfQOAZfAwObCBdr0A7CCD3st4aiPPVJR9eQoA,1407
36
36
  pyedb/dotnet/database/layout_validation.py,sha256=kanRMaFz7Xv_3jFUwdbbzc1d6Rj6kaHAjM4eNOTrYIk,13597
37
- pyedb/dotnet/database/materials.py,sha256=lR3LwHpK9UUBuL542M7jw5mLlmgwn5n4d4kHcmBF2AU,44234
38
- pyedb/dotnet/database/modeler.py,sha256=ygY-9E3sIfFhHpk19-_J7xlLbQXB1Iw5xhXnW1Eoalw,55675
37
+ pyedb/dotnet/database/materials.py,sha256=NEwMvyslvWo_5YC3Ht0XU4Vmk4i25olDjnkG_zBBsB8,48088
38
+ pyedb/dotnet/database/modeler.py,sha256=UPIdGc11s9mo6ugXGFu6o2xqNMzrGGAg4Rj6JJ1tsok,56283
39
39
  pyedb/dotnet/database/net_class.py,sha256=NxRX8feIaJyf3NmRfSzZ08ItDbZOucOyAnTHZh-LkUI,11354
40
40
  pyedb/dotnet/database/nets.py,sha256=bs7aX6a3xWWNzxsX471omu17_4jmC1HmNH9q8fefBJc,25614
41
- pyedb/dotnet/database/padstack.py,sha256=maddMpEB07E408TNkoiBP4xWvmbpfHWDpv0zOM09Coo,73340
42
- pyedb/dotnet/database/siwave.py,sha256=yq6sRdJofKgXGMd2gvq7SpS-hXRqL_OPQCmOgwgkBfY,64366
41
+ pyedb/dotnet/database/padstack.py,sha256=A85zw3BgqRUQm-UzbLMzeY1KrhIhju3lcLe7AqsVGqU,73492
42
+ pyedb/dotnet/database/siwave.py,sha256=08Dx280x9TQ7Kl4lgEmFcnOp59Vnf2nRbdtAcJQ2atw,64326
43
43
  pyedb/dotnet/database/stackup.py,sha256=y-lrZWwK3BVLuV1WR3pP3o6IppioaQkzeO5QPiN_KKY,120035
44
44
  pyedb/dotnet/database/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  pyedb/dotnet/database/cell/connectable.py,sha256=7B8_w_IRLtzb6bLwm2-HR8ScURZb0P5dhE6jezBS8Ps,2864
@@ -47,32 +47,32 @@ pyedb/dotnet/database/cell/layout.py,sha256=dTx28Uj1uyjpan69vuIitv-G7h654R9JbO4-
47
47
  pyedb/dotnet/database/cell/layout_obj.py,sha256=YpyXv8L9vHAH1Lvbu9s_2SlBExifBQrMnlvmvo7YO7M,2765
48
48
  pyedb/dotnet/database/cell/voltage_regulator.py,sha256=p9PGP4f-uB75Y9Cf3RlB_IkAadVVa3vdhXnztvsH12g,5387
49
49
  pyedb/dotnet/database/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
- pyedb/dotnet/database/cell/hierarchy/component.py,sha256=qsxkUovUrVFLB0ikJ36ztcCCEUH4G1WATNSXF92tpfA,34847
50
+ pyedb/dotnet/database/cell/hierarchy/component.py,sha256=gjpGM7t4Ir4VT8V9fRsclQ833wZTDgDdg0J9w_ZmC8o,36727
51
51
  pyedb/dotnet/database/cell/hierarchy/hierarchy_obj.py,sha256=B42_qDotHyyhDOZM_fA1hzvPaqqR52A45u1AvOPmhFc,2160
52
52
  pyedb/dotnet/database/cell/hierarchy/model.py,sha256=RHZTe4-IvF4dGWXXj9zB30zdRJaxhWngmJ_QQc9jkp0,3198
53
53
  pyedb/dotnet/database/cell/hierarchy/netlist_model.py,sha256=fF6tY-6s-lW9EuvJ5sw3RlIkjuoSjeZbrNk5wG-_hzM,1356
54
54
  pyedb/dotnet/database/cell/hierarchy/pin_pair_model.py,sha256=nq_22nNC2EWo9rirAztOE2mysfP6uV9cdMnamy6zTu4,3792
55
- pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py,sha256=o7Omw4R9uQGCBDj4dIU-R73Uf6v3p_zKLMAzJlaH9VA,1456
55
+ pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py,sha256=jlL6Lbav16RVPlZPV3U1tRfeOip39wF6KeLbmiO9h3w,1624
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
59
  pyedb/dotnet/database/cell/primitive/path.py,sha256=NsbGXaXmWJjpZEvAHWp8wcEbNgGaHZ8fak_2m5rbnHI,13096
60
- pyedb/dotnet/database/cell/primitive/primitive.py,sha256=KvzC_EdC2qbxWVyFLSAKON5grqFLaIb5i0NHtqOqqoQ,28796
60
+ pyedb/dotnet/database/cell/primitive/primitive.py,sha256=fx7GduFdtaUn1EfG-Do-eA2xTidsBtH3MWznfYMpXZ4,28999
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
63
63
  pyedb/dotnet/database/cell/terminal/edge_terminal.py,sha256=uyoemVyEzez8WjI9Fyqh-RbtmkJHjjUM5F1CsUErSOY,3970
64
64
  pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py,sha256=byFKoc1RzFmWUQuS5KuX9xiUikYjOwUjQuPby1jrV5o,4534
65
65
  pyedb/dotnet/database/cell/terminal/pingroup_terminal.py,sha256=60DUrszHP7QUVPSxoqTYrkOUukZsGiGNE3zd2Wa-2zQ,2753
66
66
  pyedb/dotnet/database/cell/terminal/point_terminal.py,sha256=psZBjsKufr_nMHGPIThfRD1jq4bVqgH_TE5Gq1BIhTQ,3390
67
- pyedb/dotnet/database/cell/terminal/terminal.py,sha256=CWRZcgxXqeJhMHiBRweygYQrXo248i7XpXL6MT_moYc,18186
67
+ pyedb/dotnet/database/cell/terminal/terminal.py,sha256=_FlndrFfSQX5V954trt4S4RIjloLc35b1g0MbpUW5gQ,18692
68
68
  pyedb/dotnet/database/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
69
  pyedb/dotnet/database/definition/component_def.py,sha256=8Ldcn9zHP_-RJUo-kbLmtRRonS8X0EUc-Yo12X2GJdo,7404
70
70
  pyedb/dotnet/database/definition/component_model.py,sha256=xvTQYuFAKRigacuahw6TQkM8SaJ8F-FExXmG2sTjSSI,1838
71
71
  pyedb/dotnet/database/definition/definition_obj.py,sha256=HU_SL9tMGlmWyockpRM51k9PdpQ4eeHjScP4YQdGkls,1560
72
72
  pyedb/dotnet/database/definition/definitions.py,sha256=sXWgCkHOtCkqZOtdnIdwjnkfCoKHAwFHsYleqkc_XcQ,2383
73
- pyedb/dotnet/database/definition/package_def.py,sha256=TJ3B3_6BTRJv3zayubhZiKdBHKa5ayfvmE2-EjBrWLA,6145
73
+ pyedb/dotnet/database/definition/package_def.py,sha256=kB3Od01vrJmvGynyhkuJLKT1Ry_aO4A0wt447HW_6IY,6828
74
74
  pyedb/dotnet/database/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
- pyedb/dotnet/database/dotnet/database.py,sha256=7x1kQuLwL5QQ2S--ZrEVuFdHexXGAjOeHKlpbe_E38o,36792
75
+ pyedb/dotnet/database/dotnet/database.py,sha256=1LVNuN2FPSrUnNCQd9E541u8UevX1gq2kgym1cD-ygk,37240
76
76
  pyedb/dotnet/database/dotnet/primitive.py,sha256=Ma-hwk62_6Xhi4SKViYyYVGxTqdZw5v3VcjZ55ek68c,49944
77
77
  pyedb/dotnet/database/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
78
  pyedb/dotnet/database/edb_data/control_file.py,sha256=4vtrXuHDgaX9wcyIGnIRMyCGUtvNqbx457HK0rtb-dE,52550
@@ -81,21 +81,21 @@ pyedb/dotnet/database/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXR
81
81
  pyedb/dotnet/database/edb_data/hfss_extent_info.py,sha256=Ydzle6moatP89kQdjnzyNabsCW0KXE4WYqDv7sFyLb8,13040
82
82
  pyedb/dotnet/database/edb_data/layer_data.py,sha256=4Z_eaHSfGfwQBKETEmGSwMvwGzvirtwYw4G4TwonNiA,34314
83
83
  pyedb/dotnet/database/edb_data/nets_data.py,sha256=siq2w5CT5D5PeK9tC_vaGM54UOyqnYkcP4kUts459es,10009
84
- pyedb/dotnet/database/edb_data/padstacks_data.py,sha256=-YmvhsGuyO-gXX4WWOyQw2n8l-Wg1IBw4PfJCfbEeWo,82079
85
- pyedb/dotnet/database/edb_data/ports.py,sha256=ycOETLruRl4wwL372Jftm_rFg2vfluyb_Rv39C5OSKA,7061
84
+ pyedb/dotnet/database/edb_data/padstacks_data.py,sha256=9HrWHNJr--OvO7uq2EnoEIPmiBilU7iNV0L9jyXSLS0,82977
85
+ pyedb/dotnet/database/edb_data/ports.py,sha256=qoqTqk47E4xtg43uvQ_SWCEUQscFBjt2bfcj9vsQsLI,7405
86
86
  pyedb/dotnet/database/edb_data/primitives_data.py,sha256=gBW7GiaPxDWBUj1wgOIiNHJ3QKM2ZDU0SJh0JWUlFHc,16826
87
87
  pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py,sha256=f_09VvuDHeaIuTivSi2OiAEv8aJ52vBasuBoSS9sCQE,20953
88
88
  pyedb/dotnet/database/edb_data/simulation_configuration.py,sha256=epMOclqz9nyewh2zEHFzylSS6e4-10dAqKzzZYbkgaw,100432
89
89
  pyedb/dotnet/database/edb_data/sources.py,sha256=PEJXUwHALV3P6n8_OldlFrgeBfGlXq3EMNzC_PKO_1Q,15700
90
- pyedb/dotnet/database/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e46EiFuiFtsroB4,4928
90
+ pyedb/dotnet/database/edb_data/utilities.py,sha256=ztJdG7fy-e4OoCOqmIYr2xE7Fz6YMsEEVNxIengD0mA,4938
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
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
94
+ pyedb/dotnet/database/geometry/polygon_data.py,sha256=TDNuuqzNUYDB7QNNAbvJsq9YGAzYbAbc0vG7lz3Tmb4,6206
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
98
- pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py,sha256=ZghVRlnIDk7TXHRsLSGfvkWxFe0_6byHPJiebsENX60,8073
98
+ pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py,sha256=WqDQjs1yA8MDX0PtybjDEelvnn5B9L2xIts0BH4Y9dw,8775
99
99
  pyedb/dotnet/database/sim_setup_data/data/settings.py,sha256=VuJaksqhiM--ROQY67d-9WSwdr83-ncbQbTtbrFjVGs,28012
100
100
  pyedb/dotnet/database/sim_setup_data/data/sim_setup_info.py,sha256=hN2TeXa8dbtOmEtwobhKuwomJXYs8cSJum3HQofuW3Y,4479
101
101
  pyedb/dotnet/database/sim_setup_data/data/simulation_settings.py,sha256=ag-nl1gwKlNJOb3y7fBMSoSEwbUG_rwLzM25jLp8ado,10727
@@ -107,8 +107,8 @@ pyedb/dotnet/database/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061f
107
107
  pyedb/dotnet/database/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
108
108
  pyedb/dotnet/database/utilities/hfss_simulation_setup.py,sha256=1tlZ64rUNEtvRLLbVhN-gfuVduVCo8fT6IPKfQCEaDs,14074
109
109
  pyedb/dotnet/database/utilities/obj_base.py,sha256=xSGTbfh4pbNIw3EjqtjFMiN8rWM2JhYZ2eU73qHAGlI,2883
110
- pyedb/dotnet/database/utilities/simulation_setup.py,sha256=BydnogZUf2txPi0ViUSmrusownk-weccc5v-iWI59wQ,12050
111
- pyedb/dotnet/database/utilities/siwave_simulation_setup.py,sha256=j7bIniRXBJVw51MHv7FeNKQ_Fz3hOHxG8crzfJmNgm4,13872
110
+ pyedb/dotnet/database/utilities/simulation_setup.py,sha256=YDOBKSU5cJ1crSrAccKVh8FGf0p84dghkEn8bTVG4hU,13320
111
+ pyedb/dotnet/database/utilities/siwave_simulation_setup.py,sha256=UhBBHd-Nmj5SKR4wtVprOULAnVegKCSQv840yvJNlyo,13924
112
112
  pyedb/extensions/pre_layout_design_toolkit/via_design.py,sha256=b9pTM5Gi3S3O2epaSBp4cD5DEul-MP5gCvRw3E5GmpE,46734
113
113
  pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
114
  pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
@@ -119,21 +119,21 @@ 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=6PuJCp7R9jN_edjMw0SeM7C92m0s9paGt2u6FIXXo6E,160387
122
+ pyedb/grpc/edb.py,sha256=HNXeIcDXAroSdsg3Xz_G9PpeSYMDGZG2raSnWF5lJ6U,163685
123
123
  pyedb/grpc/edb_init.py,sha256=APv7vPNSoW9FMqwyaUYfmMnYHYtyvy9UejIURIiDjnI,14320
124
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=dO4ZHgi0dEgc8f_o7emJ3inSeGrrovGeY7hHAhHIoWY,83849
126
+ pyedb/grpc/database/components.py,sha256=jyVQv4IG6_NmzG9If357PTYEca90rnmBjGzGP0pHyKo,84122
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=-BS-Gm-Ytyj3FRgs7rOK9H7QiD_yNnHX18nut2GCX14,46033
130
+ pyedb/grpc/database/hfss.py,sha256=LsuxEW_3oLfJPRyvPMpE6eI4DmA-MW4JWrAjNnNME-8,46059
131
131
  pyedb/grpc/database/layout_validation.py,sha256=3XNjX6VX942fRPfSqIhGvRACmsQnbrbiXtW0elPwC50,13492
132
- pyedb/grpc/database/modeler.py,sha256=PT06tPaHh0ILY36HbGKfTwr45AHsxZRUfZFlizzaBnM,55065
132
+ pyedb/grpc/database/modeler.py,sha256=abf_BrNuXXHhB3NYaYLIDhk9vnFwz9riwVcw0ognnQc,55115
133
133
  pyedb/grpc/database/nets.py,sha256=aBGhSzudYcq_heAyOX9ucAmLXY4nwOPrnRegRJ3lcHc,21234
134
- pyedb/grpc/database/padstacks.py,sha256=sHzuCuqeckS0ModCVEFNLV6uCr33nUbAaRHgHZb64h4,64997
134
+ pyedb/grpc/database/padstacks.py,sha256=1cmxoCS-3UqWACtyzTa-3BTQUrH0NTrrkr4sD17hZxY,65025
135
135
  pyedb/grpc/database/siwave.py,sha256=sjiJ4D4CCK8WQO9b9vzrETbaCVWKOAjnK7kMW2ZHS3A,35472
136
- pyedb/grpc/database/source_excitations.py,sha256=syOk88rcLKaPTJUYR3sX1Bo7jbr5rM5g6jLUykNoLJ8,107619
136
+ pyedb/grpc/database/source_excitations.py,sha256=xbTU6-v-7ShUJzGeqRRQLpIRKkcvXSWP96L_WG3s_9Y,108037
137
137
  pyedb/grpc/database/stackup.py,sha256=BieO4aYOb9FwPTlCtpBhuWhRjvhaqERSibaKxOyZgHU,109568
138
138
  pyedb/grpc/database/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
139
  pyedb/grpc/database/definition/component_def.py,sha256=hc9Rh0E_QB7axgNtUvimLYkKxzRKxEWZsfMjQE0g1G4,7383
@@ -169,14 +169,14 @@ 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=LCBfkFqhUpib-VMz7cY2BrPV4sVGVKq70RTUTy_8Hqw,10231
172
+ pyedb/grpc/database/ports/ports.py,sha256=fRrWYPyb1_bRBsfhogd-i8RvX-WXEkbd8YSGcarbcX4,10321
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
176
176
  pyedb/grpc/database/primitive/padstack_instance.py,sha256=0JouHwaRacogCjEjPIg8YC89pwzT2vqszdUu1Gj_IYE,37449
177
- pyedb/grpc/database/primitive/path.py,sha256=3Z3ZSrCHaA2ftldRe_lBLIjXjsqAwWxF9E5FCATxvek,12046
177
+ pyedb/grpc/database/primitive/path.py,sha256=pMHqgmwiQA3JORR-ggGw9RVHVFPAgftlJe27qmQRJ6o,12085
178
178
  pyedb/grpc/database/primitive/polygon.py,sha256=noqgYSZAH5aa3leiZjCIN6BhDJ_EomgEiNPmS9H2Dqs,9482
179
- pyedb/grpc/database/primitive/primitive.py,sha256=8zJHRCCpaVm0-4z2Q_jhdItAot2ZdGHfKiujP0HdZ1Q,24781
179
+ pyedb/grpc/database/primitive/primitive.py,sha256=yr1Sg2T3lxVyS8mF7fLKXLooVE0dEfwZ-3oWZ2L0Ebo,24880
180
180
  pyedb/grpc/database/primitive/rectangle.py,sha256=UOFEPaO4B-2Wmr9QbvEsOwUVwwGzJ4o6D-eOiB0aoks,5359
181
181
  pyedb/grpc/database/simulation_setup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
182
  pyedb/grpc/database/simulation_setup/adaptive_frequency.py,sha256=uEuYtf0RcRH5XlcBiTEN8sgdZZBrob9k7h5KW-I4QYs,1455
@@ -197,7 +197,7 @@ pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py,sha256=--Lr
197
197
  pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py,sha256=LtFl14cy4M5lynrqb0cLr9WMV9iur9dGpoiKI4hJU0g,6484
198
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
- pyedb/grpc/database/terminal/bundle_terminal.py,sha256=hr5FpAuH1gMsDO6CnJBgFU07m5t0XrUOcjhuQ_9tib8,6505
200
+ pyedb/grpc/database/terminal/bundle_terminal.py,sha256=_irKLGep5ezwGP8_6pvGaEMvy3mtNdwwoFw8KVxUYlI,6509
201
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
203
  pyedb/grpc/database/terminal/pingroup_terminal.py,sha256=ysQCdCq2k6xivXO_0N4_swNCPKqEAbJxqa6wXul49Ms,5739
@@ -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.47.1.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
286
- pyedb-0.47.1.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
287
- pyedb-0.47.1.dist-info/METADATA,sha256=GquG-u3G9JDgqK2JKsyB7iGj4sd-HO4ptttmsbfY-AQ,8619
288
- pyedb-0.47.1.dist-info/RECORD,,
285
+ pyedb-0.49.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
286
+ pyedb-0.49.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
287
+ pyedb-0.49.0.dist-info/METADATA,sha256=2uC_uKSbJVh6acGuwZM4f1m4C_ScYkueKMuQsfzfURQ,8619
288
+ pyedb-0.49.0.dist-info/RECORD,,
File without changes