pyedb 0.19.0__py3-none-any.whl → 0.20.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.
- pyedb/__init__.py +1 -1
- pyedb/dotnet/edb.py +154 -235
- pyedb/dotnet/edb_core/cell/connectable.py +64 -0
- pyedb/dotnet/edb_core/cell/hierarchy/component.py +12 -10
- pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +1 -1
- pyedb/dotnet/edb_core/cell/layout.py +253 -105
- pyedb/dotnet/edb_core/cell/layout_obj.py +4 -49
- pyedb/dotnet/edb_core/cell/primitive.py +14 -2
- pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +1 -1
- pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +1 -1
- pyedb/dotnet/edb_core/cell/terminal/terminal.py +1 -19
- pyedb/dotnet/edb_core/cell/voltage_regulator.py +2 -16
- pyedb/dotnet/edb_core/components.py +14 -13
- pyedb/dotnet/edb_core/dotnet/database.py +5 -10
- pyedb/dotnet/edb_core/dotnet/primitive.py +11 -1
- pyedb/dotnet/edb_core/edb_data/control_file.py +2 -12
- pyedb/dotnet/edb_core/edb_data/padstacks_data.py +20 -33
- pyedb/dotnet/edb_core/general.py +6 -9
- pyedb/dotnet/edb_core/hfss.py +4 -8
- pyedb/dotnet/edb_core/layout_obj_instance.py +30 -0
- pyedb/dotnet/edb_core/materials.py +4 -11
- pyedb/dotnet/edb_core/{layout.py → modeler.py} +153 -7
- pyedb/dotnet/edb_core/net_class.py +7 -8
- pyedb/dotnet/edb_core/nets.py +3 -9
- pyedb/dotnet/edb_core/padstack.py +13 -9
- pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +5 -2
- pyedb/dotnet/edb_core/siwave.py +5 -6
- pyedb/dotnet/edb_core/stackup.py +18 -23
- pyedb/dotnet/edb_core/utilities/simulation_setup.py +1 -4
- pyedb/generic/filesystem.py +2 -8
- pyedb/generic/general_methods.py +4 -10
- pyedb/generic/plot.py +26 -29
- pyedb/generic/process.py +2 -6
- pyedb/misc/downloads.py +3 -40
- pyedb/siwave.py +2 -5
- {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/METADATA +2 -2
- {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/RECORD +39 -38
- pyedb/dotnet/edb_core/dotnet/layout.py +0 -260
- {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/LICENSE +0 -0
- {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/WHEEL +0 -0
pyedb/dotnet/edb_core/nets.py
CHANGED
|
@@ -29,7 +29,7 @@ import warnings
|
|
|
29
29
|
|
|
30
30
|
from pyedb.dotnet.edb_core.edb_data.nets_data import EDBNetsData
|
|
31
31
|
from pyedb.generic.constants import CSS4_COLORS
|
|
32
|
-
from pyedb.generic.general_methods import generate_unique_name
|
|
32
|
+
from pyedb.generic.general_methods import generate_unique_name
|
|
33
33
|
from pyedb.modeler.geometry_operators import GeometryOperators
|
|
34
34
|
|
|
35
35
|
|
|
@@ -55,10 +55,7 @@ class EdbNets(object):
|
|
|
55
55
|
:class:` :class:`pyedb.dotnet.edb_core.edb_data.nets_data.EDBNetsData`
|
|
56
56
|
|
|
57
57
|
"""
|
|
58
|
-
|
|
59
|
-
return self.nets[name]
|
|
60
|
-
self._pedb.logger.error("Component or definition not found.")
|
|
61
|
-
return
|
|
58
|
+
return self._pedb.layout.find_net_by_name(name)
|
|
62
59
|
|
|
63
60
|
def __contains__(self, name):
|
|
64
61
|
"""Determine if a net is named ``name`` or not.
|
|
@@ -119,7 +116,7 @@ class EdbNets(object):
|
|
|
119
116
|
dict[str, :class:`pyedb.dotnet.edb_core.edb_data.nets_data.EDBNetsData`]
|
|
120
117
|
Dictionary of nets.
|
|
121
118
|
"""
|
|
122
|
-
return self._pedb.
|
|
119
|
+
return {i.name: i for i in self._pedb.layout.nets}
|
|
123
120
|
|
|
124
121
|
@property
|
|
125
122
|
def netlist(self):
|
|
@@ -841,9 +838,6 @@ class EdbNets(object):
|
|
|
841
838
|
show : bool, optional
|
|
842
839
|
Whether to show the plot or not. Default is `True`.
|
|
843
840
|
"""
|
|
844
|
-
if is_ironpython:
|
|
845
|
-
self._logger.warning("Plot functionalities are enabled only in CPython.")
|
|
846
|
-
return False
|
|
847
841
|
from pyedb.generic.plot import plot_matplotlib
|
|
848
842
|
|
|
849
843
|
object_lists = self.get_plot_data(
|
|
@@ -61,8 +61,8 @@ class EdbPadstacks(object):
|
|
|
61
61
|
:class:`pyedb.dotnet.edb_core.cell.hierarchy.component.EDBComponent`
|
|
62
62
|
|
|
63
63
|
"""
|
|
64
|
-
if name in self.instances:
|
|
65
|
-
return self.
|
|
64
|
+
if isinstance(name, int) and name in self.instances:
|
|
65
|
+
return self._pedb.layout.find_object_by_id(name)
|
|
66
66
|
elif name in self.definitions:
|
|
67
67
|
return self.definitions[name]
|
|
68
68
|
else:
|
|
@@ -74,6 +74,8 @@ class EdbPadstacks(object):
|
|
|
74
74
|
|
|
75
75
|
def __init__(self, p_edb):
|
|
76
76
|
self._pedb = p_edb
|
|
77
|
+
self._instances = {}
|
|
78
|
+
self._definitions = {}
|
|
77
79
|
|
|
78
80
|
@property
|
|
79
81
|
def _edb(self):
|
|
@@ -183,12 +185,14 @@ class EdbPadstacks(object):
|
|
|
183
185
|
List of definitions via padstack definitions.
|
|
184
186
|
|
|
185
187
|
"""
|
|
186
|
-
|
|
188
|
+
if len(self._definitions) == len(self._pedb.padstack_defs):
|
|
189
|
+
return self._definitions
|
|
190
|
+
self._definitions = {}
|
|
187
191
|
for padstackdef in self._pedb.padstack_defs:
|
|
188
192
|
PadStackData = padstackdef.GetData()
|
|
189
193
|
if len(PadStackData.GetLayerNames()) >= 1:
|
|
190
|
-
|
|
191
|
-
return
|
|
194
|
+
self._definitions[padstackdef.GetName()] = EDBPadstack(padstackdef, self)
|
|
195
|
+
return self._definitions
|
|
192
196
|
|
|
193
197
|
@property
|
|
194
198
|
def padstacks(self):
|
|
@@ -217,11 +221,11 @@ class EdbPadstacks(object):
|
|
|
217
221
|
|
|
218
222
|
"""
|
|
219
223
|
|
|
220
|
-
padstack_instances = {}
|
|
221
224
|
edb_padstack_inst_list = self._pedb.layout.padstack_instances
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
+
if len(self._instances) == len(edb_padstack_inst_list):
|
|
226
|
+
return self._instances
|
|
227
|
+
self._instances = {i.id: i for i in edb_padstack_inst_list}
|
|
228
|
+
return self._instances
|
|
225
229
|
|
|
226
230
|
@property
|
|
227
231
|
def instances_by_name(self):
|
|
@@ -50,7 +50,10 @@ class SweepData(object):
|
|
|
50
50
|
def _update_sweep(self):
|
|
51
51
|
"""Update the sweep."""
|
|
52
52
|
self.sim_setup.delete_frequency_sweep(self)
|
|
53
|
-
self.sim_setup.
|
|
53
|
+
ss_info = self.sim_setup.sim_setup_info
|
|
54
|
+
ss_info.add_sweep_data(self)
|
|
55
|
+
self.sim_setup.set_sim_setup_info(ss_info)
|
|
56
|
+
self.sim_setup._update_setup()
|
|
54
57
|
return
|
|
55
58
|
|
|
56
59
|
@property
|
|
@@ -165,7 +168,7 @@ class SweepData(object):
|
|
|
165
168
|
self._edb_object.FreqSweepType = edb_freq_sweep_type.kBroadbandFastSweep
|
|
166
169
|
elif value in [3, "kNumSweepTypes"]:
|
|
167
170
|
self._edb_object.FreqSweepType = edb_freq_sweep_type.kNumSweepTypes
|
|
168
|
-
self.
|
|
171
|
+
self._update_sweep()
|
|
169
172
|
|
|
170
173
|
@property
|
|
171
174
|
def type(self):
|
pyedb/dotnet/edb_core/siwave.py
CHANGED
|
@@ -36,7 +36,6 @@ from pyedb.dotnet.edb_core.edb_data.sources import (
|
|
|
36
36
|
CircuitPort,
|
|
37
37
|
CurrentSource,
|
|
38
38
|
DCTerminal,
|
|
39
|
-
PinGroup,
|
|
40
39
|
ResistorSource,
|
|
41
40
|
VoltageSource,
|
|
42
41
|
)
|
|
@@ -129,8 +128,8 @@ class EdbSiwave(object):
|
|
|
129
128
|
List of all layout pin groups.
|
|
130
129
|
"""
|
|
131
130
|
_pingroups = {}
|
|
132
|
-
for el in self.
|
|
133
|
-
_pingroups[el.GetName()] =
|
|
131
|
+
for el in self._pedb.layout.pin_groups:
|
|
132
|
+
_pingroups[el._edb_object.GetName()] = el
|
|
134
133
|
return _pingroups
|
|
135
134
|
|
|
136
135
|
def _create_terminal_on_pins(self, source):
|
|
@@ -325,10 +324,10 @@ class EdbSiwave(object):
|
|
|
325
324
|
pin = [
|
|
326
325
|
pin
|
|
327
326
|
for pin in self._pedb.padstacks.get_pinlist_from_component_and_net(component_name)
|
|
328
|
-
if pin.
|
|
327
|
+
if pin.component_pin == pin_name
|
|
329
328
|
][0]
|
|
330
|
-
term_name = "{}_{}_{}".format(pin.
|
|
331
|
-
res, start_layer, stop_layer = pin.GetLayerRange()
|
|
329
|
+
term_name = "{}_{}_{}".format(pin.component.name, pin._edb_object.GetNet().GetName(), pin.component_pin)
|
|
330
|
+
res, start_layer, stop_layer = pin._edb_object.GetLayerRange()
|
|
332
331
|
if res:
|
|
333
332
|
pin_instance = pin._edb_padstackinstance
|
|
334
333
|
positive_terminal = self._edb.cell.terminal.PadstackInstanceTerminal.Create(
|
pyedb/dotnet/edb_core/stackup.py
CHANGED
|
@@ -38,27 +38,26 @@ from pyedb.dotnet.edb_core.edb_data.layer_data import (
|
|
|
38
38
|
StackupLayerEdbClass,
|
|
39
39
|
)
|
|
40
40
|
from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
|
|
41
|
-
from pyedb.generic.general_methods import ET, generate_unique_name
|
|
41
|
+
from pyedb.generic.general_methods import ET, generate_unique_name
|
|
42
42
|
from pyedb.misc.aedtlib_personalib_install import write_pretty_xml
|
|
43
43
|
|
|
44
44
|
colors = None
|
|
45
45
|
pd = None
|
|
46
46
|
np = None
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
pd = None
|
|
47
|
+
try:
|
|
48
|
+
import matplotlib.colors as colors
|
|
49
|
+
except ImportError:
|
|
50
|
+
colors = None
|
|
51
|
+
|
|
52
|
+
try:
|
|
53
|
+
import numpy as np
|
|
54
|
+
except ImportError:
|
|
55
|
+
np = None
|
|
56
|
+
|
|
57
|
+
try:
|
|
58
|
+
import pandas as pd
|
|
59
|
+
except ImportError:
|
|
60
|
+
pd = None
|
|
62
61
|
|
|
63
62
|
logger = logging.getLogger(__name__)
|
|
64
63
|
|
|
@@ -970,8 +969,7 @@ class Stackup(LayerCollection):
|
|
|
970
969
|
if not pd:
|
|
971
970
|
self._pedb.logger.error("Pandas is needed. Please, install it first.")
|
|
972
971
|
return False
|
|
973
|
-
|
|
974
|
-
return
|
|
972
|
+
|
|
975
973
|
data = {
|
|
976
974
|
"Type": [],
|
|
977
975
|
"Material": [],
|
|
@@ -1972,9 +1970,7 @@ class Stackup(LayerCollection):
|
|
|
1972
1970
|
if not pd:
|
|
1973
1971
|
self._pedb.logger.error("Pandas is needed. You must install it first.")
|
|
1974
1972
|
return False
|
|
1975
|
-
|
|
1976
|
-
self._pedb.logger.error("Method works on CPython only.")
|
|
1977
|
-
return False
|
|
1973
|
+
|
|
1978
1974
|
df = pd.read_csv(file_path, index_col=0)
|
|
1979
1975
|
|
|
1980
1976
|
for name in self.stackup_layers.keys(): # pragma: no cover
|
|
@@ -2451,8 +2447,7 @@ class Stackup(LayerCollection):
|
|
|
2451
2447
|
-------
|
|
2452
2448
|
:class:`matplotlib.plt`
|
|
2453
2449
|
"""
|
|
2454
|
-
|
|
2455
|
-
return False
|
|
2450
|
+
|
|
2456
2451
|
from pyedb.generic.constants import CSS4_COLORS
|
|
2457
2452
|
from pyedb.generic.plot import plot_matplotlib
|
|
2458
2453
|
|
|
@@ -293,10 +293,7 @@ class SimulationSetup(object):
|
|
|
293
293
|
"""
|
|
294
294
|
warnings.warn("Use new property :func:`add_sweep_data` instead.", DeprecationWarning)
|
|
295
295
|
self._sweep_list[sweep_data.name] = sweep_data
|
|
296
|
-
|
|
297
|
-
edb_setup_info = self._edb_setup_info
|
|
298
|
-
else:
|
|
299
|
-
edb_setup_info = self.sim_setup_info
|
|
296
|
+
edb_setup_info = self.sim_setup_info
|
|
300
297
|
|
|
301
298
|
if self._setup_type in ["kSIwave", "kHFSS", "kRaptorX", "kHFSSPI"]:
|
|
302
299
|
for _, v in self._sweep_list.items():
|
pyedb/generic/filesystem.py
CHANGED
|
@@ -16,16 +16,10 @@ def search_files(dirname, pattern="*"):
|
|
|
16
16
|
-------
|
|
17
17
|
list
|
|
18
18
|
"""
|
|
19
|
-
from pyedb.generic.general_methods import is_ironpython
|
|
20
19
|
|
|
21
|
-
|
|
22
|
-
import glob
|
|
20
|
+
import pathlib
|
|
23
21
|
|
|
24
|
-
|
|
25
|
-
else:
|
|
26
|
-
import pathlib
|
|
27
|
-
|
|
28
|
-
return [os.path.abspath(i) for i in pathlib.Path(dirname).glob(pattern)]
|
|
22
|
+
return [os.path.abspath(i) for i in pathlib.Path(dirname).glob(pattern)]
|
|
29
23
|
|
|
30
24
|
|
|
31
25
|
def my_location():
|
pyedb/generic/general_methods.py
CHANGED
|
@@ -47,11 +47,9 @@ from pyedb.exceptions import MaterialModelException
|
|
|
47
47
|
from pyedb.generic.constants import CSS4_COLORS
|
|
48
48
|
from pyedb.generic.settings import settings
|
|
49
49
|
|
|
50
|
-
is_ironpython = "IronPython" in sys.version or ".NETFramework" in sys.version
|
|
51
50
|
is_linux = os.name == "posix"
|
|
52
51
|
is_windows = not is_linux
|
|
53
52
|
_pythonver = sys.version_info[0]
|
|
54
|
-
inside_desktop = True if is_ironpython and "4.0.30319.42000" in sys.version else False
|
|
55
53
|
|
|
56
54
|
|
|
57
55
|
try:
|
|
@@ -868,10 +866,7 @@ def read_xlsx(filename): # pragma: no cover
|
|
|
868
866
|
|
|
869
867
|
|
|
870
868
|
def write_csv(output, list_data, delimiter=",", quotechar="|", quoting=csv.QUOTE_MINIMAL): # pragma: no cover
|
|
871
|
-
|
|
872
|
-
f = open(output, "wb")
|
|
873
|
-
else:
|
|
874
|
-
f = open(output, "w", newline="")
|
|
869
|
+
f = open(output, "w", newline="")
|
|
875
870
|
writer = csv.writer(f, delimiter=delimiter, quotechar=quotechar, quoting=quoting)
|
|
876
871
|
for data in list_data:
|
|
877
872
|
writer.writerow(data)
|
|
@@ -1302,10 +1297,9 @@ def install_with_pip(package_name, package_path=None, upgrade=False, uninstall=F
|
|
|
1302
1297
|
uninstall : bool, optional
|
|
1303
1298
|
Whether to install the package or uninstall the package.
|
|
1304
1299
|
"""
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
import subprocess
|
|
1300
|
+
|
|
1301
|
+
import subprocess
|
|
1302
|
+
|
|
1309
1303
|
executable = '"{}"'.format(sys.executable) if is_windows else sys.executable
|
|
1310
1304
|
|
|
1311
1305
|
commands = []
|
pyedb/generic/plot.py
CHANGED
|
@@ -2,35 +2,32 @@ import ast
|
|
|
2
2
|
import os
|
|
3
3
|
import warnings
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
)
|
|
32
|
-
except:
|
|
33
|
-
pass
|
|
5
|
+
try:
|
|
6
|
+
import numpy # noqa: F401
|
|
7
|
+
except ImportError:
|
|
8
|
+
warnings.warn(
|
|
9
|
+
"The NumPy module is required to run some functionalities of PostProcess.\n"
|
|
10
|
+
"Install with \n\npip install numpy\n\nRequires CPython."
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
try:
|
|
14
|
+
from matplotlib.patches import PathPatch
|
|
15
|
+
from matplotlib.path import Path
|
|
16
|
+
|
|
17
|
+
# Use matplotlib agg backend (non-interactive) when the CI is running.
|
|
18
|
+
if bool(int(os.getenv("PYEDB_CI_NO_DISPLAY", "0"))): # pragma: no cover
|
|
19
|
+
import matplotlib
|
|
20
|
+
|
|
21
|
+
matplotlib.use("Agg")
|
|
22
|
+
import matplotlib.pyplot as plt
|
|
23
|
+
|
|
24
|
+
except ImportError:
|
|
25
|
+
warnings.warn(
|
|
26
|
+
"The Matplotlib module is required to run some functionalities of PostProcess.\n"
|
|
27
|
+
"Install with \n\npip install matplotlib\n\nRequires CPython."
|
|
28
|
+
)
|
|
29
|
+
except:
|
|
30
|
+
pass
|
|
34
31
|
|
|
35
32
|
|
|
36
33
|
def plot_matplotlib(
|
pyedb/generic/process.py
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import os.path
|
|
2
|
+
import subprocess
|
|
2
3
|
|
|
3
|
-
from pyedb.generic.general_methods import env_path,
|
|
4
|
-
|
|
5
|
-
if is_linux and is_ironpython:
|
|
6
|
-
import subprocessdotnet as subprocess
|
|
7
|
-
else:
|
|
8
|
-
import subprocess
|
|
4
|
+
from pyedb.generic.general_methods import env_path, is_linux
|
|
9
5
|
|
|
10
6
|
|
|
11
7
|
class SiwaveSolve(object):
|
pyedb/misc/downloads.py
CHANGED
|
@@ -24,15 +24,10 @@
|
|
|
24
24
|
import os
|
|
25
25
|
import shutil
|
|
26
26
|
import tempfile
|
|
27
|
+
import urllib.request
|
|
27
28
|
import zipfile
|
|
28
29
|
|
|
29
|
-
from pyedb.generic.general_methods import
|
|
30
|
-
from pyedb.misc.misc import list_installed_ansysem
|
|
31
|
-
|
|
32
|
-
if is_ironpython:
|
|
33
|
-
import urllib
|
|
34
|
-
else:
|
|
35
|
-
import urllib.request
|
|
30
|
+
from pyedb.generic.general_methods import is_linux, settings
|
|
36
31
|
|
|
37
32
|
tmpfold = tempfile.gettempdir()
|
|
38
33
|
EXAMPLE_REPO = "https://github.com/ansys/example-data/raw/master/"
|
|
@@ -62,8 +57,7 @@ def _retrieve_file(url, filename, directory, destination=None, local_paths=[]):
|
|
|
62
57
|
local_paths.append(local_path_no_zip)
|
|
63
58
|
|
|
64
59
|
# grab the correct url retriever
|
|
65
|
-
|
|
66
|
-
urlretrieve = urllib.request.urlretrieve
|
|
60
|
+
urlretrieve = urllib.request.urlretrieve
|
|
67
61
|
destination_dir = os.path.join(destination, directory)
|
|
68
62
|
if not os.path.isdir(destination_dir):
|
|
69
63
|
os.makedirs(destination_dir)
|
|
@@ -71,35 +65,6 @@ def _retrieve_file(url, filename, directory, destination=None, local_paths=[]):
|
|
|
71
65
|
if is_linux:
|
|
72
66
|
command = "wget {} -O {}".format(url, local_path)
|
|
73
67
|
os.system(command)
|
|
74
|
-
elif is_ironpython:
|
|
75
|
-
versions = list_installed_ansysem()
|
|
76
|
-
if versions:
|
|
77
|
-
cpython = os.listdir(os.path.join(os.getenv(versions[0]), "commonfiles", "CPython"))
|
|
78
|
-
command = (
|
|
79
|
-
'"'
|
|
80
|
-
+ os.path.join(
|
|
81
|
-
os.getenv(versions[0]),
|
|
82
|
-
"commonfiles",
|
|
83
|
-
"CPython",
|
|
84
|
-
cpython[0],
|
|
85
|
-
"winx64",
|
|
86
|
-
"Release",
|
|
87
|
-
"python",
|
|
88
|
-
"python.exe",
|
|
89
|
-
)
|
|
90
|
-
+ '"'
|
|
91
|
-
)
|
|
92
|
-
commandargs = os.path.join(os.path.dirname(local_path), "download.py")
|
|
93
|
-
command += ' "' + commandargs + '"'
|
|
94
|
-
with open(os.path.join(os.path.dirname(local_path), "download.py"), "w") as f:
|
|
95
|
-
f.write("import urllib.request\n")
|
|
96
|
-
f.write("urlretrieve = urllib.request.urlretrieve\n")
|
|
97
|
-
f.write("import urllib.request\n")
|
|
98
|
-
f.write('url = r"{}"\n'.format(url))
|
|
99
|
-
f.write('local_path = r"{}"\n'.format(local_path))
|
|
100
|
-
f.write("urlretrieve(url, local_path)\n")
|
|
101
|
-
print(command)
|
|
102
|
-
os.system(command)
|
|
103
68
|
else:
|
|
104
69
|
_, resp = urlretrieve(url, local_path)
|
|
105
70
|
local_paths.append(local_path)
|
|
@@ -118,8 +83,6 @@ def _retrieve_folder(url, directory, destination=None, local_paths=[]): # pragm
|
|
|
118
83
|
else:
|
|
119
84
|
local_path = os.path.join(destination, directory)
|
|
120
85
|
|
|
121
|
-
if is_ironpython:
|
|
122
|
-
return False
|
|
123
86
|
_get_dir = _get_file_url(directory)
|
|
124
87
|
with urllib.request.urlopen(_get_dir) as response: # nosec
|
|
125
88
|
data = response.read().decode("utf-8").split("\n")
|
pyedb/siwave.py
CHANGED
|
@@ -16,7 +16,7 @@ import warnings
|
|
|
16
16
|
|
|
17
17
|
from pyedb.dotnet.clr_module import _clr
|
|
18
18
|
from pyedb.edb_logger import pyedb_logger
|
|
19
|
-
from pyedb.generic.general_methods import _pythonver,
|
|
19
|
+
from pyedb.generic.general_methods import _pythonver, is_windows
|
|
20
20
|
from pyedb.misc.misc import list_installed_ansysem
|
|
21
21
|
from pyedb.siwave_core.icepak import Icepak
|
|
22
22
|
|
|
@@ -80,10 +80,7 @@ class Siwave(object): # pragma no cover
|
|
|
80
80
|
|
|
81
81
|
def __init__(self, specified_version=None):
|
|
82
82
|
self._logger = pyedb_logger
|
|
83
|
-
if
|
|
84
|
-
_com = "pythonnet"
|
|
85
|
-
import System
|
|
86
|
-
elif is_windows: # pragma: no cover
|
|
83
|
+
if is_windows: # pragma: no cover
|
|
87
84
|
modules = [tup[1] for tup in pkgutil.iter_modules()]
|
|
88
85
|
if _clr:
|
|
89
86
|
import win32com.client
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.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>
|
|
@@ -31,7 +31,7 @@ Requires-Dist: jupyterlab>=4.0.0,<4.3 ; extra == "doc"
|
|
|
31
31
|
Requires-Dist: jupytext>=1.16.0,<1.17 ; extra == "doc"
|
|
32
32
|
Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "doc"
|
|
33
33
|
Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
|
|
34
|
-
Requires-Dist: nbconvert < 7.
|
|
34
|
+
Requires-Dist: nbconvert < 7.17 ; extra == "doc"
|
|
35
35
|
Requires-Dist: numpydoc>=1.5.0,<1.8 ; extra == "doc"
|
|
36
36
|
Requires-Dist: pypandoc>=1.10.0,<1.14 ; extra == "doc"
|
|
37
37
|
Requires-Dist: recommonmark ; extra == "doc"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
pyedb/__init__.py,sha256=
|
|
1
|
+
pyedb/__init__.py,sha256=Fc62Ry9Jbd85qNtZhstEXZXdbivdXZ5b7tMp-N5JXWM,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=
|
|
4
|
+
pyedb/siwave.py,sha256=_AxkSZ-7P9aVmizWUWmwcqI07rpGsIZ_fYsd1WNjR6w,12986
|
|
5
5
|
pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
|
|
6
6
|
pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
7
|
pyedb/configuration/cfg_boundaries.py,sha256=ckb-OfaObItwy-xc0LqkHJyeCfKC5vg668olPjZbaKo,6647
|
|
@@ -22,29 +22,31 @@ pyedb/configuration/cfg_stackup.py,sha256=CX7uNN5QRoYW_MOObknP8003YchTS7PH9Oee7F
|
|
|
22
22
|
pyedb/configuration/configuration.py,sha256=coJU6y-y7VOGmH_NPXdEdoBdD_aZzYFx7sgvLKNm02E,12629
|
|
23
23
|
pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
24
|
pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
|
|
25
|
-
pyedb/dotnet/edb.py,sha256=
|
|
25
|
+
pyedb/dotnet/edb.py,sha256=eSIavcUxT810bXQ3o5rPUrCWxvbw7AR7Wq-TFvRli-E,178534
|
|
26
26
|
pyedb/dotnet/application/Variables.py,sha256=v_fxFJ6xjyyhk4uaMzWAbP-1FhXGuKsVNuyV1huaPME,77867
|
|
27
27
|
pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
|
|
29
|
-
pyedb/dotnet/edb_core/components.py,sha256=
|
|
30
|
-
pyedb/dotnet/edb_core/general.py,sha256=
|
|
31
|
-
pyedb/dotnet/edb_core/hfss.py,sha256=
|
|
32
|
-
pyedb/dotnet/edb_core/
|
|
29
|
+
pyedb/dotnet/edb_core/components.py,sha256=9IkBhWaevfxKF6MdSxQQ4L4LcWA-UEEwVxB8jLAvHbU,106796
|
|
30
|
+
pyedb/dotnet/edb_core/general.py,sha256=1g2bUekyUbu8p8zCinT4eI7uqRGIK8tY8mfuFePGRGg,4415
|
|
31
|
+
pyedb/dotnet/edb_core/hfss.py,sha256=Sh417lko4COeeod1C8sbBp6GkoTENEbALdYFOePnOcg,68535
|
|
32
|
+
pyedb/dotnet/edb_core/layout_obj_instance.py,sha256=Pd8rfdO3b6HLFGwXBMw-tfE4LPIcW_9_X5KEdFaiito,1407
|
|
33
33
|
pyedb/dotnet/edb_core/layout_validation.py,sha256=aOYgttlJ007uGG94NnhZR_iNHTuCI5CHkHWWTcm9n-E,12617
|
|
34
|
-
pyedb/dotnet/edb_core/materials.py,sha256=
|
|
35
|
-
pyedb/dotnet/edb_core/
|
|
36
|
-
pyedb/dotnet/edb_core/
|
|
37
|
-
pyedb/dotnet/edb_core/
|
|
38
|
-
pyedb/dotnet/edb_core/
|
|
39
|
-
pyedb/dotnet/edb_core/
|
|
34
|
+
pyedb/dotnet/edb_core/materials.py,sha256=0a5RxfuJ-tzkyDLxfSIv1cBf-Di7JMrTsW_uBRjUQgw,43079
|
|
35
|
+
pyedb/dotnet/edb_core/modeler.py,sha256=riS4ynU6KGZM2dwnaW06nkyQATGkpEvuqtaqEpm0Z3o,55674
|
|
36
|
+
pyedb/dotnet/edb_core/net_class.py,sha256=4U6Cc1Gn7ZJ_ub9uKmtrsoz5wD1XS42afci3Y3ewRp0,11354
|
|
37
|
+
pyedb/dotnet/edb_core/nets.py,sha256=CnZxnK_-WwOMzmJAEalxj_Xo3KlTSJNtf7Fn9x093Ak,43147
|
|
38
|
+
pyedb/dotnet/edb_core/padstack.py,sha256=KSWFHgZK8r1BOOil6e7ZOjVHg-1TAX1IeiiInndjvzE,63178
|
|
39
|
+
pyedb/dotnet/edb_core/siwave.py,sha256=qhPTgFHaBThvlvch1po8uGsZdmOi1rVzEFHYv19DHPU,64317
|
|
40
|
+
pyedb/dotnet/edb_core/stackup.py,sha256=k_bU1ZmboISncZXD4dn8oPJF-ZQS-zZSAUTcOUYViSM,120510
|
|
40
41
|
pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
pyedb/dotnet/edb_core/cell/
|
|
42
|
-
pyedb/dotnet/edb_core/cell/
|
|
43
|
-
pyedb/dotnet/edb_core/cell/
|
|
44
|
-
pyedb/dotnet/edb_core/cell/
|
|
42
|
+
pyedb/dotnet/edb_core/cell/connectable.py,sha256=rKWPATg0GCHi4d1ftu2V7WWhkDONjloCSPujssie5a8,2310
|
|
43
|
+
pyedb/dotnet/edb_core/cell/layout.py,sha256=g9vMzja9VT9iLFJDz75zYWuE5FfdjquYWysoaIgu1kY,11877
|
|
44
|
+
pyedb/dotnet/edb_core/cell/layout_obj.py,sha256=fVLjHMsokK2eEILTBo_9lEpjJCP0bkdk5RFZclnTi4o,3088
|
|
45
|
+
pyedb/dotnet/edb_core/cell/primitive.py,sha256=WHiX5ROLMYf71ZuX-4TrOUhRcI6RLiUPap7AzajO2YA,11704
|
|
46
|
+
pyedb/dotnet/edb_core/cell/voltage_regulator.py,sha256=-uAzuyERV6ca0bFRzdH4SllcpGY2D9JEdpS7RYaQt6c,5387
|
|
45
47
|
pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
-
pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=
|
|
47
|
-
pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=
|
|
48
|
+
pyedb/dotnet/edb_core/cell/hierarchy/component.py,sha256=jvS1VXhm58zkSSPOBUazL67JxMGQjMGSC6pE4Hw_4DM,33859
|
|
49
|
+
pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py,sha256=QZhkoSxRnewxvX8HJKHx-jcw-eIR3eudmDqFQbvltfM,1896
|
|
48
50
|
pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=LwXE4VUfptG5rJ9gmAmye0hECBv7bUGtby1ZzNFkeT0,3198
|
|
49
51
|
pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py,sha256=fF6tY-6s-lW9EuvJ5sw3RlIkjuoSjeZbrNk5wG-_hzM,1356
|
|
50
52
|
pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py,sha256=4zo2ut6UAeJqxw70n1luWg2QGEeuMRoVcEcdC9bYG50,3846
|
|
@@ -53,10 +55,10 @@ pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCs
|
|
|
53
55
|
pyedb/dotnet/edb_core/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
56
|
pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py,sha256=TRPlsLH3_QOlDa5s8-tx399fkpJ3eJ8ictuCvlgkai0,2050
|
|
55
57
|
pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py,sha256=MvmKA0JGVeqGx7smuMOVPaQ_PESJmi34oUL9OH5oKiY,2137
|
|
56
|
-
pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py,sha256=
|
|
58
|
+
pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py,sha256=HOMNvSj8thN3RgSg2eDb_CE8PpqkcVLrIYPZGOW-IQk,3803
|
|
57
59
|
pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py,sha256=M5qZNH-MLDkgSJABNVKmnBLyLgezm2fqJGl70EyPVUo,2586
|
|
58
|
-
pyedb/dotnet/edb_core/cell/terminal/point_terminal.py,sha256=
|
|
59
|
-
pyedb/dotnet/edb_core/cell/terminal/terminal.py,sha256=
|
|
60
|
+
pyedb/dotnet/edb_core/cell/terminal/point_terminal.py,sha256=DafZBGjUx_OE8gZWcUKPh4cH3BRkJSj9XolhzIPOE3I,2400
|
|
61
|
+
pyedb/dotnet/edb_core/cell/terminal/terminal.py,sha256=eeM9peo4Jfu9WWwCoRX8X0dRdW3rM_aqXRuqWw_8fi8,19228
|
|
60
62
|
pyedb/dotnet/edb_core/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
63
|
pyedb/dotnet/edb_core/definition/component_def.py,sha256=tYZ4L6DigwSjdQJ5AlqEbordPVZyJ6hYFNc6b3QnJ18,6514
|
|
62
64
|
pyedb/dotnet/edb_core/definition/component_model.py,sha256=PhT5voy3qk8fsp94dK6TN_Zxz5aXwO_mmeIwWm7C_Hs,1944
|
|
@@ -64,18 +66,17 @@ pyedb/dotnet/edb_core/definition/definition_obj.py,sha256=QKlR8DNpNaOd00sY1ybEZA
|
|
|
64
66
|
pyedb/dotnet/edb_core/definition/definitions.py,sha256=9Zjl5LNidDBk07m-QGpducWfFsyE52pScI8PC5f0doU,2383
|
|
65
67
|
pyedb/dotnet/edb_core/definition/package_def.py,sha256=UoYNdfrB5j0rG4OK94yE25dCTzHcpDjSEn4L2yF10YY,6145
|
|
66
68
|
pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
|
-
pyedb/dotnet/edb_core/dotnet/database.py,sha256=
|
|
68
|
-
pyedb/dotnet/edb_core/dotnet/
|
|
69
|
-
pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=8UYyQ9pXINHvy0ORizxjiAA-iAoLxIt5-ekN4Cr3PgU,53730
|
|
69
|
+
pyedb/dotnet/edb_core/dotnet/database.py,sha256=xyISmY691ItgM_Fqos3Bra4BRnxCJVU4M1Ueg4V9ixg,37324
|
|
70
|
+
pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=k9ltBCWtekt-iiZj8r0yEDp2dWSxKm19SaMqDGkL-ac,54135
|
|
70
71
|
pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
-
pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=
|
|
72
|
+
pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=_W5DDBFvm4gTq8yCvhzfiWUsfpQK4PnLkjmntIYvW8E,48217
|
|
72
73
|
pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
|
|
73
74
|
pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
|
|
74
75
|
pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=hKFHWUl0_OCMEZJbQn5c8Y1a-BYKr8nAycIlrCoeufk,13005
|
|
75
76
|
pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
76
77
|
pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=SBx2IKtbSn4AvySw4b6IGu3rbb6F-nEoaiqhUwarpLY,25706
|
|
77
78
|
pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=ICF61kgST9Rm4hUqU3KUh8FMNlrZEVQO1LqZR1VADkA,9979
|
|
78
|
-
pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=
|
|
79
|
+
pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=CcDbP9tko2m88oJ4RPPPsd5kujSUR57RDdZxGo7XLfc,78359
|
|
79
80
|
pyedb/dotnet/edb_core/edb_data/ports.py,sha256=wr2RQi8VExuNIVmnp7c4VpTIhODgthmJmHr01zO4ueo,8873
|
|
80
81
|
pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=i6mC-y19iiO9Tr4w3A4Usrd_flyeUSPnxLCz980qFyA,43442
|
|
81
82
|
pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py,sha256=P37-OIsc8TuTC_s3CXRmvZcJqxAftHA7SATfEyoAnMM,20953
|
|
@@ -94,23 +95,23 @@ pyedb/dotnet/edb_core/sim_setup_data/data/settings.py,sha256=u2EhL_netNF4FTQicWy
|
|
|
94
95
|
pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py,sha256=yfSIsI7G5qgTqkc7UzWvw2-phZG2kawtQAxsXMiEvOE,4479
|
|
95
96
|
pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py,sha256=9ji4UQzgTTOExgGMpCB8zgvovBjhedwqLoN1MzUHOks,10727
|
|
96
97
|
pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py,sha256=caRhPnon_jN5xXznLy57JPD5lGC7DS8KqYtXSC19nJ4,8627
|
|
97
|
-
pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py,sha256=
|
|
98
|
+
pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py,sha256=jPxWKRyszCrw9iqiJ5VldVTCxrCC0cIxjihe0BsDNEw,18074
|
|
98
99
|
pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
99
100
|
pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py,sha256=92iEZrhA2CUTZ7wynL5nxVVwi2XKKqppx7AcvvoqK6E,31387
|
|
100
101
|
pyedb/dotnet/edb_core/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
101
102
|
pyedb/dotnet/edb_core/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
|
|
102
103
|
pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py,sha256=_0H_7ypwrR5kj4LFhJLRvG9PV1lemvRnxRBJuOcGeXM,14074
|
|
103
104
|
pyedb/dotnet/edb_core/utilities/obj_base.py,sha256=lufR0sZj0QfZ2wlNvLL6aM1KVqCNY2A7taPPdWcK20w,3312
|
|
104
|
-
pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=
|
|
105
|
+
pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=5-lpTiErVpRI6Os5iNpa1SIrGCjgHHUgJ0ozI5pVLIs,12236
|
|
105
106
|
pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py,sha256=BXuYJ7KQMgKiQnw6_Dft2aT11PYz6M7C-NJrMS8ZFX0,12764
|
|
106
107
|
pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
107
108
|
pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
|
|
108
109
|
pyedb/generic/data_handlers.py,sha256=rfqNe2tPCJRqhXZBCyWxRFu5SjQ92Cdzq4l0TDC4Pvw,6905
|
|
109
110
|
pyedb/generic/design_types.py,sha256=qHyIaz-Vd3ra4CP9xER76-nGRonYmSAiI3Dr8YPUeH8,4354
|
|
110
|
-
pyedb/generic/filesystem.py,sha256=
|
|
111
|
-
pyedb/generic/general_methods.py,sha256=
|
|
112
|
-
pyedb/generic/plot.py,sha256=
|
|
113
|
-
pyedb/generic/process.py,sha256=
|
|
111
|
+
pyedb/generic/filesystem.py,sha256=gqYh3xet_JjBOFopxCJldgeUItFRbBpVVi2ACnveCYw,3757
|
|
112
|
+
pyedb/generic/general_methods.py,sha256=HfDQEiQkNng4apFUbStsEfvKDbPkZ0Oz9Wjlqqz5LSI,42798
|
|
113
|
+
pyedb/generic/plot.py,sha256=0x2-v_xNSoy07rILKGQStQMTUIYrvJEvFO1n9KuSfAc,4717
|
|
114
|
+
pyedb/generic/process.py,sha256=DiOanqNq5APYryBYo3Wt4mQ54cBR9-ULrrIOqGE4S8c,11107
|
|
114
115
|
pyedb/generic/settings.py,sha256=QTX5OVZ8sVPIy_QaSxRODUWvoXkYkVpzh3l6pQPseKQ,9220
|
|
115
116
|
pyedb/ipc2581/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
116
117
|
pyedb/ipc2581/history_record.py,sha256=s1GjcIgnZHlNCBOeEERBDX7xDuqhXmh2Ctt3ccFDWso,2739
|
|
@@ -162,7 +163,7 @@ pyedb/ipc2581/ecad/cad_data/stackup_layer.py,sha256=SMkX9wrHdxbVn6hcPqlAbWz14IKi
|
|
|
162
163
|
pyedb/ipc2581/ecad/cad_data/step.py,sha256=p4X0LGECdI4dTtxgh0oAkjQtd6G7FrZYwW-qrsRyrMM,12296
|
|
163
164
|
pyedb/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
164
165
|
pyedb/misc/aedtlib_personalib_install.py,sha256=eCVAdEoriMU92bZwPzY9Aig85cBbUO0J8J4RMtMkY_o,1759
|
|
165
|
-
pyedb/misc/downloads.py,sha256=
|
|
166
|
+
pyedb/misc/downloads.py,sha256=j9jJhwGTTJwm4WWaCSEhGZzOGyOyHhBAFexx0NtD4Uw,10824
|
|
166
167
|
pyedb/misc/misc.py,sha256=3vyQ-l7lKUxdpdc_kGc7QNwu_EkmD8rRxe01Zx5Drr4,3315
|
|
167
168
|
pyedb/misc/pyedb.runtimeconfig.json,sha256=2xof-Vl0hY2VOs1KkMSReTMZACsZhcmPmyHXukfb-oY,301
|
|
168
169
|
pyedb/misc/utilities.py,sha256=w8mSGtgBlakcdOtWyP_NY0hUu_hxannOQOBvVxn02Fc,465
|
|
@@ -181,7 +182,7 @@ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8Wx
|
|
|
181
182
|
pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
|
|
182
183
|
pyedb/modeler/geometry_operators.py,sha256=iXNGfp3oMAxc6Ij_jatawR9NAKksMfnmWTaoHQVGX80,72699
|
|
183
184
|
pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
|
|
184
|
-
pyedb-0.
|
|
185
|
-
pyedb-0.
|
|
186
|
-
pyedb-0.
|
|
187
|
-
pyedb-0.
|
|
185
|
+
pyedb-0.20.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
|
|
186
|
+
pyedb-0.20.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
187
|
+
pyedb-0.20.0.dist-info/METADATA,sha256=RmQ1mTuULbWi0_7ZYKEyMpH2mHCIFDQB5yishriZz8c,8318
|
|
188
|
+
pyedb-0.20.0.dist-info/RECORD,,
|