pyedb 0.54.0__py3-none-any.whl → 0.55.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 -8
- pyedb/configuration/cfg_boundaries.py +69 -151
- pyedb/configuration/cfg_components.py +201 -460
- pyedb/configuration/cfg_data.py +4 -2
- pyedb/configuration/cfg_general.py +13 -36
- pyedb/configuration/cfg_modeler.py +2 -1
- pyedb/configuration/cfg_nets.py +21 -35
- pyedb/configuration/cfg_operations.py +22 -151
- pyedb/configuration/cfg_package_definition.py +56 -112
- pyedb/configuration/cfg_padstacks.py +292 -688
- pyedb/configuration/cfg_pin_groups.py +32 -79
- pyedb/configuration/cfg_ports_sources.py +19 -6
- pyedb/configuration/cfg_s_parameter_models.py +67 -172
- pyedb/configuration/cfg_setup.py +102 -295
- pyedb/configuration/configuration.py +64 -5
- pyedb/dotnet/database/cell/connectable.py +38 -9
- pyedb/dotnet/database/cell/hierarchy/component.py +28 -28
- pyedb/dotnet/database/cell/hierarchy/model.py +1 -1
- pyedb/dotnet/database/cell/layout.py +63 -2
- pyedb/dotnet/database/cell/layout_obj.py +2 -2
- pyedb/dotnet/database/cell/primitive/path.py +6 -8
- pyedb/dotnet/database/cell/primitive/primitive.py +3 -24
- pyedb/dotnet/database/cell/terminal/edge_terminal.py +2 -2
- pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py +1 -1
- pyedb/dotnet/database/cell/terminal/pingroup_terminal.py +1 -1
- pyedb/dotnet/database/cell/terminal/point_terminal.py +1 -1
- pyedb/dotnet/database/cell/terminal/terminal.py +24 -24
- pyedb/dotnet/database/cell/voltage_regulator.py +0 -21
- pyedb/dotnet/database/components.py +96 -88
- pyedb/dotnet/database/definition/component_def.py +4 -4
- pyedb/dotnet/database/definition/component_model.py +1 -1
- pyedb/dotnet/database/definition/package_def.py +2 -3
- pyedb/dotnet/database/dotnet/database.py +3 -199
- pyedb/dotnet/database/dotnet/primitive.py +3 -3
- pyedb/dotnet/database/edb_data/control_file.py +5 -5
- pyedb/dotnet/database/edb_data/hfss_extent_info.py +6 -6
- pyedb/dotnet/database/edb_data/layer_data.py +23 -23
- pyedb/dotnet/database/edb_data/padstacks_data.py +63 -88
- pyedb/dotnet/database/edb_data/primitives_data.py +5 -5
- pyedb/dotnet/database/edb_data/sources.py +6 -6
- pyedb/dotnet/database/edb_data/variables.py +1 -1
- pyedb/dotnet/database/geometry/point_data.py +14 -10
- pyedb/dotnet/database/geometry/polygon_data.py +3 -3
- pyedb/dotnet/database/hfss.py +46 -48
- pyedb/dotnet/database/layout_validation.py +14 -11
- pyedb/dotnet/database/materials.py +10 -11
- pyedb/dotnet/database/modeler.py +97 -91
- pyedb/dotnet/database/nets.py +19 -22
- pyedb/dotnet/database/padstack.py +84 -83
- pyedb/dotnet/database/siwave.py +42 -42
- pyedb/dotnet/database/stackup.py +140 -72
- pyedb/dotnet/database/utilities/heatsink.py +4 -4
- pyedb/dotnet/database/utilities/obj_base.py +2 -2
- pyedb/dotnet/database/utilities/simulation_setup.py +2 -2
- pyedb/dotnet/database/utilities/value.py +16 -16
- pyedb/dotnet/edb.py +228 -150
- pyedb/edb_logger.py +12 -27
- pyedb/extensions/via_design_backend.py +6 -3
- pyedb/generic/design_types.py +67 -29
- pyedb/generic/general_methods.py +0 -120
- pyedb/generic/process.py +44 -108
- pyedb/generic/settings.py +75 -19
- pyedb/grpc/database/components.py +2 -0
- pyedb/grpc/database/control_file.py +5 -5
- pyedb/grpc/database/definition/materials.py +1 -1
- pyedb/grpc/database/definition/package_def.py +3 -3
- pyedb/grpc/database/definition/padstack_def.py +53 -0
- pyedb/grpc/database/geometry/polygon_data.py +1 -1
- pyedb/grpc/database/layout/layout.py +8 -5
- pyedb/grpc/database/layout_validation.py +3 -3
- pyedb/grpc/database/modeler.py +9 -4
- pyedb/grpc/database/net/net.py +15 -14
- pyedb/grpc/database/nets.py +70 -0
- pyedb/grpc/database/padstacks.py +35 -17
- pyedb/grpc/database/primitive/padstack_instance.py +175 -7
- pyedb/grpc/database/siwave.py +1 -1
- pyedb/grpc/database/source_excitations.py +2 -4
- pyedb/grpc/database/stackup.py +1 -1
- pyedb/grpc/database/terminal/bundle_terminal.py +1 -1
- pyedb/grpc/database/terminal/padstack_instance_terminal.py +1 -1
- pyedb/grpc/database/terminal/pingroup_terminal.py +1 -1
- pyedb/grpc/database/utility/xml_control_file.py +5 -5
- pyedb/grpc/edb.py +73 -27
- pyedb/grpc/edb_init.py +3 -3
- pyedb/grpc/rpc_session.py +10 -10
- pyedb/libraries/common.py +366 -0
- pyedb/libraries/rf_libraries/base_functions.py +1358 -0
- pyedb/libraries/rf_libraries/planar_antennas.py +628 -0
- pyedb/misc/decorators.py +61 -0
- pyedb/misc/misc.py +0 -13
- pyedb/siwave.py +2 -2
- {pyedb-0.54.0.dist-info → pyedb-0.55.0.dist-info}/METADATA +1 -2
- {pyedb-0.54.0.dist-info → pyedb-0.55.0.dist-info}/RECORD +95 -91
- {pyedb-0.54.0.dist-info → pyedb-0.55.0.dist-info}/WHEEL +0 -0
- {pyedb-0.54.0.dist-info → pyedb-0.55.0.dist-info}/licenses/LICENSE +0 -0
pyedb/__init__.py
CHANGED
|
@@ -3,13 +3,6 @@ import os
|
|
|
3
3
|
import sys
|
|
4
4
|
import warnings
|
|
5
5
|
|
|
6
|
-
# if os.name == "nt":
|
|
7
|
-
# os.environ["PYTHONMALLOC"] = "malloc"
|
|
8
|
-
|
|
9
|
-
# By default we use pyedb legacy implementation
|
|
10
|
-
if "PYEDB_USE_DOTNET" not in os.environ:
|
|
11
|
-
os.environ["PYEDB_USE_DOTNET"] = "0"
|
|
12
|
-
|
|
13
6
|
LATEST_DEPRECATED_PYTHON_VERSION = (3, 7)
|
|
14
7
|
|
|
15
8
|
|
|
@@ -44,7 +37,7 @@ deprecation_warning()
|
|
|
44
37
|
#
|
|
45
38
|
|
|
46
39
|
pyedb_path = os.path.dirname(__file__)
|
|
47
|
-
__version__ = "0.
|
|
40
|
+
__version__ = "0.55.0"
|
|
48
41
|
version = __version__
|
|
49
42
|
|
|
50
43
|
#
|
|
@@ -24,164 +24,82 @@ from pyedb.configuration.cfg_common import CfgBase
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class CfgBoundaries(CfgBase):
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return self.parent.pyedb_obj
|
|
27
|
+
def __init__(self, pedb, boundary_data):
|
|
28
|
+
self._pedb = pedb
|
|
29
|
+
self.boundary_data = boundary_data
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
"air_box_truncate_model_ground_layers", None
|
|
49
|
-
)
|
|
50
|
-
self.air_box_horizontal_padding = self.parent.boundary_data.get("air_box_horizontal_padding", None)
|
|
51
|
-
self.air_box_positive_vertical_padding = self.parent.boundary_data.get(
|
|
52
|
-
"air_box_positive_vertical_padding", None
|
|
53
|
-
)
|
|
54
|
-
self.air_box_negative_vertical_padding = self.parent.boundary_data.get(
|
|
55
|
-
"air_box_negative_vertical_padding", None
|
|
56
|
-
)
|
|
31
|
+
self.open_region = self.boundary_data.get("open_region", None)
|
|
32
|
+
self.open_region_type = self.boundary_data.get("map_open_region_type", None)
|
|
33
|
+
self.pml_visible = self.boundary_data.get("pml_visible", None)
|
|
34
|
+
self.pml_operation_frequency = self.boundary_data.get("pml_operation_frequency", None)
|
|
35
|
+
self.pml_radiation_factor = self.boundary_data.get("pml_radiation_factor", None)
|
|
36
|
+
self.dielectric_extent_type = self.boundary_data.get("dielectric_extent_type", None)
|
|
37
|
+
self.horizontal_padding = self.boundary_data.get("horizontal_padding", None)
|
|
38
|
+
self.honor_primitives_on_dielectric_layers = self.boundary_data.get(
|
|
39
|
+
"honor_primitives_on_dielectric_layers", False
|
|
40
|
+
)
|
|
41
|
+
self.air_box_extent_type = self.boundary_data.get("air_box_extent_type", None)
|
|
42
|
+
self.air_box_base_polygon = self.boundary_data.get("air_box_base_polygon", None)
|
|
43
|
+
self.air_box_truncate_model_ground_layers = self.boundary_data.get("air_box_truncate_model_ground_layers", None)
|
|
44
|
+
self.air_box_horizontal_padding = self.boundary_data.get("air_box_horizontal_padding", None)
|
|
45
|
+
self.air_box_positive_vertical_padding = self.boundary_data.get("air_box_positive_vertical_padding", None)
|
|
46
|
+
self.air_box_negative_vertical_padding = self.boundary_data.get("air_box_negative_vertical_padding", None)
|
|
57
47
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if self.honor_primitives_on_dielectric_layers is not None:
|
|
74
|
-
self._pedb.hfss.hfss_extent_info.honor_user_dielectric = self.honor_primitives_on_dielectric_layers
|
|
75
|
-
if self.air_box_extent_type:
|
|
76
|
-
self._pedb.hfss.hfss_extent_info.extent_type = self.air_box_extent_type.lower()
|
|
77
|
-
if self.air_box_truncate_model_ground_layers is not None:
|
|
78
|
-
self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground = self.air_box_truncate_model_ground_layers
|
|
79
|
-
if self.air_box_horizontal_padding:
|
|
80
|
-
self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent = float(self.air_box_horizontal_padding)
|
|
81
|
-
if self.air_box_positive_vertical_padding:
|
|
82
|
-
self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent = float(
|
|
83
|
-
self.air_box_positive_vertical_padding
|
|
84
|
-
)
|
|
85
|
-
if self.air_box_negative_vertical_padding:
|
|
86
|
-
self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent = float(
|
|
87
|
-
self.air_box_negative_vertical_padding
|
|
88
|
-
)
|
|
48
|
+
def get_parameters_from_edb(self):
|
|
49
|
+
self.open_region = self._pedb.hfss.hfss_extent_info.use_open_region
|
|
50
|
+
self.open_region_type = self._pedb.hfss.hfss_extent_info.open_region_type
|
|
51
|
+
self.pml_visible = self._pedb.hfss.hfss_extent_info.is_pml_visible
|
|
52
|
+
self.pml_operation_frequency = self._pedb.hfss.hfss_extent_info.operating_freq.tostring
|
|
53
|
+
self.pml_radiation_factor = self._pedb.hfss.hfss_extent_info.radiation_level.tostring
|
|
54
|
+
self.dielectric_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
|
|
55
|
+
self.horizontal_padding = self._pedb.hfss.hfss_extent_info.dielectric_extent_size
|
|
56
|
+
self.honor_primitives_on_dielectric_layers = self._pedb.hfss.hfss_extent_info.honor_user_dielectric
|
|
57
|
+
self.air_box_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
|
|
58
|
+
self.air_box_truncate_model_ground_layers = self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground
|
|
59
|
+
self.air_box_horizontal_padding = self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent
|
|
60
|
+
self.air_box_positive_vertical_padding = self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent
|
|
61
|
+
self.air_box_negative_vertical_padding = self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent
|
|
62
|
+
return self.get_attributes(exclude="boundary_data")
|
|
89
63
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
self.
|
|
94
|
-
|
|
95
|
-
self.
|
|
96
|
-
|
|
97
|
-
self.
|
|
98
|
-
|
|
99
|
-
self.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
)
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
self.
|
|
119
|
-
|
|
120
|
-
self.parent.pml_operation_frequency = self._pedb.hfss.hfss_extent_info.operating_freq.tostring
|
|
121
|
-
self.parent.pml_radiation_factor = self._pedb.hfss.hfss_extent_info.radiation_level.tostring
|
|
122
|
-
self.parent.dielectric_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
|
|
123
|
-
self.parent.horizontal_padding = self._pedb.hfss.hfss_extent_info.dielectric_extent_size
|
|
124
|
-
self.parent.honor_primitives_on_dielectric_layers = self._pedb.hfss.hfss_extent_info.honor_user_dielectric
|
|
125
|
-
self.parent.air_box_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
|
|
126
|
-
self.parent.air_box_truncate_model_ground_layers = (
|
|
127
|
-
self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground
|
|
128
|
-
)
|
|
129
|
-
self.parent.air_box_horizontal_padding = self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent
|
|
130
|
-
self.parent.air_box_positive_vertical_padding = (
|
|
131
|
-
self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent
|
|
64
|
+
def set_parameters_to_edb(self):
|
|
65
|
+
"""Imports boundary information from JSON."""
|
|
66
|
+
if self.open_region is not None:
|
|
67
|
+
self._pedb.hfss.hfss_extent_info.use_open_region = self.open_region
|
|
68
|
+
if self.open_region_type:
|
|
69
|
+
self._pedb.hfss.hfss_extent_info.open_region_type = self.open_region_type.lower()
|
|
70
|
+
if self.pml_visible is not None:
|
|
71
|
+
self._pedb.hfss.hfss_extent_info.is_pml_visible = self.pml_visible
|
|
72
|
+
if self.pml_operation_frequency:
|
|
73
|
+
self._pedb.hfss.hfss_extent_info.operating_freq = self.pml_operation_frequency
|
|
74
|
+
if self.pml_radiation_factor:
|
|
75
|
+
if self._pedb.grpc:
|
|
76
|
+
self._pedb.hfss.hfss_extent_info.pml_radiation_factor = self.pml_radiation_factor
|
|
77
|
+
else:
|
|
78
|
+
self._pedb.hfss.hfss_extent_info.radiation_level = self.pml_radiation_factor
|
|
79
|
+
if self.dielectric_extent_type:
|
|
80
|
+
self._pedb.hfss.hfss_extent_info.extent_type = self.dielectric_extent_type.lower()
|
|
81
|
+
if self.horizontal_padding:
|
|
82
|
+
self._pedb.hfss.hfss_extent_info.dielectric_extent_size = float(self.horizontal_padding)
|
|
83
|
+
if self.honor_primitives_on_dielectric_layers is not None:
|
|
84
|
+
self._pedb.hfss.hfss_extent_info.honor_user_dielectric = self.honor_primitives_on_dielectric_layers
|
|
85
|
+
if self.air_box_extent_type:
|
|
86
|
+
self._pedb.hfss.hfss_extent_info.extent_type = self.air_box_extent_type.lower()
|
|
87
|
+
if self.air_box_truncate_model_ground_layers is not None:
|
|
88
|
+
self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground = self.air_box_truncate_model_ground_layers
|
|
89
|
+
if self.air_box_horizontal_padding:
|
|
90
|
+
self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent = float(self.air_box_horizontal_padding)
|
|
91
|
+
if self.air_box_positive_vertical_padding:
|
|
92
|
+
self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent = float(
|
|
93
|
+
self.air_box_positive_vertical_padding
|
|
132
94
|
)
|
|
133
|
-
|
|
134
|
-
|
|
95
|
+
if self.air_box_negative_vertical_padding:
|
|
96
|
+
self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent = float(
|
|
97
|
+
self.air_box_negative_vertical_padding
|
|
135
98
|
)
|
|
136
|
-
return self.parent.get_attributes(exclude="boundary_data")
|
|
137
|
-
|
|
138
|
-
def set_parameters_to_edb(self):
|
|
139
|
-
"""Imports boundary information from JSON."""
|
|
140
|
-
if self.open_region is not None:
|
|
141
|
-
self._pedb.hfss.hfss_extent_info.use_open_region = self.open_region
|
|
142
|
-
if self.open_region_type:
|
|
143
|
-
self._pedb.hfss.hfss_extent_info.open_region_type = self.open_region_type.lower()
|
|
144
|
-
if self.pml_visible is not None:
|
|
145
|
-
self._pedb.hfss.hfss_extent_info.is_pml_visible = self.pml_visible
|
|
146
|
-
if self.pml_operation_frequency:
|
|
147
|
-
self._pedb.hfss.hfss_extent_info.operating_freq = self.pml_operation_frequency
|
|
148
|
-
if self.pml_radiation_factor:
|
|
149
|
-
if self._pedb.grpc:
|
|
150
|
-
self._pedb.hfss.hfss_extent_info.pml_radiation_factor = self.pml_radiation_factor
|
|
151
|
-
else:
|
|
152
|
-
self._pedb.hfss.hfss_extent_info.radiation_level = self.pml_radiation_factor
|
|
153
|
-
if self.dielectric_extent_type:
|
|
154
|
-
self._pedb.hfss.hfss_extent_info.extent_type = self.dielectric_extent_type.lower()
|
|
155
|
-
if self.horizontal_padding:
|
|
156
|
-
self._pedb.hfss.hfss_extent_info.dielectric_extent_size = float(self.horizontal_padding)
|
|
157
|
-
if self.honor_primitives_on_dielectric_layers is not None:
|
|
158
|
-
self._pedb.hfss.hfss_extent_info.honor_user_dielectric = self.honor_primitives_on_dielectric_layers
|
|
159
|
-
if self.air_box_extent_type:
|
|
160
|
-
self._pedb.hfss.hfss_extent_info.extent_type = self.air_box_extent_type.lower()
|
|
161
|
-
if self.air_box_truncate_model_ground_layers is not None:
|
|
162
|
-
self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground = self.air_box_truncate_model_ground_layers
|
|
163
|
-
if self.air_box_horizontal_padding:
|
|
164
|
-
self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent = float(self.air_box_horizontal_padding)
|
|
165
|
-
if self.air_box_positive_vertical_padding:
|
|
166
|
-
self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent = float(
|
|
167
|
-
self.air_box_positive_vertical_padding
|
|
168
|
-
)
|
|
169
|
-
if self.air_box_negative_vertical_padding:
|
|
170
|
-
self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent = float(
|
|
171
|
-
self.air_box_negative_vertical_padding
|
|
172
|
-
)
|
|
173
|
-
|
|
174
|
-
def __init__(self, pedb, boundary_data):
|
|
175
|
-
self.pedb = pedb
|
|
176
|
-
self.boundary_data = boundary_data
|
|
177
|
-
if self.pedb.grpc:
|
|
178
|
-
self.api = self.Grpc(self)
|
|
179
|
-
else:
|
|
180
|
-
self.api = self.DotNet(self)
|
|
181
99
|
|
|
182
100
|
def apply(self):
|
|
183
101
|
"""Imports boundary information from JSON."""
|
|
184
|
-
self.
|
|
102
|
+
self.set_parameters_to_edb()
|
|
185
103
|
|
|
186
104
|
def get_data_from_db(self):
|
|
187
|
-
return self.
|
|
105
|
+
return self.get_parameters_from_edb()
|