pyedb 0.22.0__py3-none-any.whl → 0.22.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pyedb might be problematic. Click here for more details.
- pyedb/__init__.py +1 -1
- pyedb/dotnet/edb.py +28 -3
- {pyedb-0.22.0.dist-info → pyedb-0.22.1.dist-info}/METADATA +1 -1
- {pyedb-0.22.0.dist-info → pyedb-0.22.1.dist-info}/RECORD +6 -7
- pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py +0 -0
- {pyedb-0.22.0.dist-info → pyedb-0.22.1.dist-info}/LICENSE +0 -0
- {pyedb-0.22.0.dist-info → pyedb-0.22.1.dist-info}/WHEEL +0 -0
pyedb/__init__.py
CHANGED
pyedb/dotnet/edb.py
CHANGED
|
@@ -37,6 +37,7 @@ import time
|
|
|
37
37
|
import traceback
|
|
38
38
|
from typing import Union
|
|
39
39
|
import warnings
|
|
40
|
+
from zipfile import ZipFile as zpf
|
|
40
41
|
|
|
41
42
|
import rtree
|
|
42
43
|
|
|
@@ -118,7 +119,7 @@ class Edb(Database):
|
|
|
118
119
|
edbpath : str, optional
|
|
119
120
|
Full path to the ``aedb`` folder. The variable can also contain
|
|
120
121
|
the path to a layout to import. Allowed formats are BRD, MCM,
|
|
121
|
-
XML (IPC2581), GDS, and DXF. The default is ``None``.
|
|
122
|
+
XML (IPC2581), GDS, ODB++(TGZ and ZIP) and DXF. The default is ``None``.
|
|
122
123
|
For GDS import, the Ansys control file (also XML) should have the same
|
|
123
124
|
name as the GDS file. Only the file extension differs.
|
|
124
125
|
cellname : str, optional
|
|
@@ -221,7 +222,31 @@ class Edb(Database):
|
|
|
221
222
|
if not isreadonly:
|
|
222
223
|
self._check_remove_project_files(edbpath, remove_existing_aedt)
|
|
223
224
|
|
|
224
|
-
if edbpath[-3:]
|
|
225
|
+
if edbpath[-3:] == "zip":
|
|
226
|
+
self.edbpath = edbpath[:-4] + ".aedb"
|
|
227
|
+
working_dir = os.path.dirname(edbpath)
|
|
228
|
+
zipped_file = zpf(edbpath, "r")
|
|
229
|
+
top_level_folders = {item.split("/")[0] for item in zipped_file.namelist()}
|
|
230
|
+
if len(top_level_folders) == 1:
|
|
231
|
+
self.logger.info("Unzipping ODB++...")
|
|
232
|
+
zipped_file.extractall(working_dir)
|
|
233
|
+
else:
|
|
234
|
+
self.logger.info("Unzipping ODB++ before translating to EDB...")
|
|
235
|
+
zipped_file.extractall(edbpath[:-4])
|
|
236
|
+
self.logger.info("ODB++ unzipped successfully.")
|
|
237
|
+
zipped_file.close()
|
|
238
|
+
control_file = None
|
|
239
|
+
if technology_file:
|
|
240
|
+
if os.path.splitext(technology_file)[1] == ".xml":
|
|
241
|
+
control_file = technology_file
|
|
242
|
+
else:
|
|
243
|
+
control_file = convert_technology_file(technology_file, edbversion=edbversion)
|
|
244
|
+
self.logger.info("Translating ODB++ to EDB...")
|
|
245
|
+
self.import_layout_pcb(edbpath[:-4], working_dir, use_ppe=use_ppe, control_file=control_file)
|
|
246
|
+
if settings.enable_local_log_file and self.log_name:
|
|
247
|
+
self._logger.add_file_logger(self.log_name, "Edb")
|
|
248
|
+
self.logger.info("EDB %s was created correctly from %s file.", self.edbpath, edbpath)
|
|
249
|
+
elif edbpath[-3:] in ["brd", "mcm", "sip", "gds", "xml", "dxf", "tgz", "anf"]:
|
|
225
250
|
self.edbpath = edbpath[:-4] + ".aedb"
|
|
226
251
|
working_dir = os.path.dirname(edbpath)
|
|
227
252
|
control_file = None
|
|
@@ -581,7 +606,7 @@ class Edb(Database):
|
|
|
581
606
|
):
|
|
582
607
|
"""Import a board file and generate an ``edb.def`` file in the working directory.
|
|
583
608
|
|
|
584
|
-
This function supports all AEDT formats, including DXF, GDS, SML (IPC2581), BRD, MCM and TGZ.
|
|
609
|
+
This function supports all AEDT formats, including DXF, GDS, SML (IPC2581), BRD, MCM, SIP, ZIP and TGZ.
|
|
585
610
|
|
|
586
611
|
Parameters
|
|
587
612
|
----------
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
pyedb/__init__.py,sha256=
|
|
1
|
+
pyedb/__init__.py,sha256=aGJoyShOw-T16kkEdjWiiAZz944O0yLK-PpwX5lBoBc,1521
|
|
2
2
|
pyedb/edb_logger.py,sha256=yNkXnoL2me7ubLT6O6r6ElVnkZ1g8fmfFYC_2XJZ1Sw,14950
|
|
3
3
|
pyedb/exceptions.py,sha256=n94xluzUks6BA24vd_L6HkrvoP_H_l6__hQmqzdCyPo,111
|
|
4
4
|
pyedb/siwave.py,sha256=_AxkSZ-7P9aVmizWUWmwcqI07rpGsIZ_fYsd1WNjR6w,12986
|
|
@@ -23,7 +23,7 @@ pyedb/configuration/cfg_stackup.py,sha256=CX7uNN5QRoYW_MOObknP8003YchTS7PH9Oee7F
|
|
|
23
23
|
pyedb/configuration/configuration.py,sha256=coJU6y-y7VOGmH_NPXdEdoBdD_aZzYFx7sgvLKNm02E,12629
|
|
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=
|
|
26
|
+
pyedb/dotnet/edb.py,sha256=ps_zASr7shSBISTB2fsfayCWmTDJ9FTYhDL3T-2pAUg,180752
|
|
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
|
|
@@ -74,7 +74,6 @@ pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=_W5DDBFvm4gTq8yCvhzfiWUsfp
|
|
|
74
74
|
pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
|
|
75
75
|
pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
|
|
76
76
|
pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=hKFHWUl0_OCMEZJbQn5c8Y1a-BYKr8nAycIlrCoeufk,13005
|
|
77
|
-
pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
77
|
pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=B6cClg5KTcKUn33jYccTN0uNZZ5dQ037WHCsI-vg3Us,25748
|
|
79
78
|
pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=ICF61kgST9Rm4hUqU3KUh8FMNlrZEVQO1LqZR1VADkA,9979
|
|
80
79
|
pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=atUTmNcR7qZ9GASM7_j8sQyjUM-IWePMbDBJ1A9kDZc,78359
|
|
@@ -183,7 +182,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
|
|
|
183
182
|
pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
|
|
184
183
|
pyedb/modeler/geometry_operators.py,sha256=g_Sy7a6R23sP6RtboJn1rl8uTuo8oeLmMF21rNkzwjk,74198
|
|
185
184
|
pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
|
|
186
|
-
pyedb-0.22.
|
|
187
|
-
pyedb-0.22.
|
|
188
|
-
pyedb-0.22.
|
|
189
|
-
pyedb-0.22.
|
|
185
|
+
pyedb-0.22.1.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
|
|
186
|
+
pyedb-0.22.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
187
|
+
pyedb-0.22.1.dist-info/METADATA,sha256=ggDIgzAO9DRVSItoBXoaskYZIA0xzSSv8hSosVGDOS4,8387
|
|
188
|
+
pyedb-0.22.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|