pyedb 0.38.0__py3-none-any.whl → 0.39.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 (205) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/common/nets.py +53 -139
  3. pyedb/configuration/cfg_components.py +1 -1
  4. pyedb/configuration/cfg_general.py +4 -2
  5. pyedb/configuration/cfg_modeler.py +1 -1
  6. pyedb/configuration/cfg_package_definition.py +1 -1
  7. pyedb/configuration/cfg_padstacks.py +1 -1
  8. pyedb/configuration/cfg_ports_sources.py +56 -23
  9. pyedb/configuration/configuration.py +18 -1
  10. pyedb/dotnet/{application → database}/Variables.py +21 -21
  11. pyedb/dotnet/{edb_core → database}/cell/connectable.py +5 -5
  12. pyedb/dotnet/{edb_core → database}/cell/hierarchy/component.py +11 -11
  13. pyedb/dotnet/{edb_core → database}/cell/hierarchy/hierarchy_obj.py +1 -1
  14. pyedb/dotnet/{edb_core → database}/cell/hierarchy/model.py +1 -1
  15. pyedb/dotnet/{edb_core → database}/cell/layout.py +17 -17
  16. pyedb/dotnet/{edb_core → database}/cell/layout_obj.py +3 -3
  17. pyedb/dotnet/{edb_core → database}/cell/primitive/bondwire.py +1 -1
  18. pyedb/dotnet/{edb_core → database}/cell/primitive/path.py +4 -4
  19. pyedb/dotnet/{edb_core → database}/cell/primitive/primitive.py +14 -14
  20. pyedb/dotnet/{edb_core → database}/cell/terminal/bundle_terminal.py +2 -2
  21. pyedb/dotnet/{edb_core → database}/cell/terminal/edge_terminal.py +4 -4
  22. pyedb/dotnet/{edb_core → database}/cell/terminal/padstack_instance_terminal.py +2 -2
  23. pyedb/dotnet/{edb_core → database}/cell/terminal/pingroup_terminal.py +2 -2
  24. pyedb/dotnet/{edb_core → database}/cell/terminal/point_terminal.py +2 -2
  25. pyedb/dotnet/{edb_core → database}/cell/terminal/terminal.py +11 -11
  26. pyedb/dotnet/{edb_core → database}/cell/voltage_regulator.py +2 -2
  27. pyedb/dotnet/{edb_core → database}/components.py +101 -124
  28. pyedb/dotnet/{edb_core → database}/definition/component_def.py +5 -5
  29. pyedb/dotnet/{edb_core → database}/definition/component_model.py +1 -1
  30. pyedb/dotnet/{edb_core → database}/definition/definition_obj.py +1 -1
  31. pyedb/dotnet/{edb_core → database}/definition/definitions.py +2 -2
  32. pyedb/dotnet/{edb_core → database}/definition/package_def.py +4 -4
  33. pyedb/dotnet/{edb_core → database}/dotnet/database.py +8 -8
  34. pyedb/dotnet/{edb_core → database}/dotnet/primitive.py +9 -9
  35. pyedb/dotnet/{edb_core → database}/edb_data/control_file.py +12 -12
  36. pyedb/dotnet/{edb_core → database}/edb_data/hfss_extent_info.py +7 -7
  37. pyedb/dotnet/{edb_core → database}/edb_data/nets_data.py +10 -13
  38. pyedb/dotnet/{edb_core → database}/edb_data/padstacks_data.py +16 -16
  39. pyedb/dotnet/{edb_core → database}/edb_data/ports.py +4 -4
  40. pyedb/dotnet/{edb_core → database}/edb_data/primitives_data.py +5 -5
  41. pyedb/dotnet/{edb_core → database}/edb_data/raptor_x_simulation_setup_data.py +4 -4
  42. pyedb/dotnet/{edb_core → database}/edb_data/simulation_configuration.py +10 -10
  43. pyedb/dotnet/{edb_core → database}/edb_data/sources.py +4 -4
  44. pyedb/dotnet/{edb_core → database}/edb_data/variables.py +1 -1
  45. pyedb/dotnet/{edb_core → database}/geometry/polygon_data.py +4 -4
  46. pyedb/dotnet/{edb_core → database}/hfss.py +8 -8
  47. pyedb/dotnet/{edb_core → database}/layout_obj_instance.py +1 -1
  48. pyedb/dotnet/{edb_core → database}/layout_validation.py +2 -2
  49. pyedb/dotnet/{edb_core → database}/materials.py +23 -8
  50. pyedb/dotnet/{edb_core → database}/modeler.py +27 -27
  51. pyedb/dotnet/{edb_core → database}/net_class.py +8 -8
  52. pyedb/dotnet/{edb_core → database}/nets.py +12 -12
  53. pyedb/dotnet/{edb_core → database}/padstack.py +15 -15
  54. pyedb/dotnet/{edb_core → database}/sim_setup_data/data/mesh_operation.py +1 -1
  55. pyedb/dotnet/{edb_core → database}/sim_setup_data/data/settings.py +3 -3
  56. pyedb/dotnet/{edb_core → database}/sim_setup_data/data/sim_setup_info.py +2 -2
  57. pyedb/dotnet/{edb_core → database}/sim_setup_data/data/simulation_settings.py +1 -1
  58. pyedb/dotnet/{edb_core → database}/sim_setup_data/data/siw_dc_ir_settings.py +1 -1
  59. pyedb/dotnet/{edb_core → database}/sim_setup_data/data/sweep_data.py +1 -1
  60. pyedb/dotnet/{edb_core → database}/siwave.py +10 -10
  61. pyedb/dotnet/{edb_core → database}/stackup.py +12 -12
  62. pyedb/dotnet/{edb_core → database}/utilities/hfss_simulation_setup.py +15 -15
  63. pyedb/dotnet/{edb_core → database}/utilities/obj_base.py +1 -1
  64. pyedb/dotnet/{edb_core → database}/utilities/simulation_setup.py +3 -3
  65. pyedb/dotnet/{edb_core → database}/utilities/siwave_simulation_setup.py +6 -6
  66. pyedb/dotnet/edb.py +117 -112
  67. pyedb/generic/design_types.py +26 -19
  68. pyedb/generic/general_methods.py +1 -1
  69. pyedb/generic/plot.py +0 -2
  70. pyedb/grpc/database/__init__.py +1 -0
  71. pyedb/grpc/database/components.py +2354 -0
  72. pyedb/grpc/database/control_file.py +1277 -0
  73. pyedb/grpc/database/definition/component_def.py +218 -0
  74. pyedb/grpc/database/definition/component_model.py +39 -0
  75. pyedb/grpc/database/definition/component_pin.py +32 -0
  76. pyedb/grpc/database/definition/materials.py +1207 -0
  77. pyedb/grpc/database/definition/n_port_component_model.py +34 -0
  78. pyedb/grpc/database/definition/package_def.py +227 -0
  79. pyedb/grpc/database/definition/padstack_def.py +842 -0
  80. pyedb/grpc/database/definitions.py +70 -0
  81. pyedb/grpc/database/general.py +43 -0
  82. pyedb/grpc/database/geometry/__init__.py +0 -0
  83. pyedb/grpc/database/geometry/arc_data.py +93 -0
  84. pyedb/grpc/database/geometry/point_3d_data.py +79 -0
  85. pyedb/grpc/database/geometry/point_data.py +30 -0
  86. pyedb/grpc/database/geometry/polygon_data.py +133 -0
  87. pyedb/grpc/database/hfss.py +1279 -0
  88. pyedb/grpc/database/hierarchy/__init__.py +0 -0
  89. pyedb/grpc/database/hierarchy/component.py +1301 -0
  90. pyedb/grpc/database/hierarchy/model.py +31 -0
  91. pyedb/grpc/database/hierarchy/netlist_model.py +30 -0
  92. pyedb/grpc/database/hierarchy/pin_pair_model.py +128 -0
  93. pyedb/grpc/database/hierarchy/pingroup.py +245 -0
  94. pyedb/grpc/database/hierarchy/s_parameter_model.py +33 -0
  95. pyedb/grpc/database/hierarchy/spice_model.py +48 -0
  96. pyedb/grpc/database/layers/__init__.py +0 -0
  97. pyedb/grpc/database/layers/layer.py +57 -0
  98. pyedb/grpc/database/layers/stackup_layer.py +410 -0
  99. pyedb/grpc/database/layout/__init__.py +0 -0
  100. pyedb/grpc/database/layout/cell.py +30 -0
  101. pyedb/grpc/database/layout/layout.py +196 -0
  102. pyedb/grpc/database/layout/voltage_regulator.py +149 -0
  103. pyedb/grpc/database/layout_validation.py +319 -0
  104. pyedb/grpc/database/modeler.py +1468 -0
  105. pyedb/grpc/database/net/__init__.py +0 -0
  106. pyedb/grpc/database/net/differential_pair.py +138 -0
  107. pyedb/grpc/database/net/extended_net.py +340 -0
  108. pyedb/grpc/database/net/net.py +198 -0
  109. pyedb/grpc/database/net/net_class.py +93 -0
  110. pyedb/grpc/database/nets.py +633 -0
  111. pyedb/grpc/database/padstacks.py +1500 -0
  112. pyedb/grpc/database/ports/__init__.py +0 -0
  113. pyedb/grpc/database/ports/ports.py +396 -0
  114. pyedb/grpc/database/primitive/__init__.py +3 -0
  115. pyedb/grpc/database/primitive/bondwire.py +181 -0
  116. pyedb/grpc/database/primitive/circle.py +75 -0
  117. pyedb/grpc/database/primitive/padstack_instance.py +1116 -0
  118. pyedb/grpc/database/primitive/path.py +346 -0
  119. pyedb/grpc/database/primitive/polygon.py +276 -0
  120. pyedb/grpc/database/primitive/primitive.py +739 -0
  121. pyedb/grpc/database/primitive/rectangle.py +146 -0
  122. pyedb/grpc/database/simulation_setup/__init__.py +0 -0
  123. pyedb/grpc/database/simulation_setup/adaptive_frequency.py +33 -0
  124. pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py +32 -0
  125. pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +59 -0
  126. pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py +35 -0
  127. pyedb/grpc/database/simulation_setup/hfss_general_settings.py +61 -0
  128. pyedb/grpc/database/simulation_setup/hfss_settings_options.py +78 -0
  129. pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +118 -0
  130. pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +355 -0
  131. pyedb/grpc/database/simulation_setup/hfss_solver_settings.py +34 -0
  132. pyedb/grpc/database/simulation_setup/mesh_operation.py +34 -0
  133. pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py +34 -0
  134. pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py +33 -0
  135. pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +64 -0
  136. pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +125 -0
  137. pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py +34 -0
  138. pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +119 -0
  139. pyedb/grpc/database/simulation_setup/sweep_data.py +32 -0
  140. pyedb/grpc/database/siwave.py +1023 -0
  141. pyedb/grpc/database/source_excitations.py +2572 -0
  142. pyedb/grpc/database/stackup.py +2574 -0
  143. pyedb/grpc/database/terminal/__init__.py +0 -0
  144. pyedb/grpc/database/terminal/bundle_terminal.py +218 -0
  145. pyedb/grpc/database/terminal/edge_terminal.py +51 -0
  146. pyedb/grpc/database/terminal/padstack_instance_terminal.py +171 -0
  147. pyedb/grpc/database/terminal/pingroup_terminal.py +162 -0
  148. pyedb/grpc/database/terminal/point_terminal.py +99 -0
  149. pyedb/grpc/database/terminal/terminal.py +470 -0
  150. pyedb/grpc/database/utility/__init__.py +3 -0
  151. pyedb/grpc/database/utility/constants.py +25 -0
  152. pyedb/grpc/database/utility/heat_sink.py +124 -0
  153. pyedb/grpc/database/utility/hfss_extent_info.py +448 -0
  154. pyedb/grpc/database/utility/layout_statistics.py +277 -0
  155. pyedb/grpc/database/utility/rlc.py +80 -0
  156. pyedb/grpc/database/utility/simulation_configuration.py +3305 -0
  157. pyedb/grpc/database/utility/sources.py +388 -0
  158. pyedb/grpc/database/utility/sweep_data_distribution.py +83 -0
  159. pyedb/grpc/database/utility/xml_control_file.py +1277 -0
  160. pyedb/grpc/edb.py +4151 -0
  161. pyedb/grpc/edb_init.py +481 -0
  162. pyedb/grpc/rpc_session.py +177 -0
  163. pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +3 -2
  164. pyedb/ipc2581/ecad/cad_data/feature.py +4 -3
  165. pyedb/ipc2581/ecad/cad_data/layer_feature.py +32 -20
  166. pyedb/ipc2581/ecad/cad_data/outline.py +3 -2
  167. pyedb/ipc2581/ecad/cad_data/package.py +4 -3
  168. pyedb/ipc2581/ecad/cad_data/path.py +82 -31
  169. pyedb/ipc2581/ecad/cad_data/polygon.py +122 -60
  170. pyedb/ipc2581/ecad/cad_data/profile.py +13 -12
  171. pyedb/ipc2581/ecad/cad_data/step.py +53 -21
  172. pyedb/ipc2581/ipc2581.py +47 -49
  173. pyedb/modeler/geometry_operators.py +1 -1
  174. {pyedb-0.38.0.dist-info → pyedb-0.39.0.dist-info}/METADATA +5 -2
  175. pyedb-0.39.0.dist-info/RECORD +288 -0
  176. pyedb-0.38.0.dist-info/RECORD +0 -195
  177. /pyedb/dotnet/{edb_core → database}/__init__.py +0 -0
  178. /pyedb/dotnet/{application → database/cell}/__init__.py +0 -0
  179. /pyedb/dotnet/{edb_core/cell → database/cell/hierarchy}/__init__.py +0 -0
  180. /pyedb/dotnet/{edb_core → database}/cell/hierarchy/netlist_model.py +0 -0
  181. /pyedb/dotnet/{edb_core → database}/cell/hierarchy/pin_pair_model.py +0 -0
  182. /pyedb/dotnet/{edb_core → database}/cell/hierarchy/s_parameter_model.py +0 -0
  183. /pyedb/dotnet/{edb_core → database}/cell/hierarchy/spice_model.py +0 -0
  184. /pyedb/dotnet/{edb_core → database}/cell/primitive/__init__.py +0 -0
  185. /pyedb/dotnet/{edb_core/cell/hierarchy → database/cell/terminal}/__init__.py +0 -0
  186. /pyedb/dotnet/{edb_core/cell/terminal → database/definition}/__init__.py +0 -0
  187. /pyedb/dotnet/{edb_core/definition → database/dotnet}/__init__.py +0 -0
  188. /pyedb/dotnet/{edb_core/dotnet → database/edb_data}/__init__.py +0 -0
  189. /pyedb/dotnet/{edb_core → database}/edb_data/design_options.py +0 -0
  190. /pyedb/dotnet/{edb_core → database}/edb_data/edbvalue.py +0 -0
  191. /pyedb/dotnet/{edb_core → database}/edb_data/layer_data.py +0 -0
  192. /pyedb/dotnet/{edb_core → database}/edb_data/utilities.py +0 -0
  193. /pyedb/dotnet/{edb_core → database}/general.py +0 -0
  194. /pyedb/dotnet/{edb_core/edb_data → database/geometry}/__init__.py +0 -0
  195. /pyedb/dotnet/{edb_core → database}/geometry/point_data.py +0 -0
  196. /pyedb/dotnet/{edb_core → database}/sim_setup_data/__init__.py +0 -0
  197. /pyedb/dotnet/{edb_core → database}/sim_setup_data/data/__init__.py +0 -0
  198. /pyedb/dotnet/{edb_core → database}/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  199. /pyedb/dotnet/{edb_core/geometry → database/sim_setup_data/io}/__init__.py +0 -0
  200. /pyedb/dotnet/{edb_core → database}/sim_setup_data/io/siwave.py +0 -0
  201. /pyedb/dotnet/{edb_core → database}/utilities/__init__.py +0 -0
  202. /pyedb/dotnet/{edb_core → database}/utilities/heatsink.py +0 -0
  203. /pyedb/{dotnet/edb_core/sim_setup_data/io → grpc/database/definition}/__init__.py +0 -0
  204. {pyedb-0.38.0.dist-info → pyedb-0.39.0.dist-info}/LICENSE +0 -0
  205. {pyedb-0.38.0.dist-info → pyedb-0.39.0.dist-info}/WHEEL +0 -0
