pyedb 0.43.0__py3-none-any.whl → 0.44.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.

Files changed (52) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_boundaries.py +20 -14
  3. pyedb/configuration/cfg_components.py +1 -1
  4. pyedb/configuration/cfg_general.py +6 -4
  5. pyedb/configuration/cfg_modeler.py +1 -0
  6. pyedb/configuration/cfg_package_definition.py +41 -1
  7. pyedb/configuration/cfg_padstacks.py +611 -256
  8. pyedb/configuration/cfg_ports_sources.py +75 -15
  9. pyedb/configuration/cfg_s_parameter_models.py +30 -0
  10. pyedb/configuration/cfg_setup.py +94 -21
  11. pyedb/configuration/cfg_stackup.py +44 -0
  12. pyedb/dotnet/database/edb_data/design_options.py +19 -1
  13. pyedb/dotnet/database/edb_data/padstacks_data.py +9 -4
  14. pyedb/dotnet/database/geometry/polygon_data.py +4 -2
  15. pyedb/dotnet/database/padstack.py +6 -2
  16. pyedb/dotnet/database/utilities/simulation_setup.py +7 -17
  17. pyedb/dotnet/database/utilities/siwave_simulation_setup.py +30 -0
  18. pyedb/grpc/database/components.py +1 -1
  19. pyedb/grpc/database/definition/component_def.py +15 -0
  20. pyedb/grpc/database/definition/component_pin.py +1 -1
  21. pyedb/grpc/database/definition/materials.py +27 -0
  22. pyedb/grpc/database/definition/package_def.py +20 -2
  23. pyedb/grpc/database/definition/padstack_def.py +5 -2
  24. pyedb/grpc/database/hierarchy/component.py +4 -2
  25. pyedb/grpc/database/hierarchy/pingroup.py +12 -8
  26. pyedb/grpc/database/layers/layer.py +28 -0
  27. pyedb/grpc/database/layers/stackup_layer.py +281 -40
  28. pyedb/grpc/database/layout/layout.py +12 -6
  29. pyedb/grpc/database/modeler.py +8 -8
  30. pyedb/grpc/database/primitive/bondwire.py +3 -3
  31. pyedb/grpc/database/primitive/circle.py +1 -1
  32. pyedb/grpc/database/primitive/padstack_instance.py +13 -3
  33. pyedb/grpc/database/primitive/path.py +2 -2
  34. pyedb/grpc/database/primitive/polygon.py +3 -3
  35. pyedb/grpc/database/primitive/primitive.py +1 -1
  36. pyedb/grpc/database/primitive/rectangle.py +2 -2
  37. pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +73 -30
  38. pyedb/grpc/database/source_excitations.py +7 -7
  39. pyedb/grpc/database/stackup.py +14 -6
  40. pyedb/grpc/database/terminal/bundle_terminal.py +3 -3
  41. pyedb/grpc/database/terminal/edge_terminal.py +2 -2
  42. pyedb/grpc/database/terminal/padstack_instance_terminal.py +42 -2
  43. pyedb/grpc/database/terminal/pingroup_terminal.py +35 -2
  44. pyedb/grpc/database/terminal/point_terminal.py +10 -1
  45. pyedb/grpc/database/terminal/terminal.py +4 -4
  46. pyedb/grpc/database/utility/hfss_extent_info.py +14 -10
  47. pyedb/grpc/edb.py +8 -8
  48. pyedb/misc/misc.py +13 -0
  49. {pyedb-0.43.0.dist-info → pyedb-0.44.0.dist-info}/METADATA +1 -1
  50. {pyedb-0.43.0.dist-info → pyedb-0.44.0.dist-info}/RECORD +52 -52
  51. {pyedb-0.43.0.dist-info → pyedb-0.44.0.dist-info}/LICENSE +0 -0
  52. {pyedb-0.43.0.dist-info → pyedb-0.44.0.dist-info}/WHEEL +0 -0
pyedb/__init__.py CHANGED
@@ -44,7 +44,7 @@ deprecation_warning()
44
44
  #
45
45
 
46
46
  pyedb_path = os.path.dirname(__file__)
47
- __version__ = "0.43.0"
47
+ __version__ = "0.44.0"
48
48
  version = __version__
49
49
 
50
50
  #
@@ -88,20 +88,26 @@ class CfgBoundaries(CfgBase):
88
88
  )
89
89
 
90
90
  def get_parameters_from_edb(self):
91
- self.open_region = self._pedb.hfss.hfss_extent_info.use_open_region
92
- self.open_region_type = self._pedb.hfss.hfss_extent_info.open_region_type
93
- self.pml_visible = self._pedb.hfss.hfss_extent_info.is_pml_visible
94
- self.pml_operation_frequency = self._pedb.hfss.hfss_extent_info.operating_freq
95
- self.pml_radiation_factor = self._pedb.hfss.hfss_extent_info.pml_radiation_factor
96
- self.dielectric_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
97
- self.horizontal_padding = self._pedb.hfss.hfss_extent_info.dielectric_extent_size
98
- self.honor_primitives_on_dielectric_layers = self._pedb.hfss.hfss_extent_info.honor_user_dielectric
99
- self.air_box_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
100
- self.air_box_truncate_model_ground_layers = self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground
101
- self.air_box_horizontal_padding = self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent
102
- self.air_box_positive_vertical_padding = self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent
103
- self.air_box_negative_vertical_padding = self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent
104
- return self.parent.get_attributes()
91
+ self.parent.open_region = self._pedb.hfss.hfss_extent_info.use_open_region
92
+ self.parent.open_region_type = self._pedb.hfss.hfss_extent_info.open_region_type
93
+ self.parent.pml_visible = self._pedb.hfss.hfss_extent_info.is_pml_visible
94
+ self.parent.pml_operation_frequency = self._pedb.hfss.hfss_extent_info.operating_freq
95
+ self.parent.pml_radiation_factor = self._pedb.hfss.hfss_extent_info.pml_radiation_factor
96
+ self.parent.dielectric_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
97
+ self.parent.horizontal_padding = self._pedb.hfss.hfss_extent_info.dielectric_extent_size
98
+ self.parent.honor_primitives_on_dielectric_layers = self._pedb.hfss.hfss_extent_info.honor_user_dielectric
99
+ self.parent.air_box_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
100
+ self.parent.air_box_truncate_model_ground_layers = (
101
+ self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground
102
+ )
103
+ self.parent.air_box_horizontal_padding = self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent
104
+ self.parent.air_box_positive_vertical_padding = (
105
+ self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent
106
+ )
107
+ self.parent.air_box_negative_vertical_padding = (
108
+ self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent
109
+ )
110
+ return self.parent.get_attributes(exclude="boundary_data")
105
111
 
106
112
  class DotNet(Grpc):
107
113
  def __init__(self, parent):
@@ -262,7 +262,7 @@ class CfgComponent(CfgBase):
262
262
  def set_parameters_to_edb(self):
263
263
  if self.parent.type:
264
264
  self.pyedb_obj.type = self.parent.type
265
- if self.parent.enabled:
265
+ if self.parent.enabled is not None:
266
266
  self.pyedb_obj.enabled = self.parent.enabled
267
267
 
268
268
  self._set_model_properties_to_edb()
@@ -44,8 +44,10 @@ class CfgGeneral:
44
44
  super().__init__(parent)
45
45
 
46
46
  def set_parameters_to_edb(self):
47
- self.pedb.design_options.antipads_always_on = self.parent.anti_pads_always_on
48
- self.pedb.design_options.suppress_pads = self.parent.suppress_pads
47
+ if self.parent.anti_pads_always_on is not None:
48
+ self.pedb.design_options.anti_pads_always_on = self.parent.anti_pads_always_on
49
+ if self.parent.suppress_pads is not None:
50
+ self.pedb.design_options.suppress_pads = self.parent.suppress_pads
49
51
 
50
52
  def __init__(self, pedb, data):
51
53
  self.pedb = pedb
@@ -55,8 +57,8 @@ class CfgGeneral:
55
57
  self.api = self.DotNet(self)
56
58
  self.spice_model_library = data.get("spice_model_library", "")
57
59
  self.s_parameter_library = data.get("s_parameter_library", "")
58
- self.anti_pads_always_on = data.get("anti_pads_always_on", False)
59
- self.suppress_pads = data.get("suppress_pads", True)
60
+ self.anti_pads_always_on = data.get("anti_pads_always_on", None)
61
+ self.suppress_pads = data.get("suppress_pads", None)
60
62
 
61
63
  def apply(self):
62
64
  self.api.set_parameters_to_edb()
@@ -175,6 +175,7 @@ class CfgModeler:
175
175
  net_name=p.net_name,
176
176
  position=p.position,
177
177
  definition_name=p.definition,
178
+ rotation=p.rotation if p.rotation is not None else 0,
178
179
  )
179
180
  p.pyedb_obj = p_inst
180
181
  p.api.set_parameters_to_edb()
@@ -21,7 +21,6 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  from pyedb.configuration.cfg_common import CfgBase
24
- from pyedb.dotnet.database.definition.package_def import PackageDef
25
24
 
26
25
 
27
26
  class CfgPackage(CfgBase):
@@ -70,6 +69,8 @@ class CfgPackageDefinitions:
70
69
  self._pedb = parent._pedb
71
70
 
72
71
  def set_parameter_to_edb(self):
72
+ from pyedb.grpc.database.definition.package_def import PackageDef
73
+
73
74
  for pkg in self.parent.packages:
74
75
  comp_def_from_db = self._pedb.definitions.component[pkg.component_definition]
75
76
  if pkg.name in self._pedb.definitions.package:
@@ -130,6 +131,45 @@ class CfgPackageDefinitions:
130
131
  def __init__(self, parent):
131
132
  super().__init__(parent)
132
133
 
134
+ def set_parameter_to_edb(self):
135
+ from pyedb.dotnet.database.definition.package_def import PackageDef
136
+
137
+ for pkg in self.parent.packages:
138
+ comp_def_from_db = self._pedb.definitions.component[pkg.component_definition]
139
+ if pkg.name in self._pedb.definitions.package:
140
+ self._pedb.definitions.package[pkg.name].delete()
141
+
142
+ if pkg.extent_bounding_box:
143
+ package_def = PackageDef(self._pedb, name=pkg.name, extent_bounding_box=pkg.extent_bounding_box)
144
+ else:
145
+ package_def = PackageDef(self._pedb, name=pkg.name, component_part_name=pkg.component_definition)
146
+ pkg.set_attributes(package_def)
147
+
148
+ if pkg.heatsink:
149
+ attrs = pkg.heatsink.get_attributes()
150
+ for attr, value in attrs.items():
151
+ package_def.set_heatsink(**attrs)
152
+
153
+ comp_list = dict()
154
+ if pkg.apply_to_all:
155
+ comp_list.update(
156
+ {
157
+ refdes: comp
158
+ for refdes, comp in comp_def_from_db.components.items()
159
+ if refdes not in pkg.components
160
+ }
161
+ )
162
+ else:
163
+ comp_list.update(
164
+ {
165
+ refdes: comp
166
+ for refdes, comp in comp_def_from_db.components.items()
167
+ if refdes in pkg.components
168
+ }
169
+ )
170
+ for _, i in comp_list.items():
171
+ i.package_def = pkg.name
172
+
133
173
  def __init__(self, pedb, data):
134
174
  self._pedb = pedb
135
175
  if self._pedb.grpc: