pyedb 0.50.1__py3-none-any.whl → 0.52.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 (37) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_ports_sources.py +79 -239
  3. pyedb/configuration/configuration.py +213 -340
  4. pyedb/dotnet/clr_module.py +9 -3
  5. pyedb/dotnet/database/cell/layout.py +10 -1
  6. pyedb/dotnet/database/dotnet/database.py +0 -2
  7. pyedb/dotnet/database/edb_data/padstacks_data.py +8 -2
  8. pyedb/dotnet/database/layout_validation.py +20 -26
  9. pyedb/dotnet/database/modeler.py +0 -1
  10. pyedb/dotnet/database/stackup.py +4 -3
  11. pyedb/dotnet/edb.py +42 -2
  12. pyedb/generic/design_types.py +183 -62
  13. pyedb/grpc/database/__init__.py +0 -1
  14. pyedb/grpc/database/components.py +110 -0
  15. pyedb/grpc/database/control_file.py +150 -17
  16. pyedb/grpc/database/definition/materials.py +7 -7
  17. pyedb/grpc/database/definitions.py +36 -2
  18. pyedb/grpc/database/hfss.py +15 -0
  19. pyedb/grpc/database/hierarchy/component.py +10 -2
  20. pyedb/grpc/database/hierarchy/pin_pair_model.py +1 -1
  21. pyedb/grpc/database/layout_validation.py +58 -7
  22. pyedb/grpc/database/net/differential_pair.py +2 -1
  23. pyedb/grpc/database/nets.py +233 -4
  24. pyedb/grpc/database/padstacks.py +97 -0
  25. pyedb/grpc/database/primitive/padstack_instance.py +1 -1
  26. pyedb/grpc/database/primitive/polygon.py +1 -1
  27. pyedb/grpc/database/siwave.py +63 -3
  28. pyedb/grpc/database/source_excitations.py +317 -50
  29. pyedb/grpc/database/stackup.py +107 -2
  30. pyedb/grpc/database/terminal/point_terminal.py +2 -2
  31. pyedb/grpc/database/terminal/terminal.py +1 -1
  32. pyedb/grpc/edb.py +190 -224
  33. pyedb/grpc/edb_init.py +54 -5
  34. {pyedb-0.50.1.dist-info → pyedb-0.52.0.dist-info}/METADATA +4 -4
  35. {pyedb-0.50.1.dist-info → pyedb-0.52.0.dist-info}/RECORD +37 -37
  36. {pyedb-0.50.1.dist-info → pyedb-0.52.0.dist-info}/LICENSE +0 -0
  37. {pyedb-0.50.1.dist-info → pyedb-0.52.0.dist-info}/WHEEL +0 -0
@@ -94,7 +94,14 @@ class LayerCollection(GrpcLayerCollection):
94
94
  self._pedb = pedb
95
95
 
96
96
  def update_layout(self):
97
- """Update the layout with the current layer collection."""
97
+ """Update the layout with the current layer collection.
98
+
99
+ Examples
100
+ --------
101
+ >>> from pyedb import Edb
102
+ >>> edb = Edb()
103
+ >>> edb.stackup.update_layout()
104
+ """
98
105
  self._pedb.layout.layer_collection = self
99
106
 
100
107
  def add_layer_top(self, name, layer_type="signal", **kwargs):
@@ -115,6 +122,13 @@ class LayerCollection(GrpcLayerCollection):
115
122
  -------
116
123
  :class:`pyedb.grpc.database.layers.stackup_layer.StackupLayer`
117
124
  Layer object created.
125
+
126
+ Examples
127
+ --------
128
+ >>> from pyedb import Edb
129
+ >>> edb = Edb()
130
+ >>> top_layer = edb.stackup.add_layer_top("NewTopLayer", layer_type="signal", thickness="0.1mm",
131
+ ... material="copper")
118
132
  """
119
133
  thickness = GrpcValue(0.0)
120
134
  if "thickness" in kwargs:
@@ -147,6 +161,13 @@ class LayerCollection(GrpcLayerCollection):
147
161
  -------
148
162
  :class:`pyedb.grpc.database.layers.stackup_layer.StackupLayer`
149
163
  Layer object created.
164
+
165
+ Examples
166
+ --------
167
+ >>> from pyedb import Edb
168
+ >>> edb = Edb()
169
+ >>> bot_layer = edb.stackup.add_layer_bottom("NewBottomLayer", layer_type="signal", thickness="0.1mm",
170
+ ... material="copper")
150
171
  """
151
172
  thickness = GrpcValue(0.0)
152
173
  layer_type_map = {"dielectric": GrpcLayerType.DIELECTRIC_LAYER, "signal": GrpcLayerType.SIGNAL_LAYER}
@@ -188,6 +209,12 @@ class LayerCollection(GrpcLayerCollection):
188
209
  -------
189
210
  :class:`pyedb.grpc.database.layers.stackup_layer.StackupLayer`
190
211
  Layer object created.
212
+
213
+ Examples
214
+ --------
215
+ >>> from pyedb import Edb
216
+ >>> edb = Edb()
217
+ >>> new_layer = edb.stackup.add_layer_below("NewLayer", "TopLayer", layer_type="dielectric", thickness="0.05mm")
191
218
  """
192
219
  thickness = GrpcValue(0.0)
193
220
  if "thickness" in kwargs:
@@ -229,6 +256,12 @@ class LayerCollection(GrpcLayerCollection):
229
256
  -------
230
257
  :class:`pyedb.grpc.database.layers.stackup_layer.StackupLayer`
231
258
  Layer object created.
259
+
260
+ Examples
261
+ --------
262
+ >>> from pyedb import Edb
263
+ >>> edb = Edb()
264
+ >>> new_layer = edb.stackup.add_layer_above("NewLayer", "BottomLayer", layer_type="signal", thickness="0.05mm")
232
265
  """
233
266
  thickness = GrpcValue(0.0)
234
267
  if "thickness" in kwargs:
@@ -258,6 +291,12 @@ class LayerCollection(GrpcLayerCollection):
258
291
  -------
259
292
  :class:`pyedb.grpc.database.layers.layer.Layer`
260
293
  Layer object created.
294
+
295
+ Examples
296
+ --------
297
+ >>> from pyedb import Edb
298
+ >>> edb = Edb()
299
+ >>> outline_layer = edb.stackup.add_document_layer("Outline", layer_type="outline")
261
300
  """
262
301
  added_layer = self.add_layer_top(name)
263
302
  added_layer.type = GrpcLayerType.USER_LAYER
@@ -286,6 +325,12 @@ class LayerCollection(GrpcLayerCollection):
286
325
  -------
287
326
  dict[str, :class:`pyedb.grpc.database.layers.layer.Layer`]
288
327
  Dictionary of non-stackup layers.
328
+
329
+ Examples
330
+ --------
331
+ >>> from pyedb import Edb
332
+ >>> edb = Edb()
333
+ >>> non_stackup = edb.stackup.non_stackup_layers
289
334
  """
290
335
  return {
291
336
  layer.name: Layer(self._pedb, layer) for layer in self.get_layers(GrpcLayerTypeSet.NON_STACKUP_LAYER_SET)
@@ -299,6 +344,12 @@ class LayerCollection(GrpcLayerCollection):
299
344
  -------
300
345
  dict[str, :class:`pyedb.grpc.database.layers.layer.Layer`]
301
346
  Dictionary of all layers.
347
+
348
+ Examples
349
+ --------
350
+ >>> from pyedb import Edb
351
+ >>> edb = Edb()
352
+ >>> all_layers = edb.stackup.all_layers
302
353
  """
303
354
  return {layer.name: Layer(self._pedb, layer) for layer in self.get_layers(GrpcLayerTypeSet.ALL_LAYER_SET)}
304
355
 
@@ -310,6 +361,12 @@ class LayerCollection(GrpcLayerCollection):
310
361
  -------
311
362
  dict[str, :class:`pyedb.grpc.database.layers.stackup_layer.StackupLayer`]
312
363
  Dictionary of signal layers.
364
+
365
+ Examples
366
+ --------
367
+ >>> from pyedb import Edb
368
+ >>> edb = Edb()
369
+ >>> signal_layers = edb.stackup.signal_layers
313
370
  """
314
371
  return {
315
372
  layer.name: StackupLayer(self._pedb, layer) for layer in self.get_layers(GrpcLayerTypeSet.SIGNAL_LAYER_SET)
@@ -323,6 +380,12 @@ class LayerCollection(GrpcLayerCollection):
323
380
  -------
324
381
  dict[str, :class:`pyedb.grpc.database.layers.stackup_layer.StackupLayer`]
325
382
  Dictionary of dielectric layers.
383
+
384
+ Examples
385
+ --------
386
+ >>> from pyedb import Edb
387
+ >>> edb = Edb()
388
+ >>> dielectric_layers = edb.stackup.dielectric_layers
326
389
  """
327
390
  return {
328
391
  layer.name: StackupLayer(self._pedb, layer)
@@ -337,6 +400,12 @@ class LayerCollection(GrpcLayerCollection):
337
400
  -------
338
401
  list[list[int, str]]
339
402
  List of layers with their IDs and names.
403
+
404
+ Examples
405
+ --------
406
+ >>> from pyedb import Edb
407
+ >>> edb = Edb()
408
+ >>> layers_by_id = edb.stackup.layers_by_id
340
409
  """
341
410
  return [[obj.id, name] for name, obj in self.all_layers.items()]
342
411
 
@@ -348,6 +417,12 @@ class LayerCollection(GrpcLayerCollection):
348
417
  -------
349
418
  dict[str, :class:`pyedb.grpc.database.layers.stackup_layer.StackupLayer`]
350
419
  Dictionary of stackup layers.
420
+
421
+ Examples
422
+ --------
423
+ >>> from pyedb import Edb
424
+ >>> edb = Edb()
425
+ >>> layers = edb.stackup.layers
351
426
  """
352
427
  return {obj.name: StackupLayer(self._pedb, obj) for obj in self.get_layers(GrpcLayerTypeSet.STACKUP_LAYER_SET)}
353
428
 
@@ -418,6 +493,12 @@ class Stackup(LayerCollection):
418
493
  -------
419
494
  float
420
495
  Stackup thickness.
496
+
497
+ Examples
498
+ --------
499
+ >>> from pyedb import Edb
500
+ >>> edb = Edb()
501
+ >>> thickness = edb.stackup.thickness
421
502
  """
422
503
  return self.get_layout_thickness()
423
504
 
@@ -429,6 +510,12 @@ class Stackup(LayerCollection):
429
510
  -------
430
511
  int
431
512
  Number of layers.
513
+
514
+ Examples
515
+ --------
516
+ >>> from pyedb import Edb
517
+ >>> edb = Edb()
518
+ >>> num_layers = edb.stackup.num_layers
432
519
  """
433
520
  return len(list(self.layers.keys()))
434
521
 
@@ -441,7 +528,7 @@ class Stackup(LayerCollection):
441
528
  dielectric_material="FR4_epoxy",
442
529
  soldermask=True,
443
530
  soldermask_thickness="20um",
444
- ): # pragma: no cover
531
+ ) -> bool: # pragma: no cover
445
532
  """Create a symmetric stackup.
446
533
 
447
534
  Parameters
@@ -465,6 +552,12 @@ class Stackup(LayerCollection):
465
552
  -------
466
553
  bool
467
554
  ``True`` when successful, ``False`` when failed.
555
+
556
+ Examples
557
+ --------
558
+ >>> from pyedb import Edb
559
+ >>> edb = Edb()
560
+ >>> edb.stackup.create_symmetric_stackup(layer_count=4)
468
561
  """
469
562
  if not np:
470
563
  self._pedb.logger.error("Numpy is needed. Please, install it first.")
@@ -566,6 +659,12 @@ class Stackup(LayerCollection):
566
659
  - ``"laminate"``
567
660
  - ``"overlapping"``
568
661
  - ``"multizone"``
662
+
663
+ Examples
664
+ --------
665
+ >>> from pyedb import Edb
666
+ >>> edb = Edb()
667
+ >>> mode = edb.stackup.mode
569
668
  """
570
669
  return super().mode.name.lower()
571
670
 
@@ -699,6 +798,12 @@ class Stackup(LayerCollection):
699
798
  -------
700
799
  bool
701
800
  ``True`` when successful.
801
+
802
+ Examples
803
+ --------
804
+ >>> from pyedb import Edb
805
+ >>> edb = Edb()
806
+ >>> edb.stackup.add_outline_layer()
702
807
  """
703
808
  return self.add_document_layer(name="Outline", layer_type="outline")
704
809
 
@@ -69,7 +69,7 @@ class PointTerminal(GrpcPointTerminal):
69
69
  super(PointTerminal, self.__class__).layer.__set__(self, value)
70
70
 
71
71
  @property
72
- def ref_terminal(self) -> PointTerminal:
72
+ def ref_terminal(self) -> any:
73
73
  """Reference terminal.
74
74
 
75
75
  Returns
@@ -84,7 +84,7 @@ class PointTerminal(GrpcPointTerminal):
84
84
  super().reference_terminal = value
85
85
 
86
86
  @property
87
- def reference_terminal(self) -> PointTerminal:
87
+ def reference_terminal(self) -> any:
88
88
  """Reference terminal.
89
89
 
90
90
  Returns
@@ -441,7 +441,7 @@ class Terminal(GrpcTerminal):
441
441
  return PadstackInstance(self._pedb.pin_obj)
442
442
 
443
443
  @property
444
- def magnitude(self) -> FLOAT:
444
+ def magnitude(self) -> float:
445
445
  """Get the magnitude of the source.
446
446
 
447
447
  Returns