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.

Files changed (40) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/dotnet/edb.py +154 -235
  3. pyedb/dotnet/edb_core/cell/connectable.py +64 -0
  4. pyedb/dotnet/edb_core/cell/hierarchy/component.py +12 -10
  5. pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +1 -1
  6. pyedb/dotnet/edb_core/cell/layout.py +253 -105
  7. pyedb/dotnet/edb_core/cell/layout_obj.py +4 -49
  8. pyedb/dotnet/edb_core/cell/primitive.py +14 -2
  9. pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +1 -1
  10. pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +1 -1
  11. pyedb/dotnet/edb_core/cell/terminal/terminal.py +1 -19
  12. pyedb/dotnet/edb_core/cell/voltage_regulator.py +2 -16
  13. pyedb/dotnet/edb_core/components.py +14 -13
  14. pyedb/dotnet/edb_core/dotnet/database.py +5 -10
  15. pyedb/dotnet/edb_core/dotnet/primitive.py +11 -1
  16. pyedb/dotnet/edb_core/edb_data/control_file.py +2 -12
  17. pyedb/dotnet/edb_core/edb_data/padstacks_data.py +20 -33
  18. pyedb/dotnet/edb_core/general.py +6 -9
  19. pyedb/dotnet/edb_core/hfss.py +4 -8
  20. pyedb/dotnet/edb_core/layout_obj_instance.py +30 -0
  21. pyedb/dotnet/edb_core/materials.py +4 -11
  22. pyedb/dotnet/edb_core/{layout.py → modeler.py} +153 -7
  23. pyedb/dotnet/edb_core/net_class.py +7 -8
  24. pyedb/dotnet/edb_core/nets.py +3 -9
  25. pyedb/dotnet/edb_core/padstack.py +13 -9
  26. pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +5 -2
  27. pyedb/dotnet/edb_core/siwave.py +5 -6
  28. pyedb/dotnet/edb_core/stackup.py +18 -23
  29. pyedb/dotnet/edb_core/utilities/simulation_setup.py +1 -4
  30. pyedb/generic/filesystem.py +2 -8
  31. pyedb/generic/general_methods.py +4 -10
  32. pyedb/generic/plot.py +26 -29
  33. pyedb/generic/process.py +2 -6
  34. pyedb/misc/downloads.py +3 -40
  35. pyedb/siwave.py +2 -5
  36. {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/METADATA +2 -2
  37. {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/RECORD +39 -38
  38. pyedb/dotnet/edb_core/dotnet/layout.py +0 -260
  39. {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/LICENSE +0 -0
  40. {pyedb-0.19.0.dist-info → pyedb-0.20.0.dist-info}/WHEEL +0 -0
@@ -1,260 +0,0 @@
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
- from pyedb.dotnet.edb_core.dotnet.database import NetDotNet
24
- from pyedb.dotnet.edb_core.dotnet.primitive import cast
25
- from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
26
-
27
-
28
- class LayoutDotNet:
29
- """Layout."""
30
-
31
- def __init__(self, app):
32
- """Initialize a new layout.
33
-
34
- Parameters
35
- ----------
36
- msg : EDBObjMessage
37
- """
38
- self._app = app
39
- self._cell = app._active_cell
40
- self._edb_api = app._edb
41
- self._layout = self._cell.GetLayout()
42
- self._layout_instance = None
43
-
44
- @property
45
- def cell(self):
46
- """:class:`Cell <ansys.edb.layout.Cell>`: Owning cell for this layout.
47
-
48
- Read-Only.
49
- """
50
- return self._cell
51
-
52
- @property
53
- def layer_collection(self):
54
- """:class:`LayerCollection <ansys.edb.layer.LayerCollection>` : Layer collection of this layout."""
55
- return self._layout.GetLayerCollection()
56
-
57
- @layer_collection.setter
58
- def layer_collection(self, layer_collection):
59
- """Set layer collection."""
60
- self._layout.SetLayerCollection(layer_collection)
61
-
62
- @property
63
- def primitives(self):
64
- """List of primitives.Read-Only.
65
-
66
- Returns
67
- -------
68
- list of :class:`dotnet.edb_core.dotnet.primitive.PrimitiveDotNet` cast objects.
69
- """
70
- return [cast(self._app, i) for i in list(self._layout.Primitives)]
71
-
72
- @property
73
- def padstack_instances(self):
74
- """:obj:`list` of :class:`PadstackInstance <ansys.edb.primitive.PadstackInstance>` : List of all padstack \
75
- instances in this layout.
76
-
77
- Read-Only.
78
- """
79
- return list(self._layout.PadstackInstances)
80
-
81
- @property
82
- def terminals(self):
83
- """:obj:`list` of :class:`Terminal <ansys.edb.terminal.Terminal>` : List of all the terminals in this layout.
84
-
85
- Read-Only.
86
- """
87
- return list(self._layout.Terminals)
88
-
89
- @property
90
- def cell_instances(self):
91
- """:obj:`list` of :class:`CellInstance <ansys.edb.hierarchy.CellInstances>` : List of the cell instances in \
92
- this layout.
93
-
94
- Read-Only.
95
- """
96
- return list(self._layout.CellInstances)
97
-
98
- @property
99
- def nets(self):
100
- """:obj:`list` of :class:`Net <ansys.edb.net.Net>` : List of all the nets in this layout.
101
-
102
- Read-Only.
103
- """
104
- return [NetDotNet(self._app, i) for i in self._layout.Nets]
105
-
106
- @property
107
- def groups(self):
108
- """:obj:`list` of :class:`Group <ansys.edb.hierarchy.Group>` : List of all the groups in this layout.
109
-
110
- Read-Only.
111
- """
112
- return list(self._layout.Groups)
113
-
114
- @property
115
- def net_classes(self):
116
- """:obj:`list` of :class:`NetClass <ansys.edb.net.NetClass>` : List of all the netclasses in this layout.
117
-
118
- Read-Only.
119
- """
120
- return list(self._layout.NetClasses)
121
-
122
- @property
123
- def differential_pairs(self):
124
- """:obj:`list` of :class:`DifferentialPair <ansys.edb.net.DifferentialPair>` : List of all the differential \
125
- pairs in this layout.
126
-
127
- Read-Only.
128
- """
129
- return list(self._layout.DifferentialPairs)
130
-
131
- @property
132
- def pin_groups(self):
133
- """:obj:`list` of :class:`PinGroup <ansys.edb.hierarchy.PinGroup>` : List of all the pin groups in this \
134
- layout.
135
-
136
- Read-Only.
137
- """
138
- return list(self._layout.PinGroups)
139
-
140
- @property
141
- def voltage_regulators(self):
142
- """:obj:`list` of :class:`VoltageRegulator <ansys.edb.hierarchy.VoltageRegulator>` : List of all the voltage \
143
- regulators in this layout.
144
-
145
- Read-Only.
146
- """
147
- return list(self._layout.VoltageRegulators)
148
-
149
- @property
150
- def extended_nets(self):
151
- """
152
- Get the list of extended nets in the layout. Read-Only.
153
-
154
- Returns
155
- -------
156
- List[:class:`ExtendedNet <ansys.edb.net.ExtendedNet>`]
157
- A list of extended nets.
158
-
159
- """
160
- return list(self._layout.ExtendedNets)
161
-
162
- def expanded_extent(self, nets, extent, expansion_factor, expansion_unitless, use_round_corner, num_increments):
163
- """Get an expanded polygon for the Nets collection.
164
-
165
- Parameters
166
- ----------
167
- nets : list[:class:`Net <ansys.edb.net.Net>`]
168
- A list of nets.
169
- extent : :class:`ExtentType <ansys.edb.geometry.ExtentType>`
170
- Geometry extent type for expansion.
171
- expansion_factor : float
172
- Expansion factor for the polygon union. No expansion occurs if the `expansion_factor` is less than or \
173
- equal to 0.
174
- expansion_unitless : bool
175
- When unitless, the distance by which the extent expands is the factor multiplied by the longer dimension\
176
- (X or Y distance) of the expanded object/net.
177
- use_round_corner : bool
178
- Whether to use round or sharp corners.
179
- For round corners, this returns a bounding box if its area is within 10% of the rounded expansion's area.
180
- num_increments : int
181
- Number of iterations desired to reach the full expansion.
182
-
183
- Returns
184
- -------
185
- :class:`PolygonData <ansys.edb.geometry.PolygonData>`
186
-
187
- Notes
188
- -----
189
- Method returns the expansion of the contour, so any voids within expanded objects are ignored.
190
- """
191
- return self._layout.GetExpandedExtentFromNets(
192
- convert_py_list_to_net_list(nets),
193
- extent,
194
- expansion_factor,
195
- expansion_unitless,
196
- use_round_corner,
197
- num_increments,
198
- )
199
-
200
- def convert_primitives_to_vias(self, primitives, is_pins=False):
201
- """Convert a list of primitives into vias or pins.
202
-
203
- Parameters
204
- ----------
205
- primitives : list[:class:`Primitive <ansys.edb.primitive.Primitive>`]
206
- List of primitives to convert.
207
- is_pins : bool, optional
208
- True for pins, false for vias (default).
209
- """
210
- self._layout.ConvertPrimitivesToVias(convert_py_list_to_net_list(primitives), is_pins)
211
-
212
- @property
213
- def port_reference_terminals_connected(self):
214
- """:obj:`bool`: Determine if port reference terminals are connected, applies to lumped ports and circuit ports.
215
-
216
- True if they are connected, False otherwise.
217
- Read-Only.
218
- """
219
- return self._layout.ArePortReferenceTerminalsConnected()
220
-
221
- @property
222
- def zone_primitives(self):
223
- """:obj:`list` of :class:`Primitive <ansys.edb.primitive.Primitive>` : List of all the primitives in \
224
- :term:`zones <Zone>`.
225
-
226
- Read-Only.
227
- """
228
- return list(self._layout.GetZonePrimitives())
229
-
230
- @property
231
- def fixed_zone_primitive(self):
232
- """:class:`Primitive <ansys.edb.primitive.Primitive>` : Fixed :term:`zones <Zone>` primitive."""
233
- return list(self._layout.GetFixedZonePrimitive())
234
-
235
- @fixed_zone_primitive.setter
236
- def fixed_zone_primitive(self, value):
237
- self._layout.SetFixedZonePrimitives(value)
238
-
239
- @property
240
- def board_bend_defs(self):
241
- """:obj:`list` of :class:`BoardBendDef <ansys.edb.primitive.BoardBendDef>` : List of all the board bend \
242
- definitions in this layout.
243
-
244
- Read-Only.
245
- """
246
- return list(self._layout.GetBoardBendDefs())
247
-
248
- def synchronize_bend_manager(self):
249
- """Synchronize bend manager."""
250
- self._layout.SynchronizeBendManager()
251
-
252
- @property
253
- def layout_instance(self):
254
- """:class:`LayoutInstance <ansys.edb.layout_instance.LayoutInstance>` : Layout instance of this layout.
255
-
256
- Read-Only.
257
- """
258
- if not self._layout_instance:
259
- self._layout_instance = self._layout.GetLayoutInstance()
260
- return self._layout_instance
File without changes