pyedb 0.2.0__py3-none-any.whl → 0.3.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_core/definition/component_def.py +2 -2
- pyedb/dotnet/edb_core/definition/definitions.py +23 -0
- pyedb/dotnet/edb_core/definition/package_def.py +98 -0
- pyedb/dotnet/edb_core/edb_data/components_data.py +46 -1
- pyedb/dotnet/edb_core/edb_data/obj_base.py +9 -0
- pyedb/dotnet/edb_core/materials.py +0 -1
- pyedb/dotnet/edb_core/stackup.py +0 -5
- pyedb/generic/settings.py +0 -2
- pyedb/misc/siw_feature_config/emc/net_tags.py +2 -0
- pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +40 -8
- {pyedb-0.2.0.dist-info → pyedb-0.3.0.dist-info}/METADATA +8 -3
- {pyedb-0.2.0.dist-info → pyedb-0.3.0.dist-info}/RECORD +15 -14
- {pyedb-0.2.0.dist-info → pyedb-0.3.0.dist-info}/LICENSE +0 -0
- {pyedb-0.2.0.dist-info → pyedb-0.3.0.dist-info}/WHEEL +0 -0
pyedb/__init__.py
CHANGED
|
@@ -12,9 +12,9 @@ class EDBComponentDef(ObjBase):
|
|
|
12
12
|
|
|
13
13
|
Parameters
|
|
14
14
|
----------
|
|
15
|
-
|
|
15
|
+
pedb : :class:`pyedb.edb`
|
|
16
16
|
Inherited AEDT object.
|
|
17
|
-
|
|
17
|
+
edb_object : object
|
|
18
18
|
Edb ComponentDef Object
|
|
19
19
|
"""
|
|
20
20
|
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from pyedb.dotnet.edb_core.definition.component_def import EDBComponentDef
|
|
3
|
+
from pyedb.dotnet.edb_core.definition.package_def import PackageDef
|
|
4
|
+
from pyedb.generic.general_methods import pyedb_function_handler
|
|
3
5
|
|
|
4
6
|
|
|
5
7
|
class Definitions:
|
|
@@ -10,3 +12,24 @@ class Definitions:
|
|
|
10
12
|
def component(self):
|
|
11
13
|
"""Component definitions"""
|
|
12
14
|
return {l.GetName(): EDBComponentDef(self._pedb, l) for l in list(self._pedb.active_db.ComponentDefs)}
|
|
15
|
+
|
|
16
|
+
@property
|
|
17
|
+
def package(self):
|
|
18
|
+
"""Package definitions."""
|
|
19
|
+
return {l.GetName(): PackageDef(self._pedb, l) for l in list(self._pedb.active_db.PackageDefs)}
|
|
20
|
+
|
|
21
|
+
@pyedb_function_handler
|
|
22
|
+
def add_package_def(self, name):
|
|
23
|
+
"""Add a package definition.
|
|
24
|
+
|
|
25
|
+
Parameters
|
|
26
|
+
----------
|
|
27
|
+
name: str
|
|
28
|
+
Name of the package definition.
|
|
29
|
+
|
|
30
|
+
Returns
|
|
31
|
+
-------
|
|
32
|
+
|
|
33
|
+
"""
|
|
34
|
+
package_def = PackageDef(self._pedb, name=name)
|
|
35
|
+
return package_def
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import os
|
|
2
|
+
|
|
3
|
+
from pyedb.dotnet.edb_core.edb_data.obj_base import ObjBase
|
|
4
|
+
from pyedb.generic.general_methods import pyedb_function_handler
|
|
5
|
+
from pyedb.dotnet.edb_core.dotnet.database import PolygonDataDotNet
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class PackageDef(ObjBase):
|
|
9
|
+
"""Manages EDB functionalities for package definitions.
|
|
10
|
+
|
|
11
|
+
Parameters
|
|
12
|
+
----------
|
|
13
|
+
pedb : :class:`pyedb.edb`
|
|
14
|
+
Edb object.
|
|
15
|
+
edb_object : object
|
|
16
|
+
Edb PackageDef Object
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
def __init__(self, pedb, edb_object=None, name=None):
|
|
20
|
+
self._pedb = pedb
|
|
21
|
+
if edb_object is None and name is not None:
|
|
22
|
+
self._edb_object = self.__create_from_name(name)
|
|
23
|
+
else:
|
|
24
|
+
self._edb_object = edb_object
|
|
25
|
+
|
|
26
|
+
@pyedb_function_handler
|
|
27
|
+
def __create_from_name(self, name):
|
|
28
|
+
"""Create a package defininitiion.
|
|
29
|
+
|
|
30
|
+
Parameters
|
|
31
|
+
----------
|
|
32
|
+
name: str
|
|
33
|
+
Name of the package definition.
|
|
34
|
+
|
|
35
|
+
Returns
|
|
36
|
+
-------
|
|
37
|
+
edb_object: object
|
|
38
|
+
EDB PackageDef Object
|
|
39
|
+
"""
|
|
40
|
+
edb_object = self._pedb.edb_api.definition.PackageDef.Create(self._pedb.active_db, name)
|
|
41
|
+
pointA = self._pedb.edb_api.geometry.point_data(
|
|
42
|
+
self._pedb.edb_value(0),
|
|
43
|
+
self._pedb.edb_value(0),
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
polygon = PolygonDataDotNet(self._pedb).create_from_bbox([pointA, pointA])
|
|
47
|
+
edb_object.SetExteriorBoundary(polygon)
|
|
48
|
+
return edb_object
|
|
49
|
+
|
|
50
|
+
@property
|
|
51
|
+
def maximum_power(self):
|
|
52
|
+
"""Maximum power of the package."""
|
|
53
|
+
return self._edb_object.GetMaximumPower().ToDouble()
|
|
54
|
+
|
|
55
|
+
@maximum_power.setter
|
|
56
|
+
def maximum_power(self, value):
|
|
57
|
+
value = self._pedb.edb_value(value)
|
|
58
|
+
self._edb_object.SetMaximumPower(value)
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def therm_cond(self):
|
|
62
|
+
"""Thermal conductivity of the package."""
|
|
63
|
+
return self._edb_object.GetTherm_Cond().ToDouble()
|
|
64
|
+
|
|
65
|
+
@therm_cond.setter
|
|
66
|
+
def therm_cond(self, value):
|
|
67
|
+
value = self._pedb.edb_value(value)
|
|
68
|
+
self._edb_object.SetTherm_Cond(value)
|
|
69
|
+
|
|
70
|
+
@property
|
|
71
|
+
def theta_jb(self):
|
|
72
|
+
"""Theta Junction-to-Board of the package."""
|
|
73
|
+
return self._edb_object.GetTheta_JB().ToDouble()
|
|
74
|
+
|
|
75
|
+
@theta_jb.setter
|
|
76
|
+
def theta_jb(self, value):
|
|
77
|
+
value = self._pedb.edb_value(value)
|
|
78
|
+
self._edb_object.SetTheta_JB(value)
|
|
79
|
+
|
|
80
|
+
@property
|
|
81
|
+
def theta_jc(self):
|
|
82
|
+
"""Theta Junction-to-Case of the package."""
|
|
83
|
+
return self._edb_object.GetTheta_JC().ToDouble()
|
|
84
|
+
|
|
85
|
+
@theta_jc.setter
|
|
86
|
+
def theta_jc(self,value):
|
|
87
|
+
value = self._pedb.edb_value(value)
|
|
88
|
+
self._edb_object.SetTheta_JC(value)
|
|
89
|
+
|
|
90
|
+
@property
|
|
91
|
+
def height(self):
|
|
92
|
+
"""Height of the package."""
|
|
93
|
+
return self._edb_object.GetHeight().ToDouble()
|
|
94
|
+
|
|
95
|
+
@height.setter
|
|
96
|
+
def height(self, value):
|
|
97
|
+
value = self._pedb.edb_value(value)
|
|
98
|
+
self._edb_object.SetHeight(value)
|
|
@@ -2,6 +2,7 @@ import logging
|
|
|
2
2
|
import re
|
|
3
3
|
import warnings
|
|
4
4
|
|
|
5
|
+
from pyedb.dotnet.edb_core.definition.package_def import PackageDef
|
|
5
6
|
from pyedb.dotnet.edb_core.cell.hierarchy.model import PinPairModel
|
|
6
7
|
from pyedb.dotnet.edb_core.edb_data.padstacks_data import EDBPadstackInstance
|
|
7
8
|
from pyedb.generic.general_methods import is_ironpython
|
|
@@ -26,7 +27,7 @@ class EDBComponent(object):
|
|
|
26
27
|
Parameters
|
|
27
28
|
----------
|
|
28
29
|
parent : :class:`pyedb.dotnet.edb_core.components.Components`
|
|
29
|
-
|
|
30
|
+
Components object.
|
|
30
31
|
component : object
|
|
31
32
|
Edb Component Object
|
|
32
33
|
|
|
@@ -204,6 +205,50 @@ class EDBComponent(object):
|
|
|
204
205
|
comp_prop.SetModel(value._edb_object)
|
|
205
206
|
self.edbcomponent.SetComponentProperty(comp_prop)
|
|
206
207
|
|
|
208
|
+
@property
|
|
209
|
+
def package_def(self):
|
|
210
|
+
"""Package definition."""
|
|
211
|
+
edb_object = self.component_property.GetPackageDef()
|
|
212
|
+
|
|
213
|
+
package_def = PackageDef(self._pedb, edb_object)
|
|
214
|
+
if not package_def.is_null:
|
|
215
|
+
return package_def
|
|
216
|
+
|
|
217
|
+
@package_def.setter
|
|
218
|
+
def package_def(self, value):
|
|
219
|
+
package_def = self._pedb.definitions.package[value]
|
|
220
|
+
comp_prop = self.component_property
|
|
221
|
+
comp_prop.SetPackageDef(package_def._edb_object)
|
|
222
|
+
self.edbcomponent.SetComponentProperty(comp_prop)
|
|
223
|
+
|
|
224
|
+
@pyedb_function_handler
|
|
225
|
+
def create_package_def(self, name=""):
|
|
226
|
+
"""Create a package definition and assign it to the component.
|
|
227
|
+
|
|
228
|
+
Parameters
|
|
229
|
+
----------
|
|
230
|
+
name: str, optional
|
|
231
|
+
Name of the package definition
|
|
232
|
+
|
|
233
|
+
Returns
|
|
234
|
+
-------
|
|
235
|
+
bool
|
|
236
|
+
``True`` if succeeded, ``False`` otherwise.
|
|
237
|
+
"""
|
|
238
|
+
if not name:
|
|
239
|
+
name = "{}_{}".format(self.refdes, self.part_name)
|
|
240
|
+
if name not in self._pedb.definitions.package:
|
|
241
|
+
self._pedb.definitions.add_package_def(name)
|
|
242
|
+
self.package_def = name
|
|
243
|
+
|
|
244
|
+
from pyedb.dotnet.edb_core.dotnet.database import PolygonDataDotNet
|
|
245
|
+
polygon = PolygonDataDotNet(self._pedb).create_from_bbox(self.component_instance.GetBBox())
|
|
246
|
+
self.package_def._edb_object.SetExteriorBoundary(polygon)
|
|
247
|
+
return True
|
|
248
|
+
else:
|
|
249
|
+
logging.error(f"Package definition {name} already exists")
|
|
250
|
+
return False
|
|
251
|
+
|
|
207
252
|
@property
|
|
208
253
|
def is_enabled(self):
|
|
209
254
|
"""Get or Set the component to active mode.
|
|
@@ -17,3 +17,12 @@ class ObjBase(object):
|
|
|
17
17
|
return self._edb_object.GetType()
|
|
18
18
|
except AttributeError: # pragma: no cover
|
|
19
19
|
return None
|
|
20
|
+
|
|
21
|
+
@property
|
|
22
|
+
def name(self):
|
|
23
|
+
"""Name of the definition."""
|
|
24
|
+
return self._edb_object.GetName()
|
|
25
|
+
|
|
26
|
+
@name.setter
|
|
27
|
+
def name(self, value):
|
|
28
|
+
self._edb_object.SetName(value)
|
|
@@ -358,7 +358,6 @@ class Material(object):
|
|
|
358
358
|
self._edb_material_def.SetDielectricMaterialModel(self._edb_value(None))
|
|
359
359
|
|
|
360
360
|
|
|
361
|
-
# TODO: Cleanup
|
|
362
361
|
class Materials(object):
|
|
363
362
|
"""Manages EDB methods for material management accessible from `Edb.materials` property."""
|
|
364
363
|
|
pyedb/dotnet/edb_core/stackup.py
CHANGED
|
@@ -672,12 +672,7 @@ class Stackup(object):
|
|
|
672
672
|
if not fillMaterial:
|
|
673
673
|
fillMaterial = "fr4_epoxy"
|
|
674
674
|
|
|
675
|
-
# TODO: Remove
|
|
676
675
|
if material.lower() not in materials_lower:
|
|
677
|
-
# if material in self._pedb.materials.materials_in_aedt:
|
|
678
|
-
# self._pedb.materials.add_material_from_aedt("material")
|
|
679
|
-
# else:
|
|
680
|
-
# logger.error(material + " does not exist in material library")
|
|
681
676
|
logger.error(material + " does not exist in material library")
|
|
682
677
|
else:
|
|
683
678
|
material = materials_lower[material.lower()]
|
pyedb/generic/settings.py
CHANGED
|
@@ -199,7 +199,6 @@ class Settings(object):
|
|
|
199
199
|
def enable_debug_logger(self, val):
|
|
200
200
|
self._enable_debug_logger = val
|
|
201
201
|
|
|
202
|
-
# TODO: Not sure if needed, see with Simon
|
|
203
202
|
@property
|
|
204
203
|
def enable_screen_logs(self):
|
|
205
204
|
"""Flag for enabling and disabling the logging to STDOUT."""
|
|
@@ -209,7 +208,6 @@ class Settings(object):
|
|
|
209
208
|
def enable_screen_logs(self, val):
|
|
210
209
|
self._enable_screen_logs = val
|
|
211
210
|
|
|
212
|
-
# TODO: Not sure if needed, see with Simon
|
|
213
211
|
@property
|
|
214
212
|
def edb_dll_path(self):
|
|
215
213
|
"""Optional path for the EDB DLL file."""
|
|
@@ -13,12 +13,14 @@ class Net(XmlGeneric):
|
|
|
13
13
|
self.isCritical = self._element.attrib["isCritical"]
|
|
14
14
|
self.name = self._element.attrib["name"]
|
|
15
15
|
self.type = self._element.attrib["type"] if "type" in self._element.attrib else None
|
|
16
|
+
self.Diffmatename = self._element.attrib["Diffmatename"] if "Diffmatename" in self._element.attrib else None
|
|
16
17
|
else:
|
|
17
18
|
self.isBus = None
|
|
18
19
|
self.isClock = None
|
|
19
20
|
self.isCritical = None
|
|
20
21
|
self.name = None
|
|
21
22
|
self.type = None
|
|
23
|
+
self.Diffmatename = None
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
class NetTags(XmlGeneric):
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import numpy as np
|
|
3
|
+
from copy import deepcopy as copy
|
|
4
|
+
|
|
2
5
|
from pyedb.generic.general_methods import ET
|
|
3
6
|
|
|
4
7
|
from pyedb.misc.siw_feature_config.emc.tag_library import \
|
|
@@ -8,6 +11,14 @@ from pyedb.misc.siw_feature_config.emc.component_tags import \
|
|
|
8
11
|
ComponentTags
|
|
9
12
|
|
|
10
13
|
|
|
14
|
+
def kwargs_parser(kwargs):
|
|
15
|
+
kwargs = copy(kwargs)
|
|
16
|
+
kwargs = {i: False if j == np.nan else j for i, j in kwargs.items()}
|
|
17
|
+
kwargs = {i: int(j) if isinstance(j, bool) else j for i, j in kwargs.items()}
|
|
18
|
+
kwargs = {i: str(j) for i, j in kwargs.items()}
|
|
19
|
+
return kwargs
|
|
20
|
+
|
|
21
|
+
|
|
11
22
|
class EMCRuleCheckerSettings:
|
|
12
23
|
"""Manages EMI scanner settings."""
|
|
13
24
|
|
|
@@ -41,7 +52,7 @@ class EMCRuleCheckerSettings:
|
|
|
41
52
|
|
|
42
53
|
Parameters
|
|
43
54
|
----------
|
|
44
|
-
fpath: str
|
|
55
|
+
fpath: str
|
|
45
56
|
Path to file.
|
|
46
57
|
"""
|
|
47
58
|
tree = ET.parse(fpath)
|
|
@@ -66,7 +77,7 @@ class EMCRuleCheckerSettings:
|
|
|
66
77
|
|
|
67
78
|
Parameters
|
|
68
79
|
----------
|
|
69
|
-
fpath: str
|
|
80
|
+
fpath: str
|
|
70
81
|
Path to file.
|
|
71
82
|
"""
|
|
72
83
|
data = {}
|
|
@@ -82,7 +93,7 @@ class EMCRuleCheckerSettings:
|
|
|
82
93
|
|
|
83
94
|
Parameters
|
|
84
95
|
----------
|
|
85
|
-
fpath: str
|
|
96
|
+
fpath: str
|
|
86
97
|
Path to file.
|
|
87
98
|
"""
|
|
88
99
|
self.tag_library = TagLibrary(None)
|
|
@@ -104,14 +115,14 @@ class EMCRuleCheckerSettings:
|
|
|
104
115
|
if component_tags:
|
|
105
116
|
self.component_tags.read_dict(component_tags)
|
|
106
117
|
|
|
107
|
-
def add_net(self, is_bus, is_clock, is_critical,
|
|
118
|
+
def add_net(self, name, is_bus=False, is_clock=False, is_critical=False, net_type="Single-Ended", diff_mate_name=""):
|
|
108
119
|
"""Assign tags to a net.
|
|
109
120
|
|
|
110
121
|
Parameters
|
|
111
122
|
----------
|
|
112
|
-
is_bus: str
|
|
123
|
+
is_bus: str, int
|
|
113
124
|
Whether the net is a bus.
|
|
114
|
-
is_clock: str
|
|
125
|
+
is_clock: str, int
|
|
115
126
|
Whether the net is a clock.
|
|
116
127
|
is_critical: str
|
|
117
128
|
Whether the net is critical.
|
|
@@ -119,15 +130,35 @@ class EMCRuleCheckerSettings:
|
|
|
119
130
|
Name of the net.
|
|
120
131
|
net_type: str
|
|
121
132
|
Type of the net.
|
|
133
|
+
diff_mate_name: str, optional
|
|
134
|
+
differential mate name.
|
|
122
135
|
"""
|
|
123
136
|
kwargs = {
|
|
124
137
|
"isBus": is_bus,
|
|
125
138
|
"isClock": is_clock,
|
|
126
139
|
"isCritical": is_critical,
|
|
127
140
|
"name": name,
|
|
128
|
-
"type": net_type
|
|
141
|
+
"type": net_type,
|
|
142
|
+
"Diffmatename": diff_mate_name
|
|
129
143
|
}
|
|
130
|
-
|
|
144
|
+
|
|
145
|
+
kwargs = kwargs_parser(kwargs)
|
|
146
|
+
|
|
147
|
+
if net_type == "Differential":
|
|
148
|
+
p = name
|
|
149
|
+
n = diff_mate_name
|
|
150
|
+
kwargs_p = kwargs
|
|
151
|
+
kwargs_n = kwargs
|
|
152
|
+
|
|
153
|
+
kwargs_p["name"] = p
|
|
154
|
+
kwargs_p["Diffmatename"] = n
|
|
155
|
+
self.net_tags.add_sub_element(kwargs_p, "Net")
|
|
156
|
+
|
|
157
|
+
kwargs_n["name"] = n
|
|
158
|
+
kwargs_n["Diffmatename"] = p
|
|
159
|
+
self.net_tags.add_sub_element(kwargs_n, "Net")
|
|
160
|
+
else:
|
|
161
|
+
self.net_tags.add_sub_element(kwargs, "Net")
|
|
131
162
|
|
|
132
163
|
def add_component(self,
|
|
133
164
|
comp_name,
|
|
@@ -176,4 +207,5 @@ class EMCRuleCheckerSettings:
|
|
|
176
207
|
"isOscillator": is_oscillator,
|
|
177
208
|
"xLoc": x_loc,
|
|
178
209
|
"yLoc": y_loc}
|
|
210
|
+
kwargs = kwargs_parser(kwargs)
|
|
179
211
|
self.component_tags.add_sub_element(kwargs, "Comp")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pyedb
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.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>
|
|
@@ -21,6 +21,7 @@ Requires-Dist: ansys-pythonnet >= 3.1.0rc3
|
|
|
21
21
|
Requires-Dist: rpyc==5.3.1
|
|
22
22
|
Requires-Dist: psutil
|
|
23
23
|
Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
|
|
24
|
+
Requires-Dist: vtk-osmesa==9.2.20230527.dev0 ; extra == "ci"
|
|
24
25
|
Requires-Dist: ansys-sphinx-theme==0.13.1 ; extra == "doc"
|
|
25
26
|
Requires-Dist: imageio==2.31.5 ; extra == "doc"
|
|
26
27
|
Requires-Dist: imageio-ffmpeg==0.4.9 ; extra == "doc"
|
|
@@ -75,7 +76,6 @@ Requires-Dist: SRTM.py ; extra == "full"
|
|
|
75
76
|
Requires-Dist: utm ; extra == "full"
|
|
76
77
|
Requires-Dist: scikit-rf ; extra == "full"
|
|
77
78
|
Requires-Dist: openpyxl==3.1.2 ; extra == "full"
|
|
78
|
-
Requires-Dist: ansys-edb-core ; extra == "grpc"
|
|
79
79
|
Requires-Dist: ipython==8.13.0 ; extra == "tests" and ( python_version < '3.9')
|
|
80
80
|
Requires-Dist: ipython==8.17.2 ; extra == "tests" and ( python_version >= '3.9')
|
|
81
81
|
Requires-Dist: imageio==2.31.5 ; extra == "tests"
|
|
@@ -101,9 +101,14 @@ Requires-Dist: scikit-learn==1.3.1 ; extra == "tests" and ( python_version > '3.
|
|
|
101
101
|
Requires-Dist: scikit-rf==0.31.0 ; extra == "tests"
|
|
102
102
|
Requires-Dist: SRTM.py ; extra == "tests"
|
|
103
103
|
Requires-Dist: utm ; extra == "tests"
|
|
104
|
+
Project-URL: Bugs, https://github.com/ansys/pyedb/issues
|
|
105
|
+
Project-URL: Discussions, https://github.com/ansys/pyedb/discussions
|
|
106
|
+
Project-URL: Documentation, https://aedt.docs.pyansys.com
|
|
107
|
+
Project-URL: Releases, https://github.com/ansys/pyedb/releases
|
|
108
|
+
Project-URL: Source, https://github.com/ansys/pyedb
|
|
109
|
+
Provides-Extra: ci
|
|
104
110
|
Provides-Extra: doc
|
|
105
111
|
Provides-Extra: full
|
|
106
|
-
Provides-Extra: grpc
|
|
107
112
|
Provides-Extra: tests
|
|
108
113
|
|
|
109
114
|
<!-- -->
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
pyedb/__init__.py,sha256=
|
|
1
|
+
pyedb/__init__.py,sha256=OCPT4fcdORj-lsJMMfpm82gN1WIwT2HpZEtZij330IA,358
|
|
2
2
|
pyedb/edb_logger.py,sha256=lnqdvkr2Uwo0WmnFiMWUcQMPrRuIXzPeU6hVTej_c2Q,13318
|
|
3
3
|
pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
pyedb/dotnet/clr_module.py,sha256=W4_6KTrh9GFV3Lp3tkozFBaEzNCD-trQgCAt0qlGbUM,3406
|
|
@@ -12,26 +12,27 @@ pyedb/dotnet/edb_core/general.py,sha256=uIDIEJK2LwQi805lIp-XKSTXWm7cV8kml3CxUauv
|
|
|
12
12
|
pyedb/dotnet/edb_core/hfss.py,sha256=qABg6L-y__r3OdcTDupdmgcCXyjO9Jo4nE_9d28BwsE,67178
|
|
13
13
|
pyedb/dotnet/edb_core/layout.py,sha256=WOY8i7odca7W7_s_KcZGXIiVZRjNCVmFzD_gE2f_CcU,46721
|
|
14
14
|
pyedb/dotnet/edb_core/layout_validation.py,sha256=6SHnC9rjBSAgqwReZhc7Yj5t1oW30NFIxYbs6Cu3P2o,10472
|
|
15
|
-
pyedb/dotnet/edb_core/materials.py,sha256=
|
|
15
|
+
pyedb/dotnet/edb_core/materials.py,sha256=pi3ZOZsYEqnIEzAT1bFyUflVl84TWL8-sY3fRBX-MFw,37794
|
|
16
16
|
pyedb/dotnet/edb_core/net_class.py,sha256=FScbzriu-cZcay3lm8LDt8wHBCQ8LhXM9CFTzf1DuLs,10703
|
|
17
17
|
pyedb/dotnet/edb_core/nets.py,sha256=cEq9xsX0WsdO2Kfyi0yrDJC30LWS-A-lZ6XZQXawskQ,42655
|
|
18
18
|
pyedb/dotnet/edb_core/padstack.py,sha256=nhn1a8uxE6fb_s6B8PHYcfpMZA78lMtruAtKRwOXIX4,51415
|
|
19
19
|
pyedb/dotnet/edb_core/siwave.py,sha256=m_HSYfccdpiE1mXWZKIWUErpYTd5kf9zufUOIDVB3PE,59573
|
|
20
|
-
pyedb/dotnet/edb_core/stackup.py,sha256=
|
|
20
|
+
pyedb/dotnet/edb_core/stackup.py,sha256=MKJtZMl0Xc3HxhfHup9HAEsQpQyRmY5fb-V-33i5oJk,111983
|
|
21
21
|
pyedb/dotnet/edb_core/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
22
22
|
pyedb/dotnet/edb_core/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
23
|
pyedb/dotnet/edb_core/cell/hierarchy/model.py,sha256=vS0iGV7LXrdB0Mpox_I4-eJf5igupXRZZ4nahaDBrsM,1761
|
|
24
24
|
pyedb/dotnet/edb_core/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
|
-
pyedb/dotnet/edb_core/definition/component_def.py,sha256=
|
|
25
|
+
pyedb/dotnet/edb_core/definition/component_def.py,sha256=Y2bO0rYabtcINoLQ0iO9uXpl9Gi7AoWOjXpBZ8dNY-8,5242
|
|
26
26
|
pyedb/dotnet/edb_core/definition/component_model.py,sha256=Cq8JZgvqM3CWyBLswXis9hCQUS_HreamkUQt0lr703Y,884
|
|
27
27
|
pyedb/dotnet/edb_core/definition/definition_obj.py,sha256=Uge_J9lHpcKOuLMHRk7XrSL0T7-zr_2wot2nAlC7KPc,486
|
|
28
|
-
pyedb/dotnet/edb_core/definition/definitions.py,sha256=
|
|
28
|
+
pyedb/dotnet/edb_core/definition/definitions.py,sha256=lae3_9KNGVODwvgY7W5-L02ehchtISsmpVqwz00TTQY,992
|
|
29
|
+
pyedb/dotnet/edb_core/definition/package_def.py,sha256=AbELAgwZ9oQ_gSEFN5Cmld13ts0N9WpIqaGstrjb27s,2851
|
|
29
30
|
pyedb/dotnet/edb_core/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
31
|
pyedb/dotnet/edb_core/dotnet/database.py,sha256=TDn1vBhwWlMgqlfpBeAMdH4bFdXe_-xna18WjFNU2U8,36443
|
|
31
32
|
pyedb/dotnet/edb_core/dotnet/layout.py,sha256=scvnzV0Of02S2m0GJYJYjBTpoe7Gqh8kNBzkmrMVCmc,7750
|
|
32
33
|
pyedb/dotnet/edb_core/dotnet/primitive.py,sha256=vgJj6g-akN_cu3odmMzGZieWWX2a5UAlljv_8b5BcPY,47166
|
|
33
34
|
pyedb/dotnet/edb_core/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
|
-
pyedb/dotnet/edb_core/edb_data/components_data.py,sha256=
|
|
35
|
+
pyedb/dotnet/edb_core/edb_data/components_data.py,sha256=L_Fhp1jeur9xb8uIBAd88ONQZs6pSIZNIg95M2EfK8o,32205
|
|
35
36
|
pyedb/dotnet/edb_core/edb_data/connectable.py,sha256=l9ztofnYhRM8JOoWpNjCddiwchAWBZNqzsjQqsMb6q4,3111
|
|
36
37
|
pyedb/dotnet/edb_core/edb_data/control_file.py,sha256=-5M4GvOod9udMMYF9k1vhg1miKOTd-iZbJKBt6RkFs4,47271
|
|
37
38
|
pyedb/dotnet/edb_core/edb_data/design_options.py,sha256=8Vqfvpxcvq2-Jtams2l3_kRVp724hVsBUkqsh1Gd1xM,902
|
|
@@ -40,7 +41,7 @@ pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py,sha256=xcK5ykIRdei3EQqDlmO5Hx
|
|
|
40
41
|
pyedb/dotnet/edb_core/edb_data/hfss_simulation_setup_data.py,sha256=SsuBAtWZ1rrzGTNgFv_f2XKUObBKgDbiBn8xcn5vnxA,47079
|
|
41
42
|
pyedb/dotnet/edb_core/edb_data/layer_data.py,sha256=TS6ckQr_KYES9x1zdr-vJWcOZANybw3dl8CNUcarWRg,20466
|
|
42
43
|
pyedb/dotnet/edb_core/edb_data/nets_data.py,sha256=sYNFerWSiXSyFIU8fZnWcGRDx_MxeeNbgZh1salTRWY,8450
|
|
43
|
-
pyedb/dotnet/edb_core/edb_data/obj_base.py,sha256=
|
|
44
|
+
pyedb/dotnet/edb_core/edb_data/obj_base.py,sha256=S6_ousfKf_sBXZliP9ERkxO5yY7lc-tRp0NTYkw2byw,727
|
|
44
45
|
pyedb/dotnet/edb_core/edb_data/padstacks_data.py,sha256=mL4DKlo_htnQEedMZOtOF-PEj1aNFaslA_hJRxPL5J0,76914
|
|
45
46
|
pyedb/dotnet/edb_core/edb_data/ports.py,sha256=x7FO0GLrfR0vmK1XpOlLYpY_WOl-BTHLpiHnuFGylxA,8069
|
|
46
47
|
pyedb/dotnet/edb_core/edb_data/primitives_data.py,sha256=PrpRibZ2UA3o16jQ17y9sMtZq89cXq-DuFrSOqIvL3k,45612
|
|
@@ -59,7 +60,7 @@ pyedb/generic/filesystem.py,sha256=sbZIHGlCTAyhDO5oDWFhJPGnyzlgvqaLt7saxeKqzsQ,3
|
|
|
59
60
|
pyedb/generic/general_methods.py,sha256=-NAONtEptUAFRLgRh7sto9MkyroOAsl2gx70-LMgjiM,46403
|
|
60
61
|
pyedb/generic/plot.py,sha256=gX4J4iY53Xk0rQL3OWvzWmM7vyAhLcsG0ATVrbI_pbY,61738
|
|
61
62
|
pyedb/generic/process.py,sha256=ZO7B0JoTAW9AZr3TI_a3pCAuU15ljAta6wAvWh6k_ss,11103
|
|
62
|
-
pyedb/generic/settings.py,sha256=
|
|
63
|
+
pyedb/generic/settings.py,sha256=m-uejR6VJe-sL8dTWb2tPSNtROylxV5RtyNge2p6l5Y,7429
|
|
63
64
|
pyedb/ipc2581/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
65
|
pyedb/ipc2581/history_record.py,sha256=uUYLclSBppFGk6kIVhs_l6UkEQBOk2C-hG6HCi0Nxlo,1585
|
|
65
66
|
pyedb/ipc2581/ipc2581.py,sha256=A5skFqvtY98z_OAEuCkWF7T7q0QIBVPe9zk5fdMTVz0,21531
|
|
@@ -115,14 +116,14 @@ pyedb/misc/misc.py,sha256=lvU4n49FWGQhdf3rKinKiBsDcREnG_34qkOH9FDD4o0,2161
|
|
|
115
116
|
pyedb/misc/pyedb.runtimeconfig.json,sha256=2xof-Vl0hY2VOs1KkMSReTMZACsZhcmPmyHXukfb-oY,301
|
|
116
117
|
pyedb/misc/utilities.py,sha256=w8mSGtgBlakcdOtWyP_NY0hUu_hxannOQOBvVxn02Fc,465
|
|
117
118
|
pyedb/misc/siw_feature_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
118
|
-
pyedb/misc/siw_feature_config/emc_rule_checker_settings.py,sha256=
|
|
119
|
+
pyedb/misc/siw_feature_config/emc_rule_checker_settings.py,sha256=1bMkTpmehm8v_GHO5gBjmt5_xfYAQdrY2N8-HbYxGrA,6343
|
|
119
120
|
pyedb/misc/siw_feature_config/emc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
121
|
pyedb/misc/siw_feature_config/emc/component_tags.py,sha256=s1MTxuUuVH3lVGMBK2l9rK_SEUXhrLzLzbgsTLuM1Uc,1579
|
|
121
|
-
pyedb/misc/siw_feature_config/emc/net_tags.py,sha256=
|
|
122
|
+
pyedb/misc/siw_feature_config/emc/net_tags.py,sha256=7fNUedSbqj3woBQfYaik0HhmQcy8tlToFITvi2kaqfU,1198
|
|
122
123
|
pyedb/misc/siw_feature_config/emc/tag_library.py,sha256=SOJx5KJAXFEpHzKkbunR7fy7N8etZN9kECFwcCQ1bp4,1575
|
|
123
124
|
pyedb/misc/siw_feature_config/emc/xml_generic.py,sha256=o5jMyfDJn3mzNUdzpPUFbexBVPc-Wu6XMf2ModMRyg0,2530
|
|
124
125
|
pyedb/modeler/geometry_operators.py,sha256=LDqEaeerw9H8Yva-SJhX3Afdni08OciO9t5G0c_tdqs,66820
|
|
125
|
-
pyedb-0.
|
|
126
|
-
pyedb-0.
|
|
127
|
-
pyedb-0.
|
|
128
|
-
pyedb-0.
|
|
126
|
+
pyedb-0.3.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
|
|
127
|
+
pyedb-0.3.0.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
|
|
128
|
+
pyedb-0.3.0.dist-info/METADATA,sha256=CX8h9Cfem2K08ktNT98m0OYVTH4LOkfKotAvULMZqro,12050
|
|
129
|
+
pyedb-0.3.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|