pyedb 0.2.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 (128) hide show
  1. pyedb/__init__.py +17 -0
  2. pyedb/dotnet/__init__.py +0 -0
  3. pyedb/dotnet/application/Variables.py +2261 -0
  4. pyedb/dotnet/application/__init__.py +0 -0
  5. pyedb/dotnet/clr_module.py +103 -0
  6. pyedb/dotnet/edb.py +4237 -0
  7. pyedb/dotnet/edb_core/__init__.py +1 -0
  8. pyedb/dotnet/edb_core/cell/__init__.py +0 -0
  9. pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
  10. pyedb/dotnet/edb_core/cell/hierarchy/model.py +66 -0
  11. pyedb/dotnet/edb_core/components.py +2669 -0
  12. pyedb/dotnet/edb_core/configuration.py +423 -0
  13. pyedb/dotnet/edb_core/definition/__init__.py +0 -0
  14. pyedb/dotnet/edb_core/definition/component_def.py +166 -0
  15. pyedb/dotnet/edb_core/definition/component_model.py +30 -0
  16. pyedb/dotnet/edb_core/definition/definition_obj.py +18 -0
  17. pyedb/dotnet/edb_core/definition/definitions.py +12 -0
  18. pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
  19. pyedb/dotnet/edb_core/dotnet/database.py +1218 -0
  20. pyedb/dotnet/edb_core/dotnet/layout.py +238 -0
  21. pyedb/dotnet/edb_core/dotnet/primitive.py +1517 -0
  22. pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
  23. pyedb/dotnet/edb_core/edb_data/components_data.py +938 -0
  24. pyedb/dotnet/edb_core/edb_data/connectable.py +113 -0
  25. pyedb/dotnet/edb_core/edb_data/control_file.py +1268 -0
  26. pyedb/dotnet/edb_core/edb_data/design_options.py +35 -0
  27. pyedb/dotnet/edb_core/edb_data/edbvalue.py +45 -0
  28. pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +330 -0
  29. pyedb/dotnet/edb_core/edb_data/hfss_simulation_setup_data.py +1607 -0
  30. pyedb/dotnet/edb_core/edb_data/layer_data.py +576 -0
  31. pyedb/dotnet/edb_core/edb_data/nets_data.py +281 -0
  32. pyedb/dotnet/edb_core/edb_data/obj_base.py +19 -0
  33. pyedb/dotnet/edb_core/edb_data/padstacks_data.py +2080 -0
  34. pyedb/dotnet/edb_core/edb_data/ports.py +287 -0
  35. pyedb/dotnet/edb_core/edb_data/primitives_data.py +1397 -0
  36. pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +2914 -0
  37. pyedb/dotnet/edb_core/edb_data/simulation_setup.py +716 -0
  38. pyedb/dotnet/edb_core/edb_data/siwave_simulation_setup_data.py +1205 -0
  39. pyedb/dotnet/edb_core/edb_data/sources.py +514 -0
  40. pyedb/dotnet/edb_core/edb_data/terminals.py +632 -0
  41. pyedb/dotnet/edb_core/edb_data/utilities.py +148 -0
  42. pyedb/dotnet/edb_core/edb_data/variables.py +91 -0
  43. pyedb/dotnet/edb_core/general.py +181 -0
  44. pyedb/dotnet/edb_core/hfss.py +1646 -0
  45. pyedb/dotnet/edb_core/layout.py +1244 -0
  46. pyedb/dotnet/edb_core/layout_validation.py +272 -0
  47. pyedb/dotnet/edb_core/materials.py +939 -0
  48. pyedb/dotnet/edb_core/net_class.py +335 -0
  49. pyedb/dotnet/edb_core/nets.py +1215 -0
  50. pyedb/dotnet/edb_core/padstack.py +1389 -0
  51. pyedb/dotnet/edb_core/siwave.py +1427 -0
  52. pyedb/dotnet/edb_core/stackup.py +2703 -0
  53. pyedb/edb_logger.py +396 -0
  54. pyedb/generic/__init__.py +0 -0
  55. pyedb/generic/constants.py +1063 -0
  56. pyedb/generic/data_handlers.py +320 -0
  57. pyedb/generic/design_types.py +104 -0
  58. pyedb/generic/filesystem.py +150 -0
  59. pyedb/generic/general_methods.py +1535 -0
  60. pyedb/generic/plot.py +1840 -0
  61. pyedb/generic/process.py +285 -0
  62. pyedb/generic/settings.py +224 -0
  63. pyedb/ipc2581/__init__.py +0 -0
  64. pyedb/ipc2581/bom/__init__.py +0 -0
  65. pyedb/ipc2581/bom/bom.py +21 -0
  66. pyedb/ipc2581/bom/bom_item.py +32 -0
  67. pyedb/ipc2581/bom/characteristics.py +37 -0
  68. pyedb/ipc2581/bom/refdes.py +16 -0
  69. pyedb/ipc2581/content/__init__.py +0 -0
  70. pyedb/ipc2581/content/color.py +38 -0
  71. pyedb/ipc2581/content/content.py +55 -0
  72. pyedb/ipc2581/content/dictionary_color.py +29 -0
  73. pyedb/ipc2581/content/dictionary_fill.py +28 -0
  74. pyedb/ipc2581/content/dictionary_line.py +30 -0
  75. pyedb/ipc2581/content/entry_color.py +13 -0
  76. pyedb/ipc2581/content/entry_line.py +14 -0
  77. pyedb/ipc2581/content/fill.py +15 -0
  78. pyedb/ipc2581/content/layer_ref.py +10 -0
  79. pyedb/ipc2581/content/standard_geometries_dictionary.py +72 -0
  80. pyedb/ipc2581/ecad/__init__.py +0 -0
  81. pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
  82. pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +26 -0
  83. pyedb/ipc2581/ecad/cad_data/cad_data.py +37 -0
  84. pyedb/ipc2581/ecad/cad_data/component.py +41 -0
  85. pyedb/ipc2581/ecad/cad_data/drill.py +30 -0
  86. pyedb/ipc2581/ecad/cad_data/feature.py +54 -0
  87. pyedb/ipc2581/ecad/cad_data/layer.py +41 -0
  88. pyedb/ipc2581/ecad/cad_data/layer_feature.py +151 -0
  89. pyedb/ipc2581/ecad/cad_data/logical_net.py +32 -0
  90. pyedb/ipc2581/ecad/cad_data/outline.py +25 -0
  91. pyedb/ipc2581/ecad/cad_data/package.py +104 -0
  92. pyedb/ipc2581/ecad/cad_data/padstack_def.py +38 -0
  93. pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +24 -0
  94. pyedb/ipc2581/ecad/cad_data/padstack_instance.py +62 -0
  95. pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +26 -0
  96. pyedb/ipc2581/ecad/cad_data/path.py +89 -0
  97. pyedb/ipc2581/ecad/cad_data/phy_net.py +80 -0
  98. pyedb/ipc2581/ecad/cad_data/pin.py +31 -0
  99. pyedb/ipc2581/ecad/cad_data/polygon.py +169 -0
  100. pyedb/ipc2581/ecad/cad_data/profile.py +40 -0
  101. pyedb/ipc2581/ecad/cad_data/stackup.py +31 -0
  102. pyedb/ipc2581/ecad/cad_data/stackup_group.py +42 -0
  103. pyedb/ipc2581/ecad/cad_data/stackup_layer.py +21 -0
  104. pyedb/ipc2581/ecad/cad_data/step.py +275 -0
  105. pyedb/ipc2581/ecad/cad_header.py +33 -0
  106. pyedb/ipc2581/ecad/ecad.py +19 -0
  107. pyedb/ipc2581/ecad/spec.py +46 -0
  108. pyedb/ipc2581/history_record.py +37 -0
  109. pyedb/ipc2581/ipc2581.py +387 -0
  110. pyedb/ipc2581/logistic_header.py +25 -0
  111. pyedb/misc/__init__.py +0 -0
  112. pyedb/misc/aedtlib_personalib_install.py +14 -0
  113. pyedb/misc/downloads.py +322 -0
  114. pyedb/misc/misc.py +67 -0
  115. pyedb/misc/pyedb.runtimeconfig.json +13 -0
  116. pyedb/misc/siw_feature_config/__init__.py +0 -0
  117. pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
  118. pyedb/misc/siw_feature_config/emc/component_tags.py +46 -0
  119. pyedb/misc/siw_feature_config/emc/net_tags.py +37 -0
  120. pyedb/misc/siw_feature_config/emc/tag_library.py +62 -0
  121. pyedb/misc/siw_feature_config/emc/xml_generic.py +78 -0
  122. pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +179 -0
  123. pyedb/misc/utilities.py +27 -0
  124. pyedb/modeler/geometry_operators.py +2082 -0
  125. pyedb-0.2.0.dist-info/LICENSE +21 -0
  126. pyedb-0.2.0.dist-info/METADATA +208 -0
  127. pyedb-0.2.0.dist-info/RECORD +128 -0
  128. pyedb-0.2.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,238 @@
1
+ from pyedb.dotnet.edb_core.dotnet.database import NetDotNet
2
+ from pyedb.dotnet.edb_core.dotnet.primitive import cast
3
+ from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
4
+
5
+
6
+ class LayoutDotNet:
7
+ """Layout."""
8
+
9
+ def __init__(self, app):
10
+ """Initialize a new layout.
11
+
12
+ Parameters
13
+ ----------
14
+ msg : EDBObjMessage
15
+ """
16
+ self._app = app
17
+ self._cell = app._active_cell
18
+ self._edb_api = app._edb
19
+ self._layout = self._cell.GetLayout()
20
+ self._layout_instance = None
21
+
22
+ @property
23
+ def cell(self):
24
+ """:class:`Cell <ansys.edb.layout.Cell>`: Owning cell for this layout.
25
+
26
+ Read-Only.
27
+ """
28
+ return self._cell
29
+
30
+ @property
31
+ def layer_collection(self):
32
+ """:class:`LayerCollection <ansys.edb.layer.LayerCollection>` : Layer collection of this layout."""
33
+ return self._layout.GetLayerCollection()
34
+
35
+ @layer_collection.setter
36
+ def layer_collection(self, layer_collection):
37
+ """Set layer collection."""
38
+ self._layout.SetLayerCollection(layer_collection)
39
+
40
+ @property
41
+ def primitives(self):
42
+ """List of primitives.Read-Only.
43
+
44
+ Returns
45
+ -------
46
+ list of :class:`dotnet.edb_core.dotnet.primitive.PrimitiveDotNet` cast objects.
47
+ """
48
+ return [cast(self._app, i) for i in list(self._layout.Primitives)]
49
+
50
+ @property
51
+ def padstack_instances(self):
52
+ """:obj:`list` of :class:`PadstackInstance <ansys.edb.primitive.PadstackInstance>` : List of all padstack \
53
+ instances in this layout.
54
+
55
+ Read-Only.
56
+ """
57
+ return list(self._layout.PadstackInstances)
58
+
59
+ @property
60
+ def terminals(self):
61
+ """:obj:`list` of :class:`Terminal <ansys.edb.terminal.Terminal>` : List of all the terminals in this layout.
62
+
63
+ Read-Only.
64
+ """
65
+ return list(self._layout.Terminals)
66
+
67
+ @property
68
+ def cell_instances(self):
69
+ """:obj:`list` of :class:`CellInstance <ansys.edb.hierarchy.CellInstances>` : List of the cell instances in \
70
+ this layout.
71
+
72
+ Read-Only.
73
+ """
74
+ return list(self._layout.CellInstances)
75
+
76
+ @property
77
+ def nets(self):
78
+ """:obj:`list` of :class:`Net <ansys.edb.net.Net>` : List of all the nets in this layout.
79
+
80
+ Read-Only.
81
+ """
82
+ return [NetDotNet(self._app, i) for i in self._layout.Nets]
83
+
84
+ @property
85
+ def groups(self):
86
+ """:obj:`list` of :class:`Group <ansys.edb.hierarchy.Group>` : List of all the groups in this layout.
87
+
88
+ Read-Only.
89
+ """
90
+ return list(self._layout.Groups)
91
+
92
+ @property
93
+ def net_classes(self):
94
+ """:obj:`list` of :class:`NetClass <ansys.edb.net.NetClass>` : List of all the netclasses in this layout.
95
+
96
+ Read-Only.
97
+ """
98
+ return list(self._layout.NetClasses)
99
+
100
+ @property
101
+ def differential_pairs(self):
102
+ """:obj:`list` of :class:`DifferentialPair <ansys.edb.net.DifferentialPair>` : List of all the differential \
103
+ pairs in this layout.
104
+
105
+ Read-Only.
106
+ """
107
+ return list(self._layout.DifferentialPairs)
108
+
109
+ @property
110
+ def pin_groups(self):
111
+ """:obj:`list` of :class:`PinGroup <ansys.edb.hierarchy.PinGroup>` : List of all the pin groups in this \
112
+ layout.
113
+
114
+ Read-Only.
115
+ """
116
+ return list(self._layout.PinGroups)
117
+
118
+ @property
119
+ def voltage_regulators(self):
120
+ """:obj:`list` of :class:`VoltageRegulator <ansys.edb.hierarchy.VoltageRegulator>` : List of all the voltage \
121
+ regulators in this layout.
122
+
123
+ Read-Only.
124
+ """
125
+ return list(self._layout.VoltageRegulators)
126
+
127
+ @property
128
+ def extended_nets(self):
129
+ """
130
+ Get the list of extended nets in the layout. Read-Only.
131
+
132
+ Returns
133
+ -------
134
+ List[:class:`ExtendedNet <ansys.edb.net.ExtendedNet>`]
135
+ A list of extended nets.
136
+
137
+ """
138
+ return list(self._layout.ExtendedNets)
139
+
140
+ def expanded_extent(self, nets, extent, expansion_factor, expansion_unitless, use_round_corner, num_increments):
141
+ """Get an expanded polygon for the Nets collection.
142
+
143
+ Parameters
144
+ ----------
145
+ nets : list[:class:`Net <ansys.edb.net.Net>`]
146
+ A list of nets.
147
+ extent : :class:`ExtentType <ansys.edb.geometry.ExtentType>`
148
+ Geometry extent type for expansion.
149
+ expansion_factor : float
150
+ Expansion factor for the polygon union. No expansion occurs if the `expansion_factor` is less than or \
151
+ equal to 0.
152
+ expansion_unitless : bool
153
+ When unitless, the distance by which the extent expands is the factor multiplied by the longer dimension\
154
+ (X or Y distance) of the expanded object/net.
155
+ use_round_corner : bool
156
+ Whether to use round or sharp corners.
157
+ For round corners, this returns a bounding box if its area is within 10% of the rounded expansion's area.
158
+ num_increments : int
159
+ Number of iterations desired to reach the full expansion.
160
+
161
+ Returns
162
+ -------
163
+ :class:`PolygonData <ansys.edb.geometry.PolygonData>`
164
+
165
+ Notes
166
+ -----
167
+ Method returns the expansion of the contour, so any voids within expanded objects are ignored.
168
+ """
169
+ return self._layout.GetExpandedExtentFromNets(
170
+ convert_py_list_to_net_list(nets),
171
+ extent,
172
+ expansion_factor,
173
+ expansion_unitless,
174
+ use_round_corner,
175
+ num_increments,
176
+ )
177
+
178
+ def convert_primitives_to_vias(self, primitives, is_pins=False):
179
+ """Convert a list of primitives into vias or pins.
180
+
181
+ Parameters
182
+ ----------
183
+ primitives : list[:class:`Primitive <ansys.edb.primitive.Primitive>`]
184
+ List of primitives to convert.
185
+ is_pins : bool, optional
186
+ True for pins, false for vias (default).
187
+ """
188
+ self._layout.ConvertPrimitivesToVias(convert_py_list_to_net_list(primitives), is_pins)
189
+
190
+ @property
191
+ def port_reference_terminals_connected(self):
192
+ """:obj:`bool`: Determine if port reference terminals are connected, applies to lumped ports and circuit ports.
193
+
194
+ True if they are connected, False otherwise.
195
+ Read-Only.
196
+ """
197
+ return self._layout.ArePortReferenceTerminalsConnected()
198
+
199
+ @property
200
+ def zone_primitives(self):
201
+ """:obj:`list` of :class:`Primitive <ansys.edb.primitive.Primitive>` : List of all the primitives in \
202
+ :term:`zones <Zone>`.
203
+
204
+ Read-Only.
205
+ """
206
+ return list(self._layout.GetZonePrimitives())
207
+
208
+ @property
209
+ def fixed_zone_primitive(self):
210
+ """:class:`Primitive <ansys.edb.primitive.Primitive>` : Fixed :term:`zones <Zone>` primitive."""
211
+ return list(self._layout.GetFixedZonePrimitive())
212
+
213
+ @fixed_zone_primitive.setter
214
+ def fixed_zone_primitive(self, value):
215
+ self._layout.SetFixedZonePrimitives(value)
216
+
217
+ @property
218
+ def board_bend_defs(self):
219
+ """:obj:`list` of :class:`BoardBendDef <ansys.edb.primitive.BoardBendDef>` : List of all the board bend \
220
+ definitions in this layout.
221
+
222
+ Read-Only.
223
+ """
224
+ return list(self._layout.GetBoardBendDefs())
225
+
226
+ def synchronize_bend_manager(self):
227
+ """Synchronize bend manager."""
228
+ self._layout.SynchronizeBendManager()
229
+
230
+ @property
231
+ def layout_instance(self):
232
+ """:class:`LayoutInstance <ansys.edb.layout_instance.LayoutInstance>` : Layout instance of this layout.
233
+
234
+ Read-Only.
235
+ """
236
+ if not self._layout_instance:
237
+ self._layout_instance = self._layout.GetLayoutInstance()
238
+ return self._layout_instance