@@ -89,11 +89,21 @@ class Step(object):
89
89
  net_name = net.name
90
90
  logical_net = LogicalNet()
91
91
  logical_net.name = net_name
92
- net_pins = list(net._edb_object.PadstackInstances)
92
+ if not self._pedb.grpc:
93
+ net_pins = list(net._edb_object.PadstackInstances)
94
+ else:
95
+ net_pins = net.padstack_instances
93
96
  for pin in net_pins:
94
97
  new_pin_ref = logical_net.get_pin_ref_def()
95
- new_pin_ref.pin = pin.GetName()
96
- new_pin_ref.component_ref = pin.GetComponent().GetName()
98
+ if not self._pedb.grpc:
99
+ new_pin_ref.pin = pin.GetName()
100
+ new_pin_ref.component_ref = pin.GetComponent().GetName()
101
+ else:
102
+ new_pin_ref.pin = pin.name
103
+ if pin.component:
104
+ new_pin_ref.component_ref = pin.component.name
105
+ else:
106
+ new_pin_ref.component_ref = ""
97
107
  logical_net.pin_ref.append(new_pin_ref)
98
108
  self.logical_nets.append(logical_net)
99
109
 
@@ -139,16 +149,21 @@ class Step(object):
139
149
  # adding component add package in Step
140
150
  if component:
141
151
  if not component.part_name in self._packages:
142
- package = Package(self._ipc)
152
+ package = Package(self._ipc, self._pedb)
143
153
  package.add_component_outline(component)
144
154
  package.name = component.part_name
145
155
  package.height = ""
146
156
  package.type = component.type
147
157
  pin_number = 0
148
158
  for _, pin in component.pins.items():
149
- geometry_type, pad_parameters, pos_x, pos_y, rot = self._pedb.padstacks.get_pad_parameters(
150
- pin._edb_padstackinstance, component.placement_layer, 0
151
- )
159
+ if not self._pedb.grpc:
160
+ geometry_type, pad_parameters, pos_x, pos_y, rot = self._pedb.padstacks.get_pad_parameters(
161
+ pin._edb_padstackinstance, component.placement_layer, 0
162
+ )
163
+ else:
164
+ geometry_type, pad_parameters, pos_x, pos_y, rot = self._pedb.padstacks.get_pad_parameters(
165
+ pin, component.placement_layer, 0
166
+ )
152
167
  if pad_parameters:
153
168
  position = pin._position if pin._position else pin.position
154
169
  pin_pos_x = self._ipc.from_meter_to_units(position[0], self.units)
@@ -173,9 +188,9 @@ class Step(object):
173
188
  ipc_component = Component()
174
189
  ipc_component.type = component.type
175
190
  try:
176
- ipc_component.value = component.value
191
+ ipc_component.value = str(component.value)
177
192
  except:
178
- pass
193
+ self._pedb.logger.error(f"IPC export, failed loading component {component.refdes} value.")
179
194
  ipc_component.refdes = component.refdes
180
195
  center = component.center
181
196
  ipc_component.location = [
@@ -193,8 +208,12 @@ class Step(object):
193
208
  stop_layer,
194
209
  ): # pragma no cover
195
210
  started = False
196
- start_layer_name = start_layer.GetName()
197
- stop_layer_name = stop_layer.GetName()
211
+ if not self._pedb.grpc:
212
+ start_layer_name = start_layer.GetName()
213
+ stop_layer_name = stop_layer.GetName()
214
+ else:
215
+ start_layer_name = start_layer.name
216
+ stop_layer_name = stop_layer.name
198
217
  layer_list = []
199
218
  for layer_name in self._ipc.layers_name:
200
219
  if started:
@@ -215,7 +234,7 @@ class Step(object):
215
234
 
216
235
  def add_layer_feature(self, layer, polys): # pragma no cover
217
236
  layer_name = layer.name
218
- layer_feature = LayerFeature(self._ipc)
237
+ layer_feature = LayerFeature(self._ipc, self._pedb)
219
238
  layer_feature.layer_name = layer_name
220
239
  layer_feature.color = layer.color
221
240
 
@@ -225,7 +244,7 @@ class Step(object):
225
244
  self._ipc.ecad.cad_data.cad_data_step.layer_features.append(layer_feature)
226
245
 
227
246
  def add_profile(self, poly): # pragma no cover
228
- profile = LayerFeature(self._ipc)
247
+ profile = LayerFeature(self._ipc, self._pedb)
229
248
  profile.layer_name = "profile"
230
249
  if poly:
231
250
  if not poly.is_void:
@@ -235,22 +254,32 @@ class Step(object):
235
254
  def add_padstack_instances(self, padstack_instances, padstack_defs): # pragma no cover
236
255
  top_bottom_layers = self._ipc.top_bottom_layers
237
256
  layers = {j.layer_name: j for j in self._ipc.ecad.cad_data.cad_data_step.layer_features}
238
-
257
+ layer_colors = {i: j.color for i, j in self._ipc._pedb.stackup.layers.items()}
239
258
  for padstack_instance in padstack_instances:
240
- _, start_layer, stop_layer = padstack_instance._edb_padstackinstance.GetLayerRange()
259
+ if not self._pedb.grpc:
260
+ _, start_layer, stop_layer = padstack_instance._edb_padstackinstance.GetLayerRange()
261
+ else:
262
+ start_layer, stop_layer = padstack_instance.get_layer_range()
241
263
  for layer_name in self.layer_ranges(start_layer, stop_layer):
242
264
  if layer_name not in layers:
243
265
  layer_feature = LayerFeature(self._ipc)
244
266
  layer_feature.layer_name = layer_name
245
- layer_feature.color = self._ipc._pedb.stackup[layer_name].color
267
+ # layer_feature.color = self._ipc._pedb.stackup[layer_name].color
268
+ layer_feature.color = layer_colors[layer_name]
246
269
  self._ipc.ecad.cad_data.cad_data_step.layer_features.append(layer_feature)
247
270
  layers[layer_name] = self._ipc.ecad.cad_data.cad_data_step.layer_features[-1]
248
271
  pdef_name = (
249
- padstack_instance._pdef.name if padstack_instance._pdef else padstack_instance.padstack_definition
272
+ padstack_instance._pdef if padstack_instance._pdef else padstack_instance.padstack_definition
250
273
  )
251
274
  if pdef_name in padstack_defs:
252
275
  padstack_def = padstack_defs[pdef_name]
253
- comp_name = padstack_instance._edb_object.GetComponent().GetName()
276
+ if not self._pedb.grpc:
277
+ comp_name = padstack_instance._edb_object.GetComponent().GetName()
278
+ else:
279
+ if padstack_instance.component:
280
+ comp_name = padstack_instance.component.name
281
+ else:
282
+ comp_name = ""
254
283
  if padstack_instance.is_pin and comp_name:
255
284
  component_inst = self._pedb.components.instances[comp_name]
256
285
  layers[layer_name].add_component_padstack_instance_feature(
@@ -261,15 +290,18 @@ class Step(object):
261
290
 
262
291
  def add_drill_layer_feature(self, via_list=None, layer_feature_name=""): # pragma no cover
263
292
  if via_list:
264
- drill_layer_feature = LayerFeature(self._ipc)
293
+ drill_layer_feature = LayerFeature(self._ipc, self._pedb.grpc)
265
294
  drill_layer_feature.is_drill_feature = True
266
295
  drill_layer_feature.layer_name = layer_feature_name
267
296
  for via in via_list:
268
297
  try:
269
- via_diameter = via.pin.GetPadstackDef().GetData().GetHoleParameters()[2][0]
298
+ if not self._pedb.grpc:
299
+ via_diameter = via.pin.GetPadstackDef().GetData().GetHoleParameters()[2][0]
300
+ else:
301
+ via_diameter = via.definition.hole_diameter
270
302
  drill_layer_feature.add_drill_feature(via, via_diameter)
271
303
  except:
272
- pass
304
+ self._pedb.logger.warning(f"Failed adding ipc drill on via {via.name}")
273
305
  self.layer_features.append(drill_layer_feature)
274
306
 
275
307
  def write_xml(self, cad_data): # pragma no cover
pyedb/ipc2581/ipc2581.py CHANGED
@@ -73,9 +73,14 @@ class Ipc2581(object):
73
73
  padstack_def = PadstackDef()
74
74
  padstack_def.name = padstack_name
75
75
  padstack_def.padstack_hole_def.name = padstack_name
76
- if padstackdef.hole_properties:
76
+ if not self._pedb.grpc:
77
+ if padstackdef.hole_properties:
78
+ padstack_def.padstack_hole_def.diameter = self.from_meter_to_units(
79
+ padstackdef.hole_properties[0], self.units
80
+ )
81
+ else:
77
82
  padstack_def.padstack_hole_def.diameter = self.from_meter_to_units(
78
- padstackdef.hole_properties[0], self.units
83
+ padstackdef.hole_diameter, self.units
79
84
  )
80
85
  for layer, pad in padstackdef.pad_by_layer.items():
81
86
  if pad.parameters_values:
@@ -124,7 +129,7 @@ class Ipc2581(object):
124
129
  primitive_ref = "Default"
125
130
  padstack_def.add_padstack_pad_def(layer=layer, pad_use="REGULAR", primitive_ref=primitive_ref)
126
131
  for layer, antipad in padstackdef.antipad_by_layer.items():
127
- if antipad.parameters_values:
132
+ if antipad:
128
133
  if antipad.geometry_type == 1:
129
134
  primitive_ref = "CIRCLE_{}".format(
130
135
  self.from_meter_to_units(antipad.parameters_values[0], self.units)
@@ -169,7 +174,7 @@ class Ipc2581(object):
169
174
  primitive_ref = "Default"
170
175
  padstack_def.add_padstack_pad_def(layer=layer, pad_use="ANTIPAD", primitive_ref=primitive_ref)
171
176
  for layer, thermalpad in padstackdef.thermalpad_by_layer.items():
172
- if thermalpad.parameters_values:
177
+ if thermalpad:
173
178
  if thermalpad.geometry_type == 1:
174
179
  primitive_ref = "CIRCLE_{}".format(
175
180
  self.from_meter_to_units(thermalpad.parameters_values[0], self.units)
@@ -240,7 +245,10 @@ class Ipc2581(object):
240
245
  self.bom.bom_items.append(bom_item)
241
246
 
242
247
  def add_layers_info(self):
243
- self.design_name = self._pedb.layout.cell.GetName()
248
+ if not self._pedb.grpc:
249
+ self.design_name = self._pedb.layout.cell.GetName()
250
+ else:
251
+ self.design_name = self._pedb.layout.cell.name
244
252
  self.ecad.design_name = self.design_name
245
253
  self.ecad.cad_header.units = self.units
246
254
  self.ecad.cad_data.stackup.total_thickness = self.from_meter_to_units(
@@ -264,31 +272,20 @@ class Ipc2581(object):
264
272
  loss_tg = 0
265
273
  embedded = "NOT_EMBEDDED"
266
274
  # try:
267
- material_name = self._pedb.stackup.layers[layer_name]._edb_layer.GetMaterial()
268
- edb_material = self._pedb.edb_api.definition.MaterialDef.FindByName(self._pedb.active_db, material_name)
275
+ material_name = self._pedb.stackup.layers[layer_name].material
276
+ material = self._pedb.materials[material_name]
269
277
  material_type = "CONDUCTOR"
270
278
  if self._pedb.stackup.layers[layer_name].type == "dielectric":
271
279
  layer_type = "DIELPREG"
272
280
  material_type = "DIELECTRIC"
273
-
274
- permitivity = edb_material.GetProperty(self._pedb.edb_api.definition.MaterialPropertyId.Permittivity)[1]
275
- if not isinstance(permitivity, float):
276
- permitivity = permitivity.ToDouble()
277
- loss_tg = edb_material.GetProperty(
278
- self._pedb.edb_api.definition.MaterialPropertyId.DielectricLossTangent
279
- )[1]
280
- if not isinstance(loss_tg, float):
281
- loss_tg = loss_tg.ToDouble()
281
+ permitivity = material.permittivity
282
+ loss_tg = material.loss_tangent
282
283
  conductivity = 0
283
284
  if layer_type == "CONDUCTOR":
284
- conductivity = edb_material.GetProperty(self._pedb.edb_api.definition.MaterialPropertyId.Conductivity)[
285
- 1
286
- ]
287
- if not isinstance(conductivity, float):
288
- conductivity = conductivity.ToDouble()
285
+ conductivity = material.conductivity
289
286
  self.ecad.cad_header.add_spec(
290
287
  name=layer_name,
291
- material=self._pedb.stackup.layers[layer_name]._edb_layer.GetMaterial(),
288
+ material=material_name,
292
289
  layer_type=material_type,
293
290
  conductivity=str(conductivity),
294
291
  dielectric_constant=str(permitivity),
@@ -351,35 +348,36 @@ class Ipc2581(object):
351
348
  self.ecad.cad_data.cad_data_step.add_drill_layer_feature(via_list, "DRILL_1-{}".format(l1))
352
349
 
353
350
  def from_meter_to_units(self, value, units):
354
- if isinstance(value, str):
355
- value = float(value)
356
- if isinstance(value, list):
357
- returned_list = []
358
- for val in value:
359
- if isinstance(val, str):
360
- val = float(val)
361
- if units.lower() == "mm":
362
- returned_list.append(round(val * 1000, 4))
363
- if units.lower() == "um":
364
- returned_list.append(round(val * 1e6, 4))
351
+ if value:
352
+ if isinstance(value, str):
353
+ value = float(value)
354
+ if isinstance(value, list):
355
+ returned_list = []
356
+ for val in value:
357
+ if isinstance(val, str):
358
+ val = float(val)
359
+ if units.lower() == "mm":
360
+ returned_list.append(round(val * 1000, 4))
361
+ if units.lower() == "um":
362
+ returned_list.append(round(val * 1e6, 4))
363
+ if units.lower() == "mils":
364
+ returned_list.append(round(val * 39370.079, 4))
365
+ if units.lower() == "inch":
366
+ returned_list.append(round(val * 39.370079, 4))
367
+ if units.lower() == "cm":
368
+ returned_list.append(round(val * 100, 4))
369
+ return returned_list
370
+ else:
371
+ if units.lower() == "millimeter":
372
+ return round(value * 1000, 4)
373
+ if units.lower() == "micrometer":
374
+ return round(value * 1e6, 4)
365
375
  if units.lower() == "mils":
366
- returned_list.append(round(val * 39370.079, 4))
376
+ return round(value * 39370.079, 4)
367
377
  if units.lower() == "inch":
368
- returned_list.append(round(val * 39.370079, 4))
369
- if units.lower() == "cm":
370
- returned_list.append(round(val * 100, 4))
371
- return returned_list
372
- else:
373
- if units.lower() == "millimeter":
374
- return round(value * 1000, 4)
375
- if units.lower() == "micrometer":
376
- return round(value * 1e6, 4)
377
- if units.lower() == "mils":
378
- return round(value * 39370.079, 4)
379
- if units.lower() == "inch":
380
- return round(value * 39.370079, 4)
381
- if units.lower() == "centimeter":
382
- return round(value * 100, 4)
378
+ return round(value * 39.370079, 4)
379
+ if units.lower() == "centimeter":
380
+ return round(value * 100, 4)
383
381
 
384
382
  def write_xml(self):
385
383
  if self.file_path:
@@ -48,7 +48,7 @@ class GeometryOperators(object):
48
48
  String to convert. For example, ``"2mm"``. The default is ``None``.
49
49
  scale_to_unit : str, optional
50
50
  Units for the value to convert. For example, ``"mm"``.
51
- variable_manager : :class:`pyedb.dotnet.application.Variables.VariableManager`, optional
51
+ variable_manager : :class:`pyedb.dotnet.database.Variables.VariableManager`, optional
52
52
  Try to parse formula and returns numeric value.
53
53
  The default is ``None``.
54
54
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.38.0
3
+ Version: 0.39.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>
@@ -25,7 +25,10 @@ Requires-Dist: pydantic>=2.6.4,<2.11
25
25
  Requires-Dist: Rtree >= 1.2.0
26
26
  Requires-Dist: toml == 0.10.2
27
27
  Requires-Dist: scikit-rf
28
- Requires-Dist: ansys-sphinx-theme>=0.10.0,<1.1 ; extra == "doc"
28
+ Requires-Dist: ansys-edb-core
29
+ Requires-Dist: ansys-api-edb
30
+ Requires-Dist: psutil
31
+ Requires-Dist: ansys-sphinx-theme>=0.10.0,<1.4 ; extra == "doc"
29
32
  Requires-Dist: imageio>=2.30.0,<2.37 ; extra == "doc"
30
33
  Requires-Dist: ipython>=8.13.0,<8.32 ; extra == "doc"
31
34
  Requires-Dist: jupyterlab>=4.0.0,<4.4 ; extra == "doc"
@@ -0,0 +1,288 @@
1
+ pyedb/__init__.py,sha256=Grl7fw-h46joKNpay8knH-tTKml6dRK9F0wf8SHfYw4,1525
2
+ pyedb/edb_logger.py,sha256=7KXPvAMCKzlzJ5zioiNO5A3zkqbpCHhWHB4aXKfgu5Y,14959
3
+ pyedb/exceptions.py,sha256=n94xluzUks6BA24vd_L6HkrvoP_H_l6__hQmqzdCyPo,111
4
+ pyedb/siwave.py,sha256=Mgg5ZGzOUOtNdlePHcnrgN3rletQ7jrqRi3WfxF58uU,17727
5
+ pyedb/workflow.py,sha256=Y0ya4FUHwlSmoLP45zjdYLsSpyKduHUSpT9GGK9MGd8,814
6
+ pyedb/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ pyedb/common/nets.py,sha256=B59J70Gg7Pjxdv52mvzA7I53n8p9AMg20cMuEc0zbCk,17468
8
+ pyedb/component_libraries/ansys_components.py,sha256=O3ypt832IHY9zG2AD_yrRrbH2KH9P1yFaoi1EO6Zllw,4830
9
+ pyedb/configuration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
+ pyedb/configuration/cfg_boundaries.py,sha256=5_v6HD0VgkFCJHgx5zTIn_nxPv3KpcCuGz9P4Kk4ywM,6246
11
+ pyedb/configuration/cfg_common.py,sha256=U45p2qksEwMY_woVFaSwn5qjib9QQJDShajZZ-IZV0Y,2575
12
+ pyedb/configuration/cfg_components.py,sha256=qornSzmo8-SpqO3s3RNuHXGpPUeR-SXCXf9iO6Y2NAc,14179
13
+ pyedb/configuration/cfg_data.py,sha256=sy1xUrfhRA3jorbR60qGExaMxQ1nQGGAbZYJ0xXYktE,3860
14
+ pyedb/configuration/cfg_general.py,sha256=TIiitITvHFHE-zUCmRCdHSnaMKRecwRHf00cykNYMA0,2148
15
+ pyedb/configuration/cfg_modeler.py,sha256=lR19tt5WdjpQ4IN5qCr1X1iykZqAivwViMNgUYOpoz4,5939
16
+ pyedb/configuration/cfg_nets.py,sha256=18NezeNh0ZOwk2ehz3zWJF_xYR7IYCqGlpDfDt7Ilho,2349
17
+ pyedb/configuration/cfg_operations.py,sha256=CFLBdM2kQBsW6f7W0NHWbV56RDMHSnaNQl3BmqDWQWo,4707
18
+ pyedb/configuration/cfg_package_definition.py,sha256=bnwS6p8oaHsD6ia3C7MmjQvQMyOJteK5i7EnbN84bJY,5296
19
+ pyedb/configuration/cfg_padstacks.py,sha256=1ksowII2qhP3tVKM0ja_WRDzYWF7W3Pj5s_5Omw1nu4,20779
20
+ pyedb/configuration/cfg_pin_groups.py,sha256=zNKfVP-fd1qUxS2wNb0ZTLGonkUnBmiXb4Rss1Rr7sE,3714
21
+ pyedb/configuration/cfg_ports_sources.py,sha256=PX0Nfji-UsR17G2mC-fxAar3nzA7MGY293C4jizQGjM,31087
22
+ pyedb/configuration/cfg_s_parameter_models.py,sha256=DgBprcEYR2r_3BY4f_CuwuhJw_QFEag3xaAlLTRfMuE,5356
23
+ pyedb/configuration/cfg_setup.py,sha256=QGKQHAEeo196TYtKMvIMb2-p8KC4U8fmHx0yn0SpgMo,10351
24
+ pyedb/configuration/cfg_spice_models.py,sha256=Q_5j2-V6cepSFcnijot8iypTqzanLp7HOz-agmnwKns,2570
25
+ pyedb/configuration/cfg_stackup.py,sha256=Ie2mdHfCgPn3F7BSdLlYZoZ3exhCDgPrhlYwxHZ6ABU,6484
26
+ pyedb/configuration/configuration.py,sha256=c6SViP7I0Ex7cH12ueDow0DPVKXHIvkg3RZX9qSgnFA,16751
27
+ pyedb/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ pyedb/dotnet/clr_module.py,sha256=EabqZgZgBZOhJD9_V8Ll8sEKgBFj9xe9zARNYIvYM_s,5304
29
+ pyedb/dotnet/edb.py,sha256=KPaIxHyhsx0lWNU27tcuuLnG8SuybsPHgQHxqT82-oQ,186767
30
+ pyedb/dotnet/database/Variables.py,sha256=CX12X6u-2tbcgjYJU643TVjIJEGB58a2nM4f4wMVTR8,77687
31
+ pyedb/dotnet/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
32
+ pyedb/dotnet/database/components.py,sha256=WKsGDge8-mheuTqordLdJnfql3YqQx3zy_W04qrRKLc,109373
33
+ pyedb/dotnet/database/general.py,sha256=k2Bcr5VV-QUzEZlYorqYCX1ZchHBH7WqUvc8maMxId0,4716
34
+ pyedb/dotnet/database/hfss.py,sha256=9UuTuEZwFKAw9E2HJXuzb4uH4kNrp3t00dJjgY1Ymug,68671
35
+ pyedb/dotnet/database/layout_obj_instance.py,sha256=se6eJ2kfQOAZfAwObCBdr0A7CCD3st4aiPPVJR9eQoA,1407
36
+ pyedb/dotnet/database/layout_validation.py,sha256=kanRMaFz7Xv_3jFUwdbbzc1d6Rj6kaHAjM4eNOTrYIk,13597
37
+ pyedb/dotnet/database/materials.py,sha256=tNZm3HKRoSLZpzGQrRSpdgyZ925YqmGLirl7WJDby5Q,43180
38
+ pyedb/dotnet/database/modeler.py,sha256=KS5zkWf8W72EIQT1orlPln3E9fu4CfpRT7HIXXxNunc,55494
39
+ pyedb/dotnet/database/net_class.py,sha256=NxRX8feIaJyf3NmRfSzZ08ItDbZOucOyAnTHZh-LkUI,11354
40
+ pyedb/dotnet/database/nets.py,sha256=R--2ETa3-nc1RU5AqW4UjKXvA8oYKYLt06mQEsyi2j4,25213
41
+ pyedb/dotnet/database/padstack.py,sha256=lYIHF_GXBBP2sIacq7wP0-0-lwj4J0cB2UnWYtzdRjs,73219
42
+ pyedb/dotnet/database/siwave.py,sha256=NjQZLz2RN9OVno37T2L-Uwyf3hec965n54hbeDUUmWA,64286
43
+ pyedb/dotnet/database/stackup.py,sha256=y-lrZWwK3BVLuV1WR3pP3o6IppioaQkzeO5QPiN_KKY,120035
44
+ pyedb/dotnet/database/cell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ pyedb/dotnet/database/cell/connectable.py,sha256=7B8_w_IRLtzb6bLwm2-HR8ScURZb0P5dhE6jezBS8Ps,2864
46
+ pyedb/dotnet/database/cell/layout.py,sha256=dTx28Uj1uyjpan69vuIitv-G7h654R9JbO4-PPOI-_0,13172
47
+ pyedb/dotnet/database/cell/layout_obj.py,sha256=YpyXv8L9vHAH1Lvbu9s_2SlBExifBQrMnlvmvo7YO7M,2765
48
+ pyedb/dotnet/database/cell/voltage_regulator.py,sha256=p9PGP4f-uB75Y9Cf3RlB_IkAadVVa3vdhXnztvsH12g,5387
49
+ pyedb/dotnet/database/cell/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
+ pyedb/dotnet/database/cell/hierarchy/component.py,sha256=qsxkUovUrVFLB0ikJ36ztcCCEUH4G1WATNSXF92tpfA,34847
51
+ pyedb/dotnet/database/cell/hierarchy/hierarchy_obj.py,sha256=B42_qDotHyyhDOZM_fA1hzvPaqqR52A45u1AvOPmhFc,2160
52
+ pyedb/dotnet/database/cell/hierarchy/model.py,sha256=RHZTe4-IvF4dGWXXj9zB30zdRJaxhWngmJ_QQc9jkp0,3198
53
+ pyedb/dotnet/database/cell/hierarchy/netlist_model.py,sha256=fF6tY-6s-lW9EuvJ5sw3RlIkjuoSjeZbrNk5wG-_hzM,1356
54
+ pyedb/dotnet/database/cell/hierarchy/pin_pair_model.py,sha256=nq_22nNC2EWo9rirAztOE2mysfP6uV9cdMnamy6zTu4,3792
55
+ pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py,sha256=o7Omw4R9uQGCBDj4dIU-R73Uf6v3p_zKLMAzJlaH9VA,1456
56
+ pyedb/dotnet/database/cell/hierarchy/spice_model.py,sha256=SGiUcan2l0n8DGk3GtwCskkqZ3rdVHMSS_fGlAfwJSk,1443
57
+ pyedb/dotnet/database/cell/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
58
+ pyedb/dotnet/database/cell/primitive/bondwire.py,sha256=3Wqn_9a54xhfPw38Vyo4ekzCF8NoU-WN_mNlhS8lFvw,7322
59
+ pyedb/dotnet/database/cell/primitive/path.py,sha256=Vdkjvm2qv-gib4L4JaMbhT36vUmvIopqbRnnT-iirDs,12543
60
+ pyedb/dotnet/database/cell/primitive/primitive.py,sha256=KvzC_EdC2qbxWVyFLSAKON5grqFLaIb5i0NHtqOqqoQ,28796
61
+ pyedb/dotnet/database/cell/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
+ pyedb/dotnet/database/cell/terminal/bundle_terminal.py,sha256=6wKbXqnyCCoYsBQGkHga-40brmGzGv4zly45OB33HJM,1977
63
+ pyedb/dotnet/database/cell/terminal/edge_terminal.py,sha256=ANqKNNC3jqIq18QR-eID_pBfa_wFcRI3MDnm15IYJh8,2158
64
+ pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py,sha256=xQ331XSzd8IYeO5tlny7G-1KI54ysSCN-A0GH44PC_o,4417
65
+ pyedb/dotnet/database/cell/terminal/pingroup_terminal.py,sha256=60DUrszHP7QUVPSxoqTYrkOUukZsGiGNE3zd2Wa-2zQ,2753
66
+ pyedb/dotnet/database/cell/terminal/point_terminal.py,sha256=n-QQcN9xfge63Xe1U8fGkKv3yWHHE6UWbn2pUxJ7Kj4,3015
67
+ pyedb/dotnet/database/cell/terminal/terminal.py,sha256=Dv6EYDbMH2aQ-5mzDP2ScaxVhDdlGELdO9x55ax3GOk,18671
68
+ pyedb/dotnet/database/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
+ pyedb/dotnet/database/definition/component_def.py,sha256=8Ldcn9zHP_-RJUo-kbLmtRRonS8X0EUc-Yo12X2GJdo,7404
70
+ pyedb/dotnet/database/definition/component_model.py,sha256=xvTQYuFAKRigacuahw6TQkM8SaJ8F-FExXmG2sTjSSI,1838
71
+ pyedb/dotnet/database/definition/definition_obj.py,sha256=HU_SL9tMGlmWyockpRM51k9PdpQ4eeHjScP4YQdGkls,1560
72
+ pyedb/dotnet/database/definition/definitions.py,sha256=sXWgCkHOtCkqZOtdnIdwjnkfCoKHAwFHsYleqkc_XcQ,2383
73
+ pyedb/dotnet/database/definition/package_def.py,sha256=TJ3B3_6BTRJv3zayubhZiKdBHKa5ayfvmE2-EjBrWLA,6145
74
+ pyedb/dotnet/database/dotnet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
+ pyedb/dotnet/database/dotnet/database.py,sha256=WfwX1Vj6zMG3-zzn6uW_tm8-S3zaY3MSfHHHm_nzvN0,36691
76
+ pyedb/dotnet/database/dotnet/primitive.py,sha256=Ma-hwk62_6Xhi4SKViYyYVGxTqdZw5v3VcjZ55ek68c,49944
77
+ pyedb/dotnet/database/edb_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ pyedb/dotnet/database/edb_data/control_file.py,sha256=4vtrXuHDgaX9wcyIGnIRMyCGUtvNqbx457HK0rtb-dE,52550
79
+ pyedb/dotnet/database/edb_data/design_options.py,sha256=RO9ip-T5Bfxpsl97_QEk0qDZsza3tLzIX2t25XLutys,2057
80
+ pyedb/dotnet/database/edb_data/edbvalue.py,sha256=Vj_11HXsQUNavizKp5FicORm6cjhXRh9uvxhv_D_RJc,1977
81
+ pyedb/dotnet/database/edb_data/hfss_extent_info.py,sha256=Ydzle6moatP89kQdjnzyNabsCW0KXE4WYqDv7sFyLb8,13040
82
+ pyedb/dotnet/database/edb_data/layer_data.py,sha256=4Z_eaHSfGfwQBKETEmGSwMvwGzvirtwYw4G4TwonNiA,34314
83
+ pyedb/dotnet/database/edb_data/nets_data.py,sha256=siq2w5CT5D5PeK9tC_vaGM54UOyqnYkcP4kUts459es,10009
84
+ pyedb/dotnet/database/edb_data/padstacks_data.py,sha256=18VZaivT9tT7-KCXbXsEZbokRRi_CQCTqCQFcAj-FtU,78343
85
+ pyedb/dotnet/database/edb_data/ports.py,sha256=-FdBOAd2NZRpjvKNrZRSaKGsDr-LxKREzpFSYVvatz0,8873
86
+ pyedb/dotnet/database/edb_data/primitives_data.py,sha256=gBW7GiaPxDWBUj1wgOIiNHJ3QKM2ZDU0SJh0JWUlFHc,16826
87
+ pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py,sha256=f_09VvuDHeaIuTivSi2OiAEv8aJ52vBasuBoSS9sCQE,20953
88
+ pyedb/dotnet/database/edb_data/simulation_configuration.py,sha256=epMOclqz9nyewh2zEHFzylSS6e4-10dAqKzzZYbkgaw,100432
89
+ pyedb/dotnet/database/edb_data/sources.py,sha256=PEJXUwHALV3P6n8_OldlFrgeBfGlXq3EMNzC_PKO_1Q,15700
90
+ pyedb/dotnet/database/edb_data/utilities.py,sha256=3wZqOJ35eisOwOPKOs-bvJ8kmd62e46EiFuiFtsroB4,4928
91
+ pyedb/dotnet/database/edb_data/variables.py,sha256=mJvOXT9A5rlxZamizCsC77QPWyt0zO_tUpPPl61xqcE,3501
92
+ pyedb/dotnet/database/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ pyedb/dotnet/database/geometry/point_data.py,sha256=hC9cRuSnX4cwg09Jr0ZK7ZTjFf_4NwXJMGbZ3s-ULpQ,1590
94
+ pyedb/dotnet/database/geometry/polygon_data.py,sha256=voLVSY0t1-u7lbqOdYDjqeLsYcjY1atEV7FCa9a_joY,5272
95
+ pyedb/dotnet/database/sim_setup_data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
96
+ pyedb/dotnet/database/sim_setup_data/data/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
97
+ pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py,sha256=tlHI7PUUoseNnJAtihpjb1PwXYNr-4ztAAnunlLLWVQ,2463
98
+ pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py,sha256=ZghVRlnIDk7TXHRsLSGfvkWxFe0_6byHPJiebsENX60,8073
99
+ pyedb/dotnet/database/sim_setup_data/data/settings.py,sha256=VuJaksqhiM--ROQY67d-9WSwdr83-ncbQbTtbrFjVGs,28012
100
+ pyedb/dotnet/database/sim_setup_data/data/sim_setup_info.py,sha256=hN2TeXa8dbtOmEtwobhKuwomJXYs8cSJum3HQofuW3Y,4479
101
+ pyedb/dotnet/database/sim_setup_data/data/simulation_settings.py,sha256=ag-nl1gwKlNJOb3y7fBMSoSEwbUG_rwLzM25jLp8ado,10727
102
+ pyedb/dotnet/database/sim_setup_data/data/siw_dc_ir_settings.py,sha256=FnvDY1oxpnPo0EYMVXT7yfW-e-W3_NOGnvUvQYta4Ls,8627
103
+ pyedb/dotnet/database/sim_setup_data/data/sweep_data.py,sha256=Bz2k0hzUHtBc5BjTBVGclplPTEhL55ZvYl-Q11wuraI,18116
104
+ pyedb/dotnet/database/sim_setup_data/io/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
+ pyedb/dotnet/database/sim_setup_data/io/siwave.py,sha256=92iEZrhA2CUTZ7wynL5nxVVwi2XKKqppx7AcvvoqK6E,31387
106
+ pyedb/dotnet/database/utilities/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
107
+ pyedb/dotnet/database/utilities/heatsink.py,sha256=7G7Yx9TxbL5EAiR51MnhdRiAQBVf-d0hKsXDw5OYX2Q,2220
108
+ pyedb/dotnet/database/utilities/hfss_simulation_setup.py,sha256=1tlZ64rUNEtvRLLbVhN-gfuVduVCo8fT6IPKfQCEaDs,14074
109
+ pyedb/dotnet/database/utilities/obj_base.py,sha256=xSGTbfh4pbNIw3EjqtjFMiN8rWM2JhYZ2eU73qHAGlI,2883
110
+ pyedb/dotnet/database/utilities/simulation_setup.py,sha256=1qYY8v1kGEo4DSgMR_Pqc_DghaQ8mjF5QP3Njd_vAZg,12347
111
+ pyedb/dotnet/database/utilities/siwave_simulation_setup.py,sha256=dQsU9IKJ2-erZvum40z1XrJULlohU1045hln3Bl_-nk,12764
112
+ pyedb/extensions/pre_layout_design_toolkit/via_design.py,sha256=b9pTM5Gi3S3O2epaSBp4cD5DEul-MP5gCvRw3E5GmpE,46734
113
+ pyedb/generic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
114
+ pyedb/generic/constants.py,sha256=prWLZH0-SeBIVK6LHZ4SGZFQCofuym2TuQYfdqwhuSQ,28956
115
+ pyedb/generic/data_handlers.py,sha256=rfqNe2tPCJRqhXZBCyWxRFu5SjQ92Cdzq4l0TDC4Pvw,6905
116
+ pyedb/generic/design_types.py,sha256=nQbAXGGdc_HX3xcSF2JDijl8YxhRq__FpmRfQcC3Usk,4899
117
+ pyedb/generic/filesystem.py,sha256=EqsLGwdhCgY3asomjoWZBBYWQiGhVOBlSzQlM6FCZhw,3674
118
+ pyedb/generic/general_methods.py,sha256=Lg4k53Ny9LraiU6AQX5WwBiPFqtvGaZ3Ik7LcWil6Rg,42798
119
+ pyedb/generic/plot.py,sha256=4zCA5lpk-FhPmWR7xi6yecc5lZtRpxJdd3B8FLGXmxE,4705
120
+ pyedb/generic/process.py,sha256=i0poMbEnFFAsnNOPWN-myMnUaG7hMClKi9kGPMFyvCM,11148
121
+ pyedb/generic/settings.py,sha256=QTX5OVZ8sVPIy_QaSxRODUWvoXkYkVpzh3l6pQPseKQ,9220
122
+ pyedb/grpc/edb.py,sha256=dN6TkycJOxckkzw9NYB8CAG02qK0C97ecQfOmtVMt8M,168675
123
+ pyedb/grpc/edb_init.py,sha256=7uhG2VjHvS9N8CU-zDyW8jh_dWe8MWkfyU2k4-B8sX8,14513
124
+ pyedb/grpc/rpc_session.py,sha256=UvxDSXuJFvemFJbQQtbI6nhYI9KBN366fw-jjoWysmE,6979
125
+ pyedb/grpc/database/__init__.py,sha256=nIRLJ8VZLcMAp12zmGsnZ5x2BEEl7q_Kj_KAOXxVjpQ,52
126
+ pyedb/grpc/database/components.py,sha256=dIXwXwdZzCWH3JNXV7gBNqO-gP0s9ov1KuSXNbQf8lI,85244
127
+ pyedb/grpc/database/control_file.py,sha256=rEsdYykh5-GcYTrZW32nk3IPpdNjlhlQ2PYgbkBgQ_8,48217
128
+ pyedb/grpc/database/definitions.py,sha256=jtfg2crkmwqn9rEe8pSn1F-TtyBDLl8U6hs7ZmNbXA8,2922
129
+ pyedb/grpc/database/general.py,sha256=QBZlMO4Tzec00HcaLVQ8fDTLox-pHjOcH2wpWge2sZw,1633
130
+ pyedb/grpc/database/hfss.py,sha256=pHOkPHHviRVf93pv3vNqEb88wO95BB6_CcURoaXQ0f4,45670
131
+ pyedb/grpc/database/layout_validation.py,sha256=I93JnGk_6dNmbaTmnaMbZwRN3nw-EvwOcKo0lp0Ss0w,13018
132
+ pyedb/grpc/database/modeler.py,sha256=DHKHbR8h9tzvI0ECj_ryb-dGHL_L4kgzYqXJHs8VVO4,55086
133
+ pyedb/grpc/database/nets.py,sha256=aBGhSzudYcq_heAyOX9ucAmLXY4nwOPrnRegRJ3lcHc,21234
134
+ pyedb/grpc/database/padstacks.py,sha256=RjKZea2b4Uvb-xCYuOQjwpfrW42O-RKPMTBQQrHXPfM,58551
135
+ pyedb/grpc/database/siwave.py,sha256=XOc_nvsIKKSAbYj27GLBE0NhwpAJfzecJ_TQIKJGy6k,35157
136
+ pyedb/grpc/database/source_excitations.py,sha256=OyR8YBOYDZhcHyD1H8styl7_LEt7CT2fAXEOp_6ZLDA,108401
137
+ pyedb/grpc/database/stackup.py,sha256=hT9krLiP5yajlZ0gRl72G4yp_PMUe2MeFNolF3reDGw,108882
138
+ pyedb/grpc/database/definition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
139
+ pyedb/grpc/database/definition/component_def.py,sha256=3QSORWKKQZ50hPMuodX_aVyfSf_RlRwCJSOShDXRofE,6939
140
+ pyedb/grpc/database/definition/component_model.py,sha256=9TRfILC3FfmgSrnYRwEdF2kbY4jFcC5rSeR9xeeb3wg,1689
141
+ pyedb/grpc/database/definition/component_pin.py,sha256=zvE82RByhWC8rIkqL3rjYQyZuk9JfVsJ6Bw43xZH8zM,1489
142
+ pyedb/grpc/database/definition/materials.py,sha256=N69OY0UFX_zAKx1Zl8tNMlbnWr2Rssi6xnlgbqEF0vg,43493
143
+ pyedb/grpc/database/definition/n_port_component_model.py,sha256=8dC636At0iyfAWShugHGDOerytpoV6cvShPEGkXH89I,1543
144
+ pyedb/grpc/database/definition/package_def.py,sha256=jBgNlr5kBTlkt7gNvo6tdlKkV7Xpjil7nYy5WrYwCSI,7503
145
+ pyedb/grpc/database/definition/padstack_def.py,sha256=58zkH-XPQW7f5fBpTGksHq9tLkGbHJUC1tDEHKs7yqw,29672
146
+ pyedb/grpc/database/geometry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
+ pyedb/grpc/database/geometry/arc_data.py,sha256=e86QQ7QFmovUB82DT4Z3CYjMJe1co5lfYr43--4nWpM,2638
148
+ pyedb/grpc/database/geometry/point_3d_data.py,sha256=9pABIDtp4T06ZF0OSvlhPK21wMot8zv-zjLAq8yPhfU,2163
149
+ pyedb/grpc/database/geometry/point_data.py,sha256=q8a6-MRUunTl6-kBbYuraiVbYF_EOY1eSMmwo5_ouuk,1433
150
+ pyedb/grpc/database/geometry/polygon_data.py,sha256=DotkM7fZnBQIln5kEJTCIbRNx8IfwXX4xs9hXjiUumA,4776
151
+ pyedb/grpc/database/hierarchy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
152
+ pyedb/grpc/database/hierarchy/component.py,sha256=qyQVVD-_PRh8bd-PJ6JS7ptqZVui5jjZvkIZp64pww4,40811
153
+ pyedb/grpc/database/hierarchy/model.py,sha256=H3I2S6BxWorFBaRlvIPBTQUqpXXAdch4KZqpRXjNtI4,1413
154
+ pyedb/grpc/database/hierarchy/netlist_model.py,sha256=VtXxTTTArojCOOLShHVlGOS1OTx30YZ8_UdSZWaKaEA,1432
155
+ pyedb/grpc/database/hierarchy/pin_pair_model.py,sha256=FUaJms_pTiZ9W49B5HGCjdJj4OAR5IJSZxk0rr3sOKg,3500
156
+ pyedb/grpc/database/hierarchy/pingroup.py,sha256=Bgakkm8AC-GpsxjGqRMO1y-gs-RTgDNBZwcLoRJoo2Y,7787
157
+ pyedb/grpc/database/hierarchy/s_parameter_model.py,sha256=e3h8RJO_L3tLK00mq6vkeEwlKSo2yYdb-oUmA-o8hes,1527
158
+ pyedb/grpc/database/hierarchy/spice_model.py,sha256=2dAaIJcBGlkzMv_xYltaiU0udHETDDdyERcratkKfV8,1941
159
+ pyedb/grpc/database/layers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
+ pyedb/grpc/database/layers/layer.py,sha256=xOOR6ZLJFHd8_QbKZXMAtojhuB_KILoKP8K7YHzAmRQ,2571
161
+ pyedb/grpc/database/layers/stackup_layer.py,sha256=qi2oPaJXiszwpSy4oZ-uxzCZFyzE2BsGgi0XSrIleYY,12582
162
+ pyedb/grpc/database/layout/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
+ pyedb/grpc/database/layout/cell.py,sha256=5qMqEBvIruIE3Ru1JBYMkGlS31uOJShWm3J3OMd8HiQ,1379
164
+ pyedb/grpc/database/layout/layout.py,sha256=Xy2YkbeutgaNEUleH0C1RCGcfsgQTdnC124T39Qpzqc,6790
165
+ pyedb/grpc/database/layout/voltage_regulator.py,sha256=ObKjdQeLDxNHfW7V1i-yPCdabTzmBgKj0dIHr3TLWNk,5140
166
+ pyedb/grpc/database/net/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
+ pyedb/grpc/database/net/differential_pair.py,sha256=DbYbyO0e6bHpqY4lZWU2quHlGBvA5n0ekVvD4MntG5I,4670
168
+ pyedb/grpc/database/net/extended_net.py,sha256=DeK1vwsx_kuCWhORitL_z2APTigdtWZZfbllpt0B0ho,12865
169
+ pyedb/grpc/database/net/net.py,sha256=ig4S3Z1SXTNVxD0KhiUXJddnBAImanUvbp2TIGBGet0,6895
170
+ pyedb/grpc/database/net/net_class.py,sha256=ojoEZ_7YJW0cEhRWIc9hLBHILBhrVPuRpRjrrBJux3c,2961
171
+ pyedb/grpc/database/ports/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
+ pyedb/grpc/database/ports/ports.py,sha256=boa3pfu-qLHsBi3-JqO5YxfWws21gWZHjLSPm63xocM,10199
173
+ pyedb/grpc/database/primitive/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
174
+ pyedb/grpc/database/primitive/bondwire.py,sha256=_zwMsxOacKzACXaGYr1SVCeHEA_R1hG3iEOMvbcC308,6241
175
+ pyedb/grpc/database/primitive/circle.py,sha256=ABIiF7PgtxMR-DdR8rL6KeEkw2rQeVddP8cBXRi0FTw,2517
176
+ pyedb/grpc/database/primitive/padstack_instance.py,sha256=Kvprkh0e1TdBjlfACeMEuW9bgDTSqFFHhxd0XUyTj1I,37205
177
+ pyedb/grpc/database/primitive/path.py,sha256=BUsmc8xkaNuh97ym0z8HRSpw0MU1tB6nfpbQiw-UsA0,12056
178
+ pyedb/grpc/database/primitive/polygon.py,sha256=BxuDy7OGSGTA5mw3ChjKxtf8dnO3eecTicg7jj1F2_k,9488
179
+ pyedb/grpc/database/primitive/primitive.py,sha256=0CzG_qHwi0nY1-YvGrOiDeFt9NrTbOE_K3UJc3r7aUw,24784
180
+ pyedb/grpc/database/primitive/rectangle.py,sha256=ltuOceOgjl3b2ei0W4PG2wwr1NzQmXDvgeuqPEg8CkE,5359
181
+ pyedb/grpc/database/simulation_setup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
182
+ pyedb/grpc/database/simulation_setup/adaptive_frequency.py,sha256=uEuYtf0RcRH5XlcBiTEN8sgdZZBrob9k7h5KW-I4QYs,1455
183
+ pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py,sha256=ujG1mD8h0SXLOVXbYBrvKVrCRFHRQGKuPebzekcaE0M,1531
184
+ pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py,sha256=DOUJWj36iOX6cT5uotdiyRfY2jMNvyaIvQSCmc8cLMs,2346
185
+ pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py,sha256=H_aqDcxATHK8yeJ_l8-Qz9wVGZjK_7EBg8zgBS8IeoU,1507
186
+ pyedb/grpc/database/simulation_setup/hfss_general_settings.py,sha256=gL39zOgV0ZKDWDlclXwGHiyqKlq35b3TgGpQ5dGi85o,2433
187
+ pyedb/grpc/database/simulation_setup/hfss_settings_options.py,sha256=QqSYROingDWwxdUX1QTMdxrUjqg4-fofxWyR_49mC48,2929
188
+ pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py,sha256=GbToEtsZ5tiYZodcAsUuLzzRd7GrSuVjmRQnT9dWT4s,3946
189
+ pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py,sha256=Qgue_0E7ManSKzxN54xdzvj0gSkvAOf63Lxuh-CzsLU,13013
190
+ pyedb/grpc/database/simulation_setup/hfss_solver_settings.py,sha256=Xi4N-cCO_8-JxMkI_tGyJ3SGcJrP5_rLvdbXx7P-uJI,1474
191
+ pyedb/grpc/database/simulation_setup/mesh_operation.py,sha256=Ejf9v9njc-Ll3jw_DdA26CAT1WreludC6CwBrpoS16A,1439
192
+ pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py,sha256=mo2zHBsdxHG9N81FNefulKjUv-Oi_VkV49kvKKXrhrs,1505
193
+ pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py,sha256=Sp-r6W87FjsWZYY1ugqTCGZ-KMXzCZ96FMl1fj3mdrU,1499
194
+ pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py,sha256=Ovl7CNmSBtC7lxgWfZV-aI2DoCmBWjI4fdwq2bSPvnE,2359
195
+ pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py,sha256=La0fgP9w5iEbDhzTRXzm6NU1Bj8fMJbgWI96r1FOvO0,4783
196
+ pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py,sha256=--LrmRx54PkvgzKEc7HbmVtttir3uOAjJaehilasMaA,1524
197
+ pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py,sha256=zNAI4JxgyNfjbHOaUDGRk1-bIfySzBUWGJN1SpiLkNg,4615
198
+ pyedb/grpc/database/simulation_setup/sweep_data.py,sha256=iEl_Uy9DwI7wfoufFEECvsWXVEp0FOL5KaAgkVl9TtY,1572
199
+ pyedb/grpc/database/terminal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
+ pyedb/grpc/database/terminal/bundle_terminal.py,sha256=5RyLKw1kjaWmy2GoyQNghREN13POrTt1MbuVVtT9pm4,6501
201
+ pyedb/grpc/database/terminal/edge_terminal.py,sha256=NehWYSocLcehszBM20__UEopLeLpml3T064P-wco3LE,2179
202
+ pyedb/grpc/database/terminal/padstack_instance_terminal.py,sha256=T6XPJtDznwUcBBTq542R30ksKTZE9otS7VxbezQclfc,4896
203
+ pyedb/grpc/database/terminal/pingroup_terminal.py,sha256=1LvsF3x4uMMUr0ZbQTwR7wo2qWemcairWv5RsxFcXpY,4516
204
+ pyedb/grpc/database/terminal/point_terminal.py,sha256=x5LPlrEYdBUDxIZjHx1VCgKYC7qEuYQ411Y5y9maCto,3288
205
+ pyedb/grpc/database/terminal/terminal.py,sha256=7lU1VKvUI01WfbeVaRN8XoLB-xbRYV5wgMhieAWkJIY,17007
206
+ pyedb/grpc/database/utility/__init__.py,sha256=8jByHkoaowAYQTCww-zRrTQmN061fLz_OHjTLSrzQQY,58
207
+ pyedb/grpc/database/utility/constants.py,sha256=XF66Hj7aQWJfqn8rDhyovyIbYBt4h_ab7lgpUqzgcPc,1288
208
+ pyedb/grpc/database/utility/heat_sink.py,sha256=LJCj7ULdyq7oKc0VtHmwzO5GHht-pqhe3_Gy01uMwWc,3538
209
+ pyedb/grpc/database/utility/hfss_extent_info.py,sha256=qX8gjSYfdNtBrJhwrtbqwvB_OeuE6Qk2ynse1wFNNY4,13610
210
+ pyedb/grpc/database/utility/layout_statistics.py,sha256=uLh6tZ8vRvDpRYmgJO3J6nUThUYhleku2y9lwm02Ccg,6705
211
+ pyedb/grpc/database/utility/rlc.py,sha256=GOvwhZlJ_wWqrN9zdiQM4tvhgvEPjYwA3PawpkqJwos,2158
212
+ pyedb/grpc/database/utility/simulation_configuration.py,sha256=RPgRP3SJGPUm9Q41Qwv6TZXWN3Wda3nehR9rR3TPPMk,117014
213
+ pyedb/grpc/database/utility/sources.py,sha256=gZh0sgbp7IV_7h5HQFZQo_G11C2ZEql8u-ZbIMlAKAo,10461
214
+ pyedb/grpc/database/utility/sweep_data_distribution.py,sha256=m2nUhp4kBJE8CfVPPTRz9uaeC9swWGB26lT7eI9QtKo,3753
215
+ pyedb/grpc/database/utility/xml_control_file.py,sha256=rEsdYykh5-GcYTrZW32nk3IPpdNjlhlQ2PYgbkBgQ_8,48217
216
+ pyedb/ipc2581/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
+ pyedb/ipc2581/history_record.py,sha256=s1GjcIgnZHlNCBOeEERBDX7xDuqhXmh2Ctt3ccFDWso,2739
218
+ pyedb/ipc2581/ipc2581.py,sha256=TF14w69fbWauKhcxRZ77NL7RIiphNncR_ExitD1irps,22210
219
+ pyedb/ipc2581/logistic_header.py,sha256=ETWntlLgKczjBKR1jtzAe6M7YZLmpSx6ZlbUe3K7wz0,2092
220
+ pyedb/ipc2581/bom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
221
+ pyedb/ipc2581/bom/bom.py,sha256=yZ_OwJLHGht8Fn3N1xaROy7QRuCs1PbjCb4OB6wTanQ,1853
222
+ pyedb/ipc2581/bom/bom_item.py,sha256=Z131tcWOa_crcaW1uoBEapCMu6jjPW47HIRu1d7BGUc,2394
223
+ pyedb/ipc2581/bom/characteristics.py,sha256=JVSvN70igrYKJ5pLuMDxHNHTnVrwXbqvT5Vnmn72t04,3329
224
+ pyedb/ipc2581/bom/refdes.py,sha256=1XHy_2Pw37tlC96aFZUD963iMdGMcoi2eacq0AaFvrk,1661
225
+ pyedb/ipc2581/content/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
226
+ pyedb/ipc2581/content/color.py,sha256=LgP00nfgUKilfou1tSfwjQk2Ppzfcsrsujr_a1dAKnM,1883
227
+ pyedb/ipc2581/content/content.py,sha256=5jrII2Kj9o56f3yy0lLNU36Jakr9I2dVkYokcjQ-sb0,3187
228
+ pyedb/ipc2581/content/dictionary_color.py,sha256=bKhzQdcDcXezSmTh8Kvlrkyq1i3Gjs2wPSWeSojc0ts,2052
229
+ pyedb/ipc2581/content/dictionary_fill.py,sha256=MqGb9d5niNX1vtd3NxlepjiRn5MQv3jNATbzDpC7q2U,2026
230
+ pyedb/ipc2581/content/dictionary_line.py,sha256=kxVur-w_aRITpeDGY_RXQ4SyjtPe4v8qLNBTqhil2Ng,2142
231
+ pyedb/ipc2581/content/entry_color.py,sha256=ogDuJspAJTZfMDkiyFJUI1MTqA258q7ggNW3axH0Fc0,1546
232
+ pyedb/ipc2581/content/entry_line.py,sha256=I313Q2ygDSq5kC4mtgw8EIMkHET_Nkx4GOexjJcuRPg,1687
233
+ pyedb/ipc2581/content/fill.py,sha256=P_CFCo25zBpAQba2gxtnV3bY8O2ADspU7rnTFHdpDyk,1651
234
+ pyedb/ipc2581/content/layer_ref.py,sha256=xDph0dtY1-ItPwu4guBBQ2wqm-Dit5zW_MbPt9BJmnQ,1427
235
+ pyedb/ipc2581/content/standard_geometries_dictionary.py,sha256=or9JfnTvnRj3lB8Guc4dZMKpI3yor0a0F9VgiZ36byc,3931
236
+ pyedb/ipc2581/ecad/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
237
+ pyedb/ipc2581/ecad/cad_header.py,sha256=gxIvoIbMyrzUY3ASmCU60y0dRhKtkPhzdBXYcj76OOc,2143
238
+ pyedb/ipc2581/ecad/ecad.py,sha256=59xbQMZ04HOrPNukQyxYMHBDcKBl239Tnj0oVPRP5ng,1797
239
+ pyedb/ipc2581/ecad/spec.py,sha256=C6Uyn7NBUB4dBMxicnyMs_q8J9YV_88AcrLVUZ26_9g,3115
240
+ pyedb/ipc2581/ecad/cad_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
241
+ pyedb/ipc2581/ecad/cad_data/assembly_drawing.py,sha256=Pw8eOvQ-FCdow7nh5XR7q_oaBPkH8qofG8P0G0b8d-c,2338
242
+ pyedb/ipc2581/ecad/cad_data/cad_data.py,sha256=3cTEgIjgzc8-rHHklHics_BHi1RWlo1LCKH5OoHEY6o,2405
243
+ pyedb/ipc2581/ecad/cad_data/component.py,sha256=uE2_IyITp5TQ8y2K4ojk212471RPYrDwIQlFylsl5x0,2628
244
+ pyedb/ipc2581/ecad/cad_data/drill.py,sha256=COfVTiOueJQhSd19eV1usuHp7BT8KrhDc9VXM-e7TkM,2083
245
+ pyedb/ipc2581/ecad/cad_data/feature.py,sha256=hgtLpd4PckZDB5s2vTAQOtVMCxgJRIgc0t0L8Y2I31k,3073
246
+ pyedb/ipc2581/ecad/cad_data/layer.py,sha256=IA4De_4WgcTZi3d2o5FPptYjNobai3W3FexUT_4-t9o,2270
247
+ pyedb/ipc2581/ecad/cad_data/layer_feature.py,sha256=oyH0FQ_RJpDrtX0c5vsxq8x7T_2ox02LgsZWmcBhKws,8960
248
+ pyedb/ipc2581/ecad/cad_data/logical_net.py,sha256=6ChBFNDLqPLF-DzPWCfVwereiGNt0OGD5IbLF9ZHFTY,2042
249
+ pyedb/ipc2581/ecad/cad_data/outline.py,sha256=fYbwqmXpQQnDMRfENBVKkbmjKeA5hHj-4nx9Oxa8Hlo,2235
250
+ pyedb/ipc2581/ecad/cad_data/package.py,sha256=0rVqEEJrzDOwj5JlP1qv16GtUP_YsWFv7Zjj-ExS3lc,5528
251
+ pyedb/ipc2581/ecad/cad_data/padstack_def.py,sha256=gP5V0524Ozxg3BWVBPzk_khusvRDJqLWHKpzDcKwZx4,2535
252
+ pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py,sha256=2eCPrT9rU2utU1-Hpps4x_62n37jaVta9Yr4INpP-VA,2004
253
+ pyedb/ipc2581/ecad/cad_data/padstack_instance.py,sha256=z_zM5Z9w2z3tdILDMsM8Z7SmYSZ9vNEEBwrjR4kxLg8,3866
254
+ pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py,sha256=ihojy_KwERcIOOYVUIUMJD7fH0hmiEu0P3CzRljZBYc,2014
255
+ pyedb/ipc2581/ecad/cad_data/path.py,sha256=NpgwWTSPiSpzpUW8megrrt5MJV085ovTalC8s9wt8dw,7697
256
+ pyedb/ipc2581/ecad/cad_data/phy_net.py,sha256=d2keM6cOqATRbdrmTBcJREZjW_bVBXt5CEI44ksYTIo,3640
257
+ pyedb/ipc2581/ecad/cad_data/pin.py,sha256=15jx5iS29QRTuvJxt0k5AQD5HNP5Frv6qqH0sTHSBmM,2124
258
+ pyedb/ipc2581/ecad/cad_data/polygon.py,sha256=e148zbA00EL1x_iJ8MlDAZCjFpIHtQwMM2Z1SNpFuQo,12713
259
+ pyedb/ipc2581/ecad/cad_data/profile.py,sha256=On_e5x1yFcdKOlEGo58pmEmMD5kMm6KXOdwrUVCOHTk,2880
260
+ pyedb/ipc2581/ecad/cad_data/stackup.py,sha256=_CyyYwFjrVyQEpsL_4bFSz9U1sMTWhfLUov6RdhdITE,2274
261
+ pyedb/ipc2581/ecad/cad_data/stackup_group.py,sha256=zRtg9Va6SQn6eJOiB_8cvSptAbUa-SQbwB4e4Kr2N0Q,2717
262
+ pyedb/ipc2581/ecad/cad_data/stackup_layer.py,sha256=SMkX9wrHdxbVn6hcPqlAbWz14IKiVy3dg9Dj6V-dcGA,1970
263
+ pyedb/ipc2581/ecad/cad_data/step.py,sha256=si4CGprfnUySEwbQ-ldNi29-vIUi-cC500YHHh6exi0,14048
264
+ pyedb/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
265
+ pyedb/misc/aedtlib_personalib_install.py,sha256=eCVAdEoriMU92bZwPzY9Aig85cBbUO0J8J4RMtMkY_o,1759
266
+ pyedb/misc/downloads.py,sha256=j9jJhwGTTJwm4WWaCSEhGZzOGyOyHhBAFexx0NtD4Uw,10824
267
+ pyedb/misc/misc.py,sha256=3vyQ-l7lKUxdpdc_kGc7QNwu_EkmD8rRxe01Zx5Drr4,3315
268
+ pyedb/misc/pyedb.runtimeconfig.json,sha256=2xof-Vl0hY2VOs1KkMSReTMZACsZhcmPmyHXukfb-oY,301
269
+ pyedb/misc/utilities.py,sha256=tW5O8R-qo0yhAufKZWxZPzbVy8qcz6UJCIqrKNhlghk,2742
270
+ pyedb/misc/siw_feature_config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
+ pyedb/misc/siw_feature_config/emc_rule_checker_settings.py,sha256=arnOR1gSo5aGxLrRQbYewdg1jyce9EyLonPZeHYYVVE,7389
272
+ pyedb/misc/siw_feature_config/emc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
+ pyedb/misc/siw_feature_config/emc/component_tags.py,sha256=pyOAMxbuvgtg6dV-gHWVFJ9NuHU-oZtJoK_WKliRcNY,1560
274
+ pyedb/misc/siw_feature_config/emc/net_tags.py,sha256=HVYOQacmaLr6Mvf7FqZhqbhtqJLJgUSC3ojZdrl3eq0,1184
275
+ pyedb/misc/siw_feature_config/emc/tag_library.py,sha256=yUK4w3hequU017E2DbkA4KE2MWIh1R6bfJBrevlDx6g,1557
276
+ pyedb/misc/siw_feature_config/emc/xml_generic.py,sha256=55X-V0OxWq-v7FTiDVjaZif8V_2xxsvJlJ8bs9Bf61I,2521
277
+ pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py,sha256=5MKJ8aoCZtgrgcTq6-Kj8pM6YBZa4LkY4fsal1S1Yhk,3536
278
+ pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py,sha256=wHeupbGkheUm1l8F9m4xfaKO-s_QSIiSL-6QH3yrCJY,2905
279
+ pyedb/misc/siw_feature_config/xtalk_scan/net.py,sha256=iQBB2iIyvymLzJP4MTiyo_HTfFX09G1vQc_tOzaCLX8,3261
280
+ pyedb/misc/siw_feature_config/xtalk_scan/pins.py,sha256=NBZLWFoDLGfBj-zGCcZGHzcuANrlfDu4XSbTeC5F8tU,2237
281
+ pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py,sha256=YmYI6WTQulL5Uf8WxeUI_sfpcVVPnFAjjygUNNhGMdo,3599
282
+ pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py,sha256=KHa-UqcXuabiVfT2CV-UvWl5Q2qGYHF2Ye9azcAlnXc,3966
283
+ pyedb/modeler/geometry_operators.py,sha256=YhR-QE0dvIkbp4SsjWp309KDE1OZa6wUzr8a634MuJ4,74195
284
+ pyedb/siwave_core/icepak.py,sha256=WnZ-t8mik7LDY06V8hZFV-TxRZJQWK7bu_8Ichx-oBs,5206
285
+ pyedb-0.39.0.dist-info/LICENSE,sha256=qQWivZ12ETN5l3QxvTARY-QI5eoRRlyHdwLlAj0Bg5I,1089
286
+ pyedb-0.39.0.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
287
+ pyedb-0.39.0.dist-info/METADATA,sha256=h3DgkY8Wcgll92nW70oghUBRmXnAJ_ITZpDUTtmCDXE,8594
288
+ pyedb-0.39.0.dist-info/RECORD,,