pyedb 0.7.1__py3-none-any.whl → 0.8.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 +1 -0
- pyedb/dotnet/edb_core/cell/hierarchy/model.py +1 -1
- pyedb/dotnet/edb_core/components.py +15 -12
- pyedb/dotnet/edb_core/configuration.py +37 -5
- pyedb/dotnet/edb_core/definition/component_def.py +1 -1
- pyedb/dotnet/edb_core/definition/component_model.py +1 -1
- pyedb/dotnet/edb_core/definition/definition_obj.py +1 -1
- pyedb/dotnet/edb_core/definition/definitions.py +8 -2
- pyedb/dotnet/edb_core/definition/package_def.py +34 -15
- pyedb/dotnet/edb_core/dotnet/database.py +5 -4
- pyedb/dotnet/edb_core/edb_data/components_data.py +1 -1
- pyedb/dotnet/edb_core/edb_data/connectable.py +1 -1
- pyedb/dotnet/edb_core/edb_data/layer_data.py +3 -2
- pyedb/dotnet/edb_core/edb_data/primitives_data.py +4 -2
- pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py +6 -0
- pyedb/dotnet/edb_core/geometry/__init__.py +0 -0
- pyedb/dotnet/edb_core/{edb_data/obj_base.py → geometry/point_data.py} +12 -26
- pyedb/dotnet/edb_core/geometry/polygon_data.py +77 -0
- pyedb/dotnet/edb_core/materials.py +128 -106
- pyedb/dotnet/edb_core/nets.py +3 -3
- pyedb/dotnet/edb_core/obj_base.py +94 -0
- pyedb/dotnet/edb_core/siwave.py +33 -2
- pyedb/dotnet/edb_core/stackup.py +49 -42
- pyedb/dotnet/sim_setup_data/data/siw_dc_ir_settings.py +46 -0
- pyedb/edb_logger.py +15 -1
- pyedb/generic/settings.py +20 -9
- pyedb/siwave.py +50 -1
- {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/METADATA +5 -5
- {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/RECORD +32 -28
- {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/LICENSE +0 -0
- {pyedb-0.7.1.dist-info → pyedb-0.8.1.dist-info}/WHEEL +0 -0
pyedb/dotnet/edb_core/stackup.py
CHANGED
|
@@ -33,8 +33,6 @@ import logging
|
|
|
33
33
|
import math
|
|
34
34
|
import warnings
|
|
35
35
|
|
|
36
|
-
import matplotlib.colors
|
|
37
|
-
|
|
38
36
|
from pyedb.dotnet.edb_core.edb_data.layer_data import (
|
|
39
37
|
LayerEdbClass,
|
|
40
38
|
StackupLayerEdbClass,
|
|
@@ -48,9 +46,15 @@ from pyedb.generic.general_methods import (
|
|
|
48
46
|
)
|
|
49
47
|
from pyedb.misc.aedtlib_personalib_install import write_pretty_xml
|
|
50
48
|
|
|
49
|
+
colors = None
|
|
51
50
|
pd = None
|
|
52
51
|
np = None
|
|
53
52
|
if not is_ironpython:
|
|
53
|
+
try:
|
|
54
|
+
import matplotlib.colors as colors
|
|
55
|
+
except ImportError:
|
|
56
|
+
colors = None
|
|
57
|
+
|
|
54
58
|
try:
|
|
55
59
|
import numpy as np
|
|
56
60
|
except ImportError:
|
|
@@ -200,7 +204,7 @@ class Stackup(object):
|
|
|
200
204
|
inner_layer_thickness="17um",
|
|
201
205
|
outer_layer_thickness="50um",
|
|
202
206
|
dielectric_thickness="100um",
|
|
203
|
-
dielectric_material="
|
|
207
|
+
dielectric_material="FR4_epoxy",
|
|
204
208
|
soldermask=True,
|
|
205
209
|
soldermask_thickness="20um",
|
|
206
210
|
): # pragma: no cover
|
|
@@ -243,7 +247,7 @@ class Stackup(object):
|
|
|
243
247
|
self.add_layer(
|
|
244
248
|
"D" + str(int(layer_count / 2)),
|
|
245
249
|
None,
|
|
246
|
-
material="
|
|
250
|
+
material="FR4_epoxy",
|
|
247
251
|
thickness=dielectric_thickness,
|
|
248
252
|
layer_type="dielectric",
|
|
249
253
|
fillMaterial=dielectric_material,
|
|
@@ -259,7 +263,7 @@ class Stackup(object):
|
|
|
259
263
|
self.add_layer(
|
|
260
264
|
"SMT",
|
|
261
265
|
None,
|
|
262
|
-
material="
|
|
266
|
+
material="SolderMask",
|
|
263
267
|
thickness=soldermask_thickness,
|
|
264
268
|
layer_type="dielectric",
|
|
265
269
|
fillMaterial=dielectric_material,
|
|
@@ -267,14 +271,14 @@ class Stackup(object):
|
|
|
267
271
|
self.add_layer(
|
|
268
272
|
"SMB",
|
|
269
273
|
None,
|
|
270
|
-
material="
|
|
274
|
+
material="SolderMask",
|
|
271
275
|
thickness=soldermask_thickness,
|
|
272
276
|
layer_type="dielectric",
|
|
273
277
|
fillMaterial=dielectric_material,
|
|
274
278
|
method="add_on_bottom",
|
|
275
279
|
)
|
|
276
|
-
self.stackup_layers["TOP"].dielectric_fill = "
|
|
277
|
-
self.stackup_layers["BOT"].dielectric_fill = "
|
|
280
|
+
self.stackup_layers["TOP"].dielectric_fill = "SolderMask"
|
|
281
|
+
self.stackup_layers["BOT"].dielectric_fill = "SolderMask"
|
|
278
282
|
|
|
279
283
|
for layer_num in np.arange(int(layer_count / 2), 1, -1):
|
|
280
284
|
# Generate upper half
|
|
@@ -634,6 +638,7 @@ class Stackup(object):
|
|
|
634
638
|
else:
|
|
635
639
|
return False
|
|
636
640
|
|
|
641
|
+
# TODO: Update optional argument material into material_name and fillMaterial into fill_material_name
|
|
637
642
|
@pyedb_function_handler()
|
|
638
643
|
def add_layer(
|
|
639
644
|
self,
|
|
@@ -642,7 +647,7 @@ class Stackup(object):
|
|
|
642
647
|
method="add_on_top",
|
|
643
648
|
layer_type="signal",
|
|
644
649
|
material="copper",
|
|
645
|
-
fillMaterial="
|
|
650
|
+
fillMaterial="FR4_epoxy",
|
|
646
651
|
thickness="35um",
|
|
647
652
|
etch_factor=None,
|
|
648
653
|
is_negative=False,
|
|
@@ -686,25 +691,25 @@ class Stackup(object):
|
|
|
686
691
|
if layer_name in self.layers:
|
|
687
692
|
logger.error("layer {} exists.".format(layer_name))
|
|
688
693
|
return False
|
|
689
|
-
materials_lower = {m.lower(): m for m in list(self._pedb.materials.materials.keys())}
|
|
690
694
|
if not material:
|
|
691
|
-
if layer_type == "signal"
|
|
692
|
-
material = "copper"
|
|
693
|
-
else:
|
|
694
|
-
material = "fr4_epoxy"
|
|
695
|
+
material = "copper" if layer_type == "signal" else "FR4_epoxy"
|
|
695
696
|
if not fillMaterial:
|
|
696
|
-
fillMaterial = "
|
|
697
|
+
fillMaterial = "FR4_epoxy"
|
|
697
698
|
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
699
|
+
materials = self._pedb.materials
|
|
700
|
+
if material not in materials:
|
|
701
|
+
logger.warning(
|
|
702
|
+
f"Material '{material}' does not exist in material library. Intempt to create it from syslib."
|
|
703
|
+
)
|
|
704
|
+
material_properties = self._pedb.materials.read_syslib_material(material)
|
|
705
|
+
materials.add_material(material, **material_properties)
|
|
702
706
|
|
|
703
|
-
if layer_type != "dielectric":
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
707
|
+
if layer_type != "dielectric" and fillMaterial not in materials:
|
|
708
|
+
logger.warning(
|
|
709
|
+
f"Material '{fillMaterial}' does not exist in material library. Intempt to create it from syslib."
|
|
710
|
+
)
|
|
711
|
+
material_properties = self._pedb.materials.read_syslib_material(fillMaterial)
|
|
712
|
+
materials.add_material(fillMaterial, **material_properties)
|
|
708
713
|
|
|
709
714
|
if layer_type in ["signal", "dielectric"]:
|
|
710
715
|
new_layer = self._create_stackup_layer(layer_name, thickness, layer_type)
|
|
@@ -1716,7 +1721,7 @@ class Stackup(object):
|
|
|
1716
1721
|
"name": "default",
|
|
1717
1722
|
"type": "signal",
|
|
1718
1723
|
"material": "copper",
|
|
1719
|
-
"dielectric_fill": "
|
|
1724
|
+
"dielectric_fill": "FR4_epoxy",
|
|
1720
1725
|
"thickness": 3.5e-05,
|
|
1721
1726
|
"etch_factor": 0.0,
|
|
1722
1727
|
"roughness_enabled": False,
|
|
@@ -1747,7 +1752,7 @@ class Stackup(object):
|
|
|
1747
1752
|
"name": "default",
|
|
1748
1753
|
"type": "signal",
|
|
1749
1754
|
"material": "copper",
|
|
1750
|
-
"dielectric_fill": "
|
|
1755
|
+
"dielectric_fill": "FR4_epoxy",
|
|
1751
1756
|
"thickness": 3.5e-05,
|
|
1752
1757
|
"etch_factor": 0.0,
|
|
1753
1758
|
"roughness_enabled": False,
|
|
@@ -2072,25 +2077,24 @@ class Stackup(object):
|
|
|
2072
2077
|
|
|
2073
2078
|
@pyedb_function_handler()
|
|
2074
2079
|
def _add_materials_from_dictionary(self, material_dict):
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
self._pedb.materials.add_conductor_material(name, attr["Conductivity"])
|
|
2080
|
+
materials = self.self._pedb.materials.materials
|
|
2081
|
+
for name, material_properties in material_dict.items():
|
|
2082
|
+
if not name in materials:
|
|
2083
|
+
if "Conductivity" in material_properties:
|
|
2084
|
+
materials.add_conductor_material(name, material_properties["Conductivity"])
|
|
2081
2085
|
else:
|
|
2082
|
-
|
|
2086
|
+
materials.add_dielectric_material(
|
|
2083
2087
|
name,
|
|
2084
|
-
|
|
2085
|
-
|
|
2088
|
+
material_properties["Permittivity"],
|
|
2089
|
+
material_properties["DielectricLossTangent"],
|
|
2086
2090
|
)
|
|
2087
2091
|
else:
|
|
2088
|
-
|
|
2089
|
-
if "Conductivity" in
|
|
2090
|
-
|
|
2092
|
+
material = materials[name]
|
|
2093
|
+
if "Conductivity" in material_properties:
|
|
2094
|
+
material.conductivity = material_properties["Conductivity"]
|
|
2091
2095
|
else:
|
|
2092
|
-
|
|
2093
|
-
|
|
2096
|
+
material.permittivity = material_properties["Permittivity"]
|
|
2097
|
+
material.loss_tanget = material_properties["DielectricLossTangent"]
|
|
2094
2098
|
return True
|
|
2095
2099
|
|
|
2096
2100
|
@pyedb_function_handler()
|
|
@@ -2110,6 +2114,9 @@ class Stackup(object):
|
|
|
2110
2114
|
bool
|
|
2111
2115
|
``True`` when successful, ``False`` when failed.
|
|
2112
2116
|
"""
|
|
2117
|
+
if not colors:
|
|
2118
|
+
self._pedb.logger.error("Matplotlib is needed. Please, install it first.")
|
|
2119
|
+
return False
|
|
2113
2120
|
tree = ET.parse(file_path)
|
|
2114
2121
|
root = tree.getroot()
|
|
2115
2122
|
stackup = root.find("Stackup")
|
|
@@ -2130,7 +2137,7 @@ class Stackup(object):
|
|
|
2130
2137
|
layer = {"name": l.attrib["Name"]}
|
|
2131
2138
|
for k, v in l.attrib.items():
|
|
2132
2139
|
if k == "Color":
|
|
2133
|
-
layer[k.lower()] = [int(x * 255) for x in list(
|
|
2140
|
+
layer[k.lower()] = [int(x * 255) for x in list(colors.to_rgb(v))]
|
|
2134
2141
|
elif k == "Thickness":
|
|
2135
2142
|
layer[k.lower()] = v + length_unit
|
|
2136
2143
|
elif v == "conductor":
|
|
@@ -2257,7 +2264,7 @@ class Stackup(object):
|
|
|
2257
2264
|
>>> edb.stackup.import_stackup("stackup.xml")
|
|
2258
2265
|
"""
|
|
2259
2266
|
|
|
2260
|
-
self._logger.warning("Method
|
|
2267
|
+
self._logger.warning("Method import_stackup is deprecated. Use .load")
|
|
2261
2268
|
return self.load(file_path)
|
|
2262
2269
|
|
|
2263
2270
|
@pyedb_function_handler()
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
#
|
|
4
|
+
#
|
|
5
|
+
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
# of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
# in the Software without restriction, including without limitation the rights
|
|
8
|
+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
# copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
# furnished to do so, subject to the following conditions:
|
|
11
|
+
#
|
|
12
|
+
# The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
# copies or substantial portions of the Software.
|
|
14
|
+
#
|
|
15
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
# SOFTWARE.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class SiwaveDCIRSettings:
|
|
25
|
+
"""Class for DC IR settings."""
|
|
26
|
+
|
|
27
|
+
def __init__(self, parent):
|
|
28
|
+
self._parent = parent
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def export_dc_thermal_data(self):
|
|
32
|
+
"""Export DC Thermal Data.
|
|
33
|
+
|
|
34
|
+
Returns
|
|
35
|
+
-------
|
|
36
|
+
bool
|
|
37
|
+
``True`` when activated, ``False`` deactivated.
|
|
38
|
+
"""
|
|
39
|
+
return self._parent.get_sim_setup_info.SimulationSettings.DCIRSettings.ExportDCThermalData
|
|
40
|
+
|
|
41
|
+
@export_dc_thermal_data.setter
|
|
42
|
+
def export_dc_thermal_data(self, value):
|
|
43
|
+
edb_setup_info = self._parent.get_sim_setup_info
|
|
44
|
+
edb_setup_info.SimulationSettings.DCIRSettings.ExportDCThermalData = value
|
|
45
|
+
self._parent._edb_object = self._parent._set_edb_setup_info(edb_setup_info)
|
|
46
|
+
self._parent._update_setup()
|
pyedb/edb_logger.py
CHANGED
|
@@ -415,4 +415,18 @@ class EdbLogger(object):
|
|
|
415
415
|
return self._global
|
|
416
416
|
|
|
417
417
|
|
|
418
|
-
|
|
418
|
+
logger = logging.getLogger("Global")
|
|
419
|
+
if any("aedt_logger" in str(i) for i in logger.filters):
|
|
420
|
+
from pyaedt.generic.settings import settings as pyaedt_settings
|
|
421
|
+
|
|
422
|
+
from pyedb.generic.settings import settings as pyaedb_settings
|
|
423
|
+
|
|
424
|
+
pyedb_logger = pyaedt_settings.logger
|
|
425
|
+
pyaedb_settings.use_pyaedt_log = True
|
|
426
|
+
pyaedb_settings.logger = pyedb_logger
|
|
427
|
+
|
|
428
|
+
else:
|
|
429
|
+
pyedb_logger = EdbLogger(to_stdout=settings.enable_screen_logs)
|
|
430
|
+
from pyedb.generic.settings import settings as pyaedb_settings
|
|
431
|
+
|
|
432
|
+
pyaedb_settings.logger = pyedb_logger
|
pyedb/generic/settings.py
CHANGED
|
@@ -20,7 +20,6 @@
|
|
|
20
20
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
# SOFTWARE.
|
|
22
22
|
|
|
23
|
-
import logging
|
|
24
23
|
import os
|
|
25
24
|
import time
|
|
26
25
|
|
|
@@ -59,6 +58,26 @@ class Settings(object):
|
|
|
59
58
|
self._global_log_file_size = 10
|
|
60
59
|
self._lsf_queue = None
|
|
61
60
|
self._edb_environment_variables = {}
|
|
61
|
+
self._use_pyaedt_log = False
|
|
62
|
+
self._logger = None
|
|
63
|
+
|
|
64
|
+
@property
|
|
65
|
+
def logger(self):
|
|
66
|
+
"""Active logger."""
|
|
67
|
+
return self._logger
|
|
68
|
+
|
|
69
|
+
@logger.setter
|
|
70
|
+
def logger(self, val):
|
|
71
|
+
self._logger = val
|
|
72
|
+
|
|
73
|
+
@property
|
|
74
|
+
def use_pyaedt_log(self):
|
|
75
|
+
"""Flag that disable Edb log when PyAEDT is used."""
|
|
76
|
+
return self._use_pyaedt_log
|
|
77
|
+
|
|
78
|
+
@use_pyaedt_log.setter
|
|
79
|
+
def use_pyaedt_log(self, value):
|
|
80
|
+
self._use_pyaedt_log = value
|
|
62
81
|
|
|
63
82
|
@property
|
|
64
83
|
def edb_environment_variables(self):
|
|
@@ -130,14 +149,6 @@ class Settings(object):
|
|
|
130
149
|
def enable_debug_methods_argument_logger(self, val):
|
|
131
150
|
self._enable_debug_methods_argument_logger = val
|
|
132
151
|
|
|
133
|
-
@property
|
|
134
|
-
def logger(self):
|
|
135
|
-
"""Active logger."""
|
|
136
|
-
try:
|
|
137
|
-
return logging.getLogger("Global")
|
|
138
|
-
except: # pragma: no cover
|
|
139
|
-
return logging.getLogger(__name__)
|
|
140
|
-
|
|
141
152
|
@property
|
|
142
153
|
def enable_error_handler(self):
|
|
143
154
|
"""Flag for enabling and disabling the internal PyEDB error handling."""
|
pyedb/siwave.py
CHANGED
|
@@ -14,6 +14,7 @@ import sys
|
|
|
14
14
|
import time
|
|
15
15
|
|
|
16
16
|
from pyedb.dotnet.clr_module import _clr
|
|
17
|
+
from pyedb.edb_logger import pyedb_logger
|
|
17
18
|
from pyedb.generic.general_methods import (
|
|
18
19
|
_pythonver,
|
|
19
20
|
is_ironpython,
|
|
@@ -65,6 +66,7 @@ class Siwave(object): # pragma no cover
|
|
|
65
66
|
return self.version_keys[0]
|
|
66
67
|
|
|
67
68
|
def __init__(self, specified_version=None):
|
|
69
|
+
self._logger = pyedb_logger
|
|
68
70
|
if is_ironpython:
|
|
69
71
|
_com = "pythonnet"
|
|
70
72
|
import System
|
|
@@ -327,7 +329,6 @@ class Siwave(object): # pragma no cover
|
|
|
327
329
|
bkground_color : str, optional
|
|
328
330
|
Color of the report's background. The default is ``"White"``.
|
|
329
331
|
|
|
330
|
-
|
|
331
332
|
Returns
|
|
332
333
|
-------
|
|
333
334
|
bool
|
|
@@ -339,3 +340,51 @@ class Siwave(object): # pragma no cover
|
|
|
339
340
|
while not os.path.exists(file_path):
|
|
340
341
|
time.sleep(0.1)
|
|
341
342
|
return True
|
|
343
|
+
|
|
344
|
+
@pyedb_function_handler
|
|
345
|
+
def run_dc_simulation(self):
|
|
346
|
+
"""Run DC simulation."""
|
|
347
|
+
self._logger.info("Running DC simulation.")
|
|
348
|
+
return self.oproject.ScrRunDcSimulation(1)
|
|
349
|
+
|
|
350
|
+
@pyedb_function_handler
|
|
351
|
+
def export_icepak_project(self, file_path, dc_simulation_name):
|
|
352
|
+
"""Exports an Icepak project for standalone use.
|
|
353
|
+
|
|
354
|
+
Parameters
|
|
355
|
+
----------
|
|
356
|
+
file_path : str,
|
|
357
|
+
Path of the Icepak project.
|
|
358
|
+
dc_simulation_name : str
|
|
359
|
+
Name of the DC simulation.
|
|
360
|
+
|
|
361
|
+
Returns
|
|
362
|
+
-------
|
|
363
|
+
bool
|
|
364
|
+
``True`` when successful, ``False`` when failed.
|
|
365
|
+
|
|
366
|
+
"""
|
|
367
|
+
|
|
368
|
+
self.oproject.ScrExportDcPowerDataToIcepak(True)
|
|
369
|
+
self._logger.info("Exporting Icepak project.")
|
|
370
|
+
code = self.oproject.ScrExportIcepakProject(file_path, dc_simulation_name)
|
|
371
|
+
return True if code == 0 else False
|
|
372
|
+
|
|
373
|
+
@pyedb_function_handler
|
|
374
|
+
def run_icepak_simulation(self, icepak_simulation_name, dc_simulation_name):
|
|
375
|
+
"""Runs an Icepak simulation.
|
|
376
|
+
|
|
377
|
+
Parameters
|
|
378
|
+
----------
|
|
379
|
+
icepak_simulation_name : str
|
|
380
|
+
Name of the Icepak simulation.
|
|
381
|
+
dc_simulation_name : str
|
|
382
|
+
Name of the DC simulation.
|
|
383
|
+
|
|
384
|
+
Returns
|
|
385
|
+
-------
|
|
386
|
+
bool
|
|
387
|
+
``True`` when successful, ``False`` when failed.
|
|
388
|
+
|
|
389
|
+
"""
|
|
390
|
+
return self.oproject.ScrRunIcepakSimulation(icepak_simulation_name, dc_simulation_name)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.1
|
|
4
4
|
Summary: Higher-Level Pythonic Ansys Electronics Data Base
|
|
5
5
|
Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
|
|
6
6
|
Maintainer-email: PyEDB developers <simon.vandenbrouck@ansys.com>
|
|
@@ -19,9 +19,9 @@ Requires-Dist: cffi>=1.16.0,<1.17; platform_system=='Linux'
|
|
|
19
19
|
Requires-Dist: pywin32 >= 303;platform_system=='Windows'
|
|
20
20
|
Requires-Dist: ansys-pythonnet >= 3.1.0rc3
|
|
21
21
|
Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
|
|
22
|
-
Requires-Dist: pydantic>=2.6.4,<2.
|
|
22
|
+
Requires-Dist: pydantic>=2.6.4,<2.8
|
|
23
23
|
Requires-Dist: toml == 0.10.2
|
|
24
|
-
Requires-Dist: ansys-sphinx-theme>=0.10.0,<0.
|
|
24
|
+
Requires-Dist: ansys-sphinx-theme>=0.10.0,<0.16 ; extra == "doc"
|
|
25
25
|
Requires-Dist: imageio>=2.30.0,<2.35 ; extra == "doc"
|
|
26
26
|
Requires-Dist: ipython>=8.13.0,<8.24 ; extra == "doc"
|
|
27
27
|
Requires-Dist: jupyterlab>=4.0.0,<4.3 ; extra == "doc"
|
|
@@ -30,8 +30,8 @@ Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
|
|
|
30
30
|
Requires-Dist: numpydoc>=1.5.0,<1.8 ; extra == "doc"
|
|
31
31
|
Requires-Dist: pypandoc>=1.10.0,<1.14 ; extra == "doc"
|
|
32
32
|
Requires-Dist: recommonmark ; extra == "doc"
|
|
33
|
-
Requires-Dist: Sphinx>=7.1.0,<7.
|
|
34
|
-
Requires-Dist: sphinx-autobuild==
|
|
33
|
+
Requires-Dist: Sphinx>=7.1.0,<7.4 ; extra == "doc"
|
|
34
|
+
Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version == '3.8')
|
|
35
35
|
Requires-Dist: sphinx-autobuild==2024.2.4 ; extra == "doc" and ( python_version > '3.8')
|
|
36
36
|
Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
|
|
37
37
|
Requires-Dist: sphinx-gallery>=0.14.0,<0.16 ; extra == "doc"
|
|
@@ -1,61 +1,65 @@
|
|
|
1
|
-
pyedb/__init__.py,sha256=
|
|
2
|
-
pyedb/edb_logger.py,sha256=
|
|
1
|
+
pyedb/__init__.py,sha256=E32CaYS36_mPebFR8emGgxai-TPaWHCWwE9WpMwLBIs,1520
|
|
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=ilUsA74QKy7VpRfmfvRrcVZhPAsyfgXHZm0SDDHiGBE,11576
|
|
5
5
|
pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
pyedb/dotnet/clr_module.py,sha256=Mo13Of3DVSA5HR-5xZEXOiHApIKy52CUxtJ2gPkEu1A,3406
|
|
7
|
-
pyedb/dotnet/edb.py,sha256=
|
|
7
|
+
pyedb/dotnet/edb.py,sha256=wbzl9083scWVoWkYG5lQshBPuTnQlIiBq0P8x9zblik,169971
|
|
8
8
|
pyedb/dotnet/application/Variables.py,sha256=nov1kIyJO25iz8pvbU3MK1meMpRLwtISmzYqJhc7Ouo,79042
|
|
9
9
|
pyedb/dotnet/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
pyedb/dotnet/edb_core/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
|
|
11
|
-
pyedb/dotnet/edb_core/components.py,sha256=
|
|
12
|
-
pyedb/dotnet/edb_core/configuration.py,sha256=
|
|
11
|
+
pyedb/dotnet/edb_core/components.py,sha256=Lo7o_9TN2EhlTEQMtT2KD1e9XW3QMg5i-aAo_Tzg0dY,102985
|
|
12
|
+
pyedb/dotnet/edb_core/configuration.py,sha256=huxXAAfRUFarJQbuoAEhH3JnmNylb2r__lfrEd8oMaA,33626
|
|
13
13
|
pyedb/dotnet/edb_core/general.py,sha256=QP6lqNEcqCdj_hSKhfKbmJ2hGBOYkhjPtsVEmyrO8KU,4726
|
|
14
14
|
pyedb/dotnet/edb_core/hfss.py,sha256=O81AB-0it9kIWTfUDaw5Frfq3EVRl0adcAurJZUIDuk,68343
|
|
15
15
|
pyedb/dotnet/edb_core/layout.py,sha256=Sde2-8E-sGiO0JvjY31ydlq0QZrVkutbT_afp1FkK0w,50907
|
|
16
16
|
pyedb/dotnet/edb_core/layout_validation.py,sha256=7Wj_VSAJOSA-RKOPgJXO-y9i6vfgJ4V9vxx0M1g1NUI,11798
|
|
17
|
-
pyedb/dotnet/edb_core/materials.py,sha256=
|
|
17
|
+
pyedb/dotnet/edb_core/materials.py,sha256=xYfud7EWDmK6O_hvANRqzFjp8ZqJdM0AJ8KYhUBVTyc,44463
|
|
18
18
|
pyedb/dotnet/edb_core/net_class.py,sha256=lr-7Z0Q1A2fshxwjrIOmQSZnEBYe0NoxuUuJT6vYdyA,11857
|
|
19
|
-
pyedb/dotnet/edb_core/nets.py,sha256=
|
|
19
|
+
pyedb/dotnet/edb_core/nets.py,sha256=EK-jjRFvRX_NtqMQ46ebJbv9HOvP1uYK_EZ3jPnmxB0,43882
|
|
20
|
+
pyedb/dotnet/edb_core/obj_base.py,sha256=lufR0sZj0QfZ2wlNvLL6aM1KVqCNY2A7taPPdWcK20w,3312
|
|
20
21
|
pyedb/dotnet/edb_core/padstack.py,sha256=XT7S_RgOtYAr4G67EKXbbxsDeb6wMHC6Y_YMDljuMR4,54540
|
|
21
|
-
pyedb/dotnet/edb_core/siwave.py,sha256=
|
|
22
|
-
pyedb/dotnet/edb_core/stackup.py,sha256=
|
|
22
|
+
pyedb/dotnet/edb_core/siwave.py,sha256=wdLAKiz0Qhiktz3OPekBQtw_y2Kb8Vyk19QdF-FcUVU,62356
|
|
23
|
+
pyedb/dotnet/edb_core/stackup.py,sha256=vFHc9uroqdb193uHHNVRa1rxy-9Oe76eQZ98X2Kfx54,115372
|
|
23
24
|
pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
25
|
pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=
|
|
26
|
+
pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=cJzNJLiuuoesfCL8-jWo8LbgGbfXrTYNQqmeeE38ieM,3309
|
|
26
27
|
pyedb/dotnet/edb_core/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
-
pyedb/dotnet/edb_core/definition/component_def.py,sha256=
|
|
28
|
-
pyedb/dotnet/edb_core/definition/component_model.py,sha256=
|
|
29
|
-
pyedb/dotnet/edb_core/definition/definition_obj.py,sha256
|
|
30
|
-
pyedb/dotnet/edb_core/definition/definitions.py,sha256=
|
|
31
|
-
pyedb/dotnet/edb_core/definition/package_def.py,sha256=
|
|
28
|
+
pyedb/dotnet/edb_core/definition/component_def.py,sha256=2M7ToqN1SE65s9xJHaLDTKlRkPk8pICUBOOn4jBGbDA,6743
|
|
29
|
+
pyedb/dotnet/edb_core/definition/component_model.py,sha256=lKyOsJNYfqUe4ZjEaYJKucBxcgLqNxfrs6BGWvYfjeA,2029
|
|
30
|
+
pyedb/dotnet/edb_core/definition/definition_obj.py,sha256=Z6GDSOvn3xX1p2W3SnXRNDbsOIxrb-I7nS47VQzozKg,1550
|
|
31
|
+
pyedb/dotnet/edb_core/definition/definitions.py,sha256=1KcWb0FTxPBGgFjI9-ksJJpqlr8BkTXiglttwJkiuO4,2476
|
|
32
|
+
pyedb/dotnet/edb_core/definition/package_def.py,sha256=dlXlrrrKhF7xPey8EIuaJbpWwLLffF1HajySU6rStS0,5967
|
|
32
33
|
pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
-
pyedb/dotnet/edb_core/dotnet/database.py,sha256=
|
|
34
|
+
pyedb/dotnet/edb_core/dotnet/database.py,sha256=m8QgX1E5elOoBTHt5zCsUKUFRuwru5r-31PmUE6rQr0,37653
|
|
34
35
|
pyedb/dotnet/edb_core/dotnet/layout.py,sha256=_3lKFvEqA5S66yF_FSX5HbLsFNFpsigRsaN3Rj02pFk,8904
|
|
35
36
|
pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=VGZ_QNfdYhHDU4vq7fRUTinBfDyYTIY7SBysQK0-2SM,48320
|
|
36
37
|
pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
pyedb/dotnet/edb_core/edb_data/components_data.py,sha256=
|
|
38
|
-
pyedb/dotnet/edb_core/edb_data/connectable.py,sha256=
|
|
38
|
+
pyedb/dotnet/edb_core/edb_data/components_data.py,sha256=MgE6lDjoN1wtdJZDtDlDDm9VImrCcQF-b-gUP9bl8Jo,37225
|
|
39
|
+
pyedb/dotnet/edb_core/edb_data/connectable.py,sha256=4DjU3ZzeZhPkxvaZNM3MgtrHCqI0PJlea92f3wKJk0c,4256
|
|
39
40
|
pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=2Gfrs8qW3N7y0A8ynAlKQpA6q9RU21zmW7B2MMyTjN0,48425
|
|
40
41
|
pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
|
|
41
42
|
pyedb/dotnet/edb_core/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
|
|
42
43
|
pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=5koQSKdYC6Deh4haLUDAxnHlRa-j5S6g4eyAfiGgZP8,13190
|
|
43
44
|
pyedb/dotnet/edb_core/edb_data/hfss_simulation_setup_data.py,sha256=FtNyCgJ4ioUxOi6cMgtjsDdLLnETybJJBMizC4ZPeOo,48944
|
|
44
|
-
pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=
|
|
45
|
+
pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=iLfX7bsMzolxEowjdrN8Q1TMyZTfkLzK5UHklmboH6E,21945
|
|
45
46
|
pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=iULEOUsn3sfLT5FVY_4lMWTm0KzC-01AZ-aYIkM0U-k,9933
|
|
46
|
-
pyedb/dotnet/edb_core/edb_data/obj_base.py,sha256=7Tlc-ieJjnCw5AM2T-Z_csxNxcg0Zf_L7rsyTJEvv6g,1882
|
|
47
47
|
pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=T7m7s5KAZB-gZ9wrPw6k2Yoon6uwCfJSOeg2hvyX1LI,78754
|
|
48
48
|
pyedb/dotnet/edb_core/edb_data/ports.py,sha256=FYxB2rDUtN_OsYAbodXbc5mA_d0BUebmin_B5kkUw3U,9223
|
|
49
|
-
pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=
|
|
49
|
+
pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=veMDPCb6T84KZ_xgo52g7vHxObsx-Y2ysWXBS2CqZpQ,48155
|
|
50
50
|
pyedb/dotnet/edb_core/edb_data/simulation_configuration.py,sha256=0U5sHLn8rvQFOveRQE3Y84TGk0-DUfOnbvEO6Iffya4,99967
|
|
51
|
-
pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py,sha256=
|
|
51
|
+
pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py,sha256=fPmdhh6t6HM2pE_mQCT0ZQYO-PkqhwumwiuRUNEn00Q,42354
|
|
52
52
|
pyedb/dotnet/edb_core/edb_data/sources.py,sha256=XmdpOdlpBa3QiYFY0cRtVIolt4nvUR9Ptk5YnRVvU4c,15342
|
|
53
53
|
pyedb/dotnet/edb_core/edb_data/terminals.py,sha256=m2kch7Md-MSGUEbKFW8m8RpBzq6lNMFdgPgOtDUbsMA,25287
|
|
54
54
|
pyedb/dotnet/edb_core/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e46EiFuiFtsroB4,4928
|
|
55
55
|
pyedb/dotnet/edb_core/edb_data/variables.py,sha256=LS1jZPOYgRvf4cyKf_x8hI9Brs-qbh4wrHu_QGLElrg,3501
|
|
56
|
+
pyedb/dotnet/edb_core/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
+
pyedb/dotnet/edb_core/geometry/point_data.py,sha256=hC9cRuSnX4cwg09Jr0ZK7ZTjFf_4NwXJMGbZ3s-ULpQ,1590
|
|
58
|
+
pyedb/dotnet/edb_core/geometry/polygon_data.py,sha256=K1jwj6gXm4KFqrPGJmtc49bSDZl1ytmrLdJ81VEJtco,2990
|
|
56
59
|
pyedb/dotnet/edb_core/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
|
|
57
60
|
pyedb/dotnet/edb_core/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
|
|
58
61
|
pyedb/dotnet/edb_core/utilities/simulation_setup.py,sha256=uQMKL4cwWQkPD53BENHF9uyt1NxtPW0dMVAOPdI8gUM,23967
|
|
62
|
+
pyedb/dotnet/sim_setup_data/data/siw_dc_ir_settings.py,sha256=urJvgBJOgF3Td527z98vdqAtBBKC3yomcAL3fOTt7xs,1931
|
|
59
63
|
pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
60
64
|
pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
|
|
61
65
|
pyedb/generic/data_handlers.py,sha256=oyYFwdjt0CxdOxgFDmnBlOFICt2twFLsMyELuQ1kFjE,7137
|
|
@@ -64,7 +68,7 @@ pyedb/generic/filesystem.py,sha256=SwvXv1T05SrC9TPtK88joQoU5Ab7hYjrp5NncFeH7kM,3
|
|
|
64
68
|
pyedb/generic/general_methods.py,sha256=ifabLBxrYmah2XOMyKrx-G53DJlfPY9hgAW8NT4e73U,43608
|
|
65
69
|
pyedb/generic/plot.py,sha256=1P9jxzpZDKy7FobBkqezcU8c-Xq5trxS6iBNNLXpFJ0,4901
|
|
66
70
|
pyedb/generic/process.py,sha256=9goCXrW3Su-8WuV5f6YqzY-Pl9EMFEd50KFN5AJXZGc,11206
|
|
67
|
-
pyedb/generic/settings.py,sha256=
|
|
71
|
+
pyedb/generic/settings.py,sha256=QTX5OVZ8sVPIy_QaSxRODUWvoXkYkVpzh3l6pQPseKQ,9220
|
|
68
72
|
pyedb/ipc2581/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
69
73
|
pyedb/ipc2581/history_record.py,sha256=s1GjcIgnZHlNCBOeEERBDX7xDuqhXmh2Ctt3ccFDWso,2739
|
|
70
74
|
pyedb/ipc2581/ipc2581.py,sha256=Y9d1PdbbMMwTUg0Ai-HKwDhJV0fCy8thRHyCFOPF4Ck,22685
|
|
@@ -127,7 +131,7 @@ pyedb/misc/siw_feature_config/emc/net_tags.py,sha256=HVYOQacmaLr6Mvf7FqZhqbhtqJL
|
|
|
127
131
|
pyedb/misc/siw_feature_config/emc/tag_library.py,sha256=yUK4w3hequU017E2DbkA4KE2MWIh1R6bfJBrevlDx6g,1557
|
|
128
132
|
pyedb/misc/siw_feature_config/emc/xml_generic.py,sha256=55X-V0OxWq-v7FTiDVjaZif8V_2xxsvJlJ8bs9Bf61I,2521
|
|
129
133
|
pyedb/modeler/geometry_operators.py,sha256=LDqEaeerw9H8Yva-SJhX3Afdni08OciO9t5G0c_tdqs,66820
|
|
130
|
-
pyedb-0.
|
|
131
|
-
pyedb-0.
|
|
132
|
-
pyedb-0.
|
|
133
|
-
pyedb-0.
|
|
134
|
+
pyedb-0.8.1.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
|
|
135
|
+
pyedb-0.8.1.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
136
|
+
pyedb-0.8.1.dist-info/METADATA,sha256=msQ9v6ZCjdGNLCwZmjC71Meue38wfQiFsgJhZTJIh3M,8320
|
|
137
|
+
pyedb-0.8.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|