pyedb 0.53.0__py3-none-any.whl → 0.54.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 (84) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_ports_sources.py +6 -8
  3. pyedb/configuration/configuration.py +2 -1
  4. pyedb/dotnet/database/cell/hierarchy/model.py +1 -1
  5. pyedb/dotnet/database/cell/layout.py +1 -1
  6. pyedb/dotnet/database/cell/layout_obj.py +3 -3
  7. pyedb/dotnet/database/cell/primitive/path.py +1 -1
  8. pyedb/dotnet/database/cell/primitive/primitive.py +8 -8
  9. pyedb/dotnet/database/cell/terminal/pingroup_terminal.py +1 -1
  10. pyedb/dotnet/database/cell/terminal/point_terminal.py +1 -1
  11. pyedb/dotnet/database/cell/terminal/terminal.py +24 -26
  12. pyedb/dotnet/database/components.py +24 -24
  13. pyedb/dotnet/database/definition/component_def.py +3 -3
  14. pyedb/dotnet/database/definition/component_model.py +1 -1
  15. pyedb/dotnet/database/definition/package_def.py +1 -1
  16. pyedb/dotnet/database/dotnet/database.py +43 -38
  17. pyedb/dotnet/database/dotnet/primitive.py +16 -16
  18. pyedb/dotnet/database/edb_data/hfss_extent_info.py +6 -6
  19. pyedb/dotnet/database/edb_data/layer_data.py +14 -14
  20. pyedb/dotnet/database/edb_data/padstacks_data.py +12 -12
  21. pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
  22. pyedb/dotnet/database/edb_data/sources.py +6 -6
  23. pyedb/dotnet/database/edb_data/variables.py +7 -3
  24. pyedb/dotnet/database/geometry/point_data.py +1 -1
  25. pyedb/dotnet/database/geometry/polygon_data.py +2 -4
  26. pyedb/dotnet/database/hfss.py +7 -7
  27. pyedb/dotnet/database/materials.py +2 -2
  28. pyedb/dotnet/database/modeler.py +8 -11
  29. pyedb/dotnet/database/nets.py +1 -1
  30. pyedb/dotnet/database/padstack.py +72 -1
  31. pyedb/dotnet/database/sim_setup_data/data/settings.py +24 -0
  32. pyedb/dotnet/database/sim_setup_data/io/siwave.py +26 -1
  33. pyedb/dotnet/database/siwave.py +5 -5
  34. pyedb/dotnet/database/stackup.py +74 -77
  35. pyedb/dotnet/database/utilities/heatsink.py +4 -4
  36. pyedb/dotnet/database/utilities/obj_base.py +1 -1
  37. pyedb/dotnet/database/utilities/value.py +116 -0
  38. pyedb/dotnet/edb.py +43 -43
  39. pyedb/generic/design_types.py +12 -3
  40. pyedb/grpc/__init__.py +0 -0
  41. pyedb/grpc/database/components.py +53 -17
  42. pyedb/grpc/database/definition/materials.py +23 -30
  43. pyedb/grpc/database/definition/package_def.py +15 -15
  44. pyedb/grpc/database/definition/padstack_def.py +51 -51
  45. pyedb/grpc/database/geometry/arc_data.py +7 -5
  46. pyedb/grpc/database/geometry/point_3d_data.py +8 -7
  47. pyedb/grpc/database/geometry/polygon_data.py +3 -2
  48. pyedb/grpc/database/hierarchy/component.py +43 -38
  49. pyedb/grpc/database/hierarchy/pin_pair_model.py +15 -14
  50. pyedb/grpc/database/hierarchy/pingroup.py +9 -9
  51. pyedb/grpc/database/layers/stackup_layer.py +45 -44
  52. pyedb/grpc/database/layout/layout.py +9 -8
  53. pyedb/grpc/database/layout/voltage_regulator.py +7 -7
  54. pyedb/grpc/database/layout_validation.py +13 -12
  55. pyedb/grpc/database/modeler.py +51 -54
  56. pyedb/grpc/database/nets.py +42 -31
  57. pyedb/grpc/database/padstacks.py +270 -175
  58. pyedb/grpc/database/ports/ports.py +5 -6
  59. pyedb/grpc/database/primitive/bondwire.py +8 -7
  60. pyedb/grpc/database/primitive/circle.py +4 -4
  61. pyedb/grpc/database/primitive/padstack_instance.py +18 -18
  62. pyedb/grpc/database/primitive/path.py +7 -7
  63. pyedb/grpc/database/primitive/polygon.py +3 -3
  64. pyedb/grpc/database/primitive/primitive.py +13 -17
  65. pyedb/grpc/database/primitive/rectangle.py +13 -13
  66. pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
  67. pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +10 -0
  68. pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +17 -1
  69. pyedb/grpc/database/siwave.py +30 -24
  70. pyedb/grpc/database/source_excitations.py +333 -229
  71. pyedb/grpc/database/stackup.py +164 -147
  72. pyedb/grpc/database/terminal/bundle_terminal.py +17 -7
  73. pyedb/grpc/database/terminal/edge_terminal.py +10 -0
  74. pyedb/grpc/database/terminal/padstack_instance_terminal.py +15 -4
  75. pyedb/grpc/database/terminal/pingroup_terminal.py +11 -10
  76. pyedb/grpc/database/terminal/point_terminal.py +4 -3
  77. pyedb/grpc/database/terminal/terminal.py +9 -9
  78. pyedb/grpc/database/utility/value.py +109 -0
  79. pyedb/grpc/edb.py +59 -38
  80. pyedb/grpc/edb_init.py +0 -7
  81. {pyedb-0.53.0.dist-info → pyedb-0.54.0.dist-info}/METADATA +3 -3
  82. {pyedb-0.53.0.dist-info → pyedb-0.54.0.dist-info}/RECORD +84 -81
  83. {pyedb-0.53.0.dist-info → pyedb-0.54.0.dist-info}/WHEEL +0 -0
  84. {pyedb-0.53.0.dist-info → pyedb-0.54.0.dist-info}/licenses/LICENSE +0 -0
@@ -25,7 +25,8 @@ from __future__ import absolute_import
25
25
  from ansys.edb.core.layer.layer import LayerType as GrpcLayerType
26
26
  from ansys.edb.core.layer.stackup_layer import RoughnessRegion as GrpcRoughnessRegion
27
27
  from ansys.edb.core.layer.stackup_layer import StackupLayer as GrpcStackupLayer
28
- from ansys.edb.core.utility.value import Value as GrpcValue
28
+
29
+ from pyedb.grpc.database.utility.value import Value
29
30
 
30
31
 
31
32
  class StackupLayer(GrpcStackupLayer):
@@ -133,8 +134,8 @@ class StackupLayer(GrpcStackupLayer):
133
134
  self._edb_object = GrpcStackupLayer.create(
134
135
  self._name,
135
136
  layer_type,
136
- GrpcValue(0),
137
- GrpcValue(0),
137
+ Value(0),
138
+ Value(0),
138
139
  "copper",
139
140
  )
140
141
 
@@ -147,12 +148,12 @@ class StackupLayer(GrpcStackupLayer):
147
148
  float
148
149
  Lower elevation.
149
150
  """
150
- return round(super().lower_elevation.value, 9)
151
+ return Value(super().lower_elevation, self._pedb.active_cell)
151
152
 
152
153
  @lower_elevation.setter
153
154
  def lower_elevation(self, value):
154
155
  if self._pedb.stackup.mode == "overlapping":
155
- super(StackupLayer, self.__class__).lower_elevation.__set__(self, GrpcValue(value))
156
+ super(StackupLayer, self.__class__).lower_elevation.__set__(self, Value(value))
156
157
 
157
158
  @property
158
159
  def fill_material(self) -> str:
@@ -180,7 +181,7 @@ class StackupLayer(GrpcStackupLayer):
180
181
  float
181
182
  Upper elevation.
182
183
  """
183
- return round(super().upper_elevation.value, 9)
184
+ return Value(super().upper_elevation, self._pedb.active_cell)
184
185
 
185
186
  @property
186
187
  def is_negative(self) -> bool:
@@ -303,11 +304,11 @@ class StackupLayer(GrpcStackupLayer):
303
304
  float
304
305
  Layer thickness.
305
306
  """
306
- return round(super().thickness.value, 9)
307
+ return Value(super().thickness, self._pedb.active_cell)
307
308
 
308
309
  @thickness.setter
309
310
  def thickness(self, value):
310
- super(StackupLayer, self.__class__).thickness.__set__(self, GrpcValue(value))
311
+ super(StackupLayer, self.__class__).thickness.__set__(self, Value(value))
311
312
 
312
313
  @property
313
314
  def etch_factor(self) -> float:
@@ -318,7 +319,7 @@ class StackupLayer(GrpcStackupLayer):
318
319
  float
319
320
  Etching factor value.
320
321
  """
321
- return super().etch_factor.value
322
+ return Value(super().etch_factor, self._pedb.active_cell)
322
323
 
323
324
  @etch_factor.setter
324
325
  def etch_factor(self, value):
@@ -326,7 +327,7 @@ class StackupLayer(GrpcStackupLayer):
326
327
  self.etch_factor_enabled = False
327
328
  else:
328
329
  self.etch_factor_enabled = True
329
- super(StackupLayer, self.__class__).etch_factor.__set__(self, GrpcValue(value))
330
+ super(StackupLayer, self.__class__).etch_factor.__set__(self, Value(value))
330
331
 
331
332
  @property
332
333
  def top_hallhuray_nodule_radius(self) -> float:
@@ -340,7 +341,7 @@ class StackupLayer(GrpcStackupLayer):
340
341
  try:
341
342
  top_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.TOP)
342
343
  if len(top_roughness_model) == 2:
343
- return top_roughness_model[0].value
344
+ return Value(top_roughness_model[0], self._pedb.active_cell)
344
345
  else:
345
346
  return 0.0
346
347
  except:
@@ -351,7 +352,7 @@ class StackupLayer(GrpcStackupLayer):
351
352
  try:
352
353
  top_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.TOP)
353
354
  if len(top_roughness_model) == 2:
354
- top_roughness_model[0] = GrpcValue(value)
355
+ top_roughness_model[0] = Value(value)
355
356
  self.set_roughness_model(top_roughness_model, GrpcRoughnessRegion.TOP)
356
357
  except:
357
358
  pass
@@ -368,7 +369,7 @@ class StackupLayer(GrpcStackupLayer):
368
369
  try:
369
370
  top_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.TOP)
370
371
  if len(top_roughness_model) == 2:
371
- return top_roughness_model[1].value
372
+ return Value(top_roughness_model[1], self._pedb.active_cell)
372
373
  else:
373
374
  return 0.0
374
375
  except:
@@ -379,7 +380,7 @@ class StackupLayer(GrpcStackupLayer):
379
380
  try:
380
381
  top_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.TOP)
381
382
  if len(top_roughness_model) == 2:
382
- top_roughness_model[1] = GrpcValue(value)
383
+ top_roughness_model[1] = Value(value)
383
384
  self.set_roughness_model(top_roughness_model, GrpcRoughnessRegion.TOP)
384
385
  except:
385
386
  pass
@@ -396,7 +397,7 @@ class StackupLayer(GrpcStackupLayer):
396
397
  try:
397
398
  bottom_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.BOTTOM)
398
399
  if len(bottom_roughness_model) == 2:
399
- return round(bottom_roughness_model[0].value, 9)
400
+ return Value(bottom_roughness_model[0], self._pedb.active_cell)
400
401
  else:
401
402
  return 0.0
402
403
  except:
@@ -407,7 +408,7 @@ class StackupLayer(GrpcStackupLayer):
407
408
  try:
408
409
  bottom_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.BOTTOM)
409
410
  if len(bottom_roughness_model) == 2:
410
- bottom_roughness_model[0] = GrpcValue(value)
411
+ bottom_roughness_model[0] = Value(value)
411
412
  self.set_roughness_model(bottom_roughness_model, GrpcRoughnessRegion.BOTTOM)
412
413
  except:
413
414
  pass
@@ -424,7 +425,7 @@ class StackupLayer(GrpcStackupLayer):
424
425
  try:
425
426
  bottom_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.BOTTOM)
426
427
  if len(bottom_roughness_model) == 2:
427
- return bottom_roughness_model[1].value
428
+ return Value(bottom_roughness_model[1], self._pedb.active_cell)
428
429
  else:
429
430
  return 0.0
430
431
  except:
@@ -435,7 +436,7 @@ class StackupLayer(GrpcStackupLayer):
435
436
  try:
436
437
  bottom_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.BOTTOM)
437
438
  if len(bottom_roughness_model) == 2:
438
- bottom_roughness_model[1] = GrpcValue(value)
439
+ bottom_roughness_model[1] = Value(value)
439
440
  self.set_roughness_model(bottom_roughness_model, GrpcRoughnessRegion.BOTTOM)
440
441
  except:
441
442
  pass
@@ -453,17 +454,17 @@ class StackupLayer(GrpcStackupLayer):
453
454
  try:
454
455
  side_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.SIDE)
455
456
  if len(side_roughness_model) == 2:
456
- return round(side_roughness_model[0].value, 9)
457
- return 0.0
457
+ return Value(side_roughness_model[0], self._pedb.active_cell)
458
+ return Value(0.0)
458
459
  except:
459
- return 0.0
460
+ return Value(0.0)
460
461
 
461
462
  @side_hallhuray_nodule_radius.setter
462
463
  def side_hallhuray_nodule_radius(self, value):
463
464
  try:
464
465
  side_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.SIDE)
465
466
  if len(side_roughness_model) == 2:
466
- side_roughness_model[0] = GrpcValue(value)
467
+ side_roughness_model[0] = Value(value)
467
468
  self.set_roughness_model(side_roughness_model, GrpcRoughnessRegion.SIDE)
468
469
  except:
469
470
  pass
@@ -480,7 +481,7 @@ class StackupLayer(GrpcStackupLayer):
480
481
  try:
481
482
  side_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.SIDE)
482
483
  if len(side_roughness_model) == 2:
483
- return side_roughness_model[1].value
484
+ return Value(side_roughness_model[1], self._pedb.active_cell)
484
485
  return 0.0
485
486
  except:
486
487
  return 0.0
@@ -490,7 +491,7 @@ class StackupLayer(GrpcStackupLayer):
490
491
  try:
491
492
  side_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.SIDE)
492
493
  if len(side_roughness_model) == 2:
493
- side_roughness_model[1] = GrpcValue(value)
494
+ side_roughness_model[1] = Value(value)
494
495
  self.set_roughness_model(side_roughness_model, GrpcRoughnessRegion.SIDE)
495
496
  except:
496
497
  pass
@@ -506,19 +507,19 @@ class StackupLayer(GrpcStackupLayer):
506
507
  """
507
508
  try:
508
509
  top_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.TOP)
509
- if isinstance(top_roughness_model, GrpcValue):
510
- return top_roughness_model.value
510
+ if isinstance(top_roughness_model, Value):
511
+ return Value(top_roughness_model, self._pedb.active_cell)
511
512
  else:
512
- return 0.0
513
+ return Value(0.0)
513
514
  except:
514
- return 0.0
515
+ return Value(0.0)
515
516
 
516
517
  @top_groisse_roughness.setter
517
518
  def top_groisse_roughness(self, value):
518
519
  try:
519
520
  top_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.TOP)
520
- if isinstance(top_roughness_model, GrpcValue):
521
- top_roughness_model = GrpcValue(value)
521
+ if isinstance(top_roughness_model, Value):
522
+ top_roughness_model = Value(value)
522
523
  self.set_roughness_model(top_roughness_model, GrpcRoughnessRegion.TOP)
523
524
  except:
524
525
  pass
@@ -534,19 +535,19 @@ class StackupLayer(GrpcStackupLayer):
534
535
  """
535
536
  try:
536
537
  bottom_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.BOTTOM)
537
- if isinstance(bottom_roughness_model, GrpcValue):
538
- return bottom_roughness_model.value
538
+ if isinstance(bottom_roughness_model, Value):
539
+ return Value(bottom_roughness_model, self._pedb.active_cell)
539
540
  else:
540
- return 0.0
541
+ return Value(0.0)
541
542
  except:
542
- return 0.0
543
+ return Value(0.0)
543
544
 
544
545
  @bottom_groisse_roughness.setter
545
546
  def bottom_groisse_roughness(self, value):
546
547
  try:
547
548
  bottom_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.BOTTOM)
548
- if isinstance(bottom_roughness_model, GrpcValue):
549
- bottom_roughness_model = GrpcValue(value)
549
+ if isinstance(bottom_roughness_model, Value):
550
+ bottom_roughness_model = Value(value)
550
551
  self.set_roughness_model(bottom_roughness_model, GrpcRoughnessRegion.BOTTOM)
551
552
  except:
552
553
  pass
@@ -562,19 +563,19 @@ class StackupLayer(GrpcStackupLayer):
562
563
  """
563
564
  try:
564
565
  side_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.SIDE)
565
- if isinstance(side_roughness_model, GrpcValue):
566
- return side_roughness_model.value
566
+ if isinstance(side_roughness_model, Value):
567
+ return Value(side_roughness_model, self._pedb.active_cell)
567
568
  else:
568
- return 0.0
569
+ return Value(0.0)
569
570
  except:
570
- return 0.0
571
+ return Value(0.0)
571
572
 
572
573
  @side_groisse_roughness.setter
573
574
  def side_groisse_roughness(self, value):
574
575
  try:
575
576
  side_roughness_model = self.get_roughness_model(GrpcRoughnessRegion.BOTTOM)
576
- if isinstance(side_roughness_model, GrpcValue):
577
- side_roughness_model = GrpcValue(value)
577
+ if isinstance(side_roughness_model, Value):
578
+ side_roughness_model = Value(value)
578
579
  self.set_roughness_model(side_roughness_model, GrpcRoughnessRegion.BOTTOM)
579
580
  except Exception as e:
580
581
  self._pedb.logger.error(e)
@@ -619,9 +620,9 @@ class StackupLayer(GrpcStackupLayer):
619
620
  self.roughness_enabled = True
620
621
  for r in regions:
621
622
  if model_type == "huray":
622
- model = (GrpcValue(huray_radius), GrpcValue(huray_surface_ratio))
623
+ model = (Value(huray_radius), Value(huray_surface_ratio))
623
624
  else:
624
- model = GrpcValue(groisse_roughness)
625
+ model = Value(groisse_roughness)
625
626
  self.set_roughness_model(model, r)
626
627
  if [
627
628
  self.get_roughness_model(GrpcRoughnessRegion.TOP),
@@ -62,6 +62,7 @@ class Layout(GrpcLayout):
62
62
  def __init__(self, pedb):
63
63
  super().__init__(pedb.active_cell._Cell__stub.GetLayout(pedb.active_cell.msg))
64
64
  self._pedb = pedb
65
+ self.__primitives = []
65
66
 
66
67
  @property
67
68
  def cell(self):
@@ -73,21 +74,21 @@ class Layout(GrpcLayout):
73
74
 
74
75
  @property
75
76
  def primitives(self) -> list[any]:
76
- prims = []
77
+ self.__primitives = []
77
78
  for prim in super().primitives:
78
79
  if isinstance(prim, ansys.edb.core.primitive.path.Path):
79
- prims.append(Path(self._pedb, prim))
80
+ self.__primitives.append(Path(self._pedb, prim))
80
81
  elif isinstance(prim, ansys.edb.core.primitive.polygon.Polygon):
81
- prims.append(Polygon(self._pedb, prim))
82
+ self.__primitives.append(Polygon(self._pedb, prim))
82
83
  elif isinstance(prim, ansys.edb.core.primitive.padstack_instance.PadstackInstance):
83
- prims.append(PadstackInstance(self._pedb, prim))
84
+ self.__primitives.append(PadstackInstance(self._pedb, prim))
84
85
  elif isinstance(prim, ansys.edb.core.primitive.rectangle.Rectangle):
85
- prims.append(Rectangle(self._pedb, prim))
86
+ self.__primitives.append(Rectangle(self._pedb, prim))
86
87
  elif isinstance(prim, ansys.edb.core.primitive.circle.Circle):
87
- prims.append(Circle(self._pedb, prim))
88
+ self.__primitives.append(Circle(self._pedb, prim))
88
89
  elif isinstance(prim, ansys.edb.core.primitive.bondwire.Bondwire):
89
- prims.append(Bondwire(self._pedb, prim))
90
- return prims
90
+ self.__primitives.append(Bondwire(self._pedb, prim))
91
+ return self.__primitives
91
92
 
92
93
  @property
93
94
  def terminals(self) -> list[any]:
@@ -23,9 +23,9 @@
23
23
  from ansys.edb.core.layout.voltage_regulator import (
24
24
  VoltageRegulator as GrpcVoltageRegulator,
25
25
  )
26
- from ansys.edb.core.utility.value import Value as GrpcValue
27
26
 
28
27
  from pyedb.grpc.database.primitive.padstack_instance import PadstackInstance
28
+ from pyedb.grpc.database.utility.value import Value
29
29
 
30
30
 
31
31
  class VoltageRegulator(GrpcVoltageRegulator):
@@ -70,11 +70,11 @@ class VoltageRegulator(GrpcVoltageRegulator):
70
70
  float
71
71
  Current value.
72
72
  """
73
- return self.load_regulator_current.value
73
+ return Value(self.load_regulator_current)
74
74
 
75
75
  @load_regulator_current.setter
76
76
  def load_regulator_current(self, value):
77
- self.load_regulation_percent = GrpcValue(value)
77
+ self.load_regulation_percent = Value(value)
78
78
 
79
79
  @property
80
80
  def load_regulation_percent(self) -> float:
@@ -85,11 +85,11 @@ class VoltageRegulator(GrpcVoltageRegulator):
85
85
  float
86
86
  Percent value.
87
87
  """
88
- return self.load_regulation_percent.value
88
+ return Value(self.load_regulation_percent)
89
89
 
90
90
  @load_regulation_percent.setter
91
91
  def load_regulation_percent(self, value):
92
- self.load_regulation_percent = GrpcValue(value)
92
+ self.load_regulation_percent = Value(value)
93
93
 
94
94
  @property
95
95
  def negative_remote_sense_pin(self) -> PadstackInstance:
@@ -142,8 +142,8 @@ class VoltageRegulator(GrpcVoltageRegulator):
142
142
  float
143
143
  Voltage value.
144
144
  """
145
- return self.voltage.value
145
+ return Value(self.voltage)
146
146
 
147
147
  @voltage.setter
148
148
  def voltage(self, value):
149
- self.voltage = GrpcValue(value)
149
+ self.voltage = Value(value)
@@ -21,6 +21,7 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  import re
24
+ from typing import Any, List, Optional, Union
24
25
 
25
26
  from ansys.edb.core.database import ProductIdType as GrpcProductIdType
26
27
 
@@ -33,11 +34,11 @@ from pyedb.grpc.database.primitive.padstack_instance import PadstackInstance
33
34
  class LayoutValidation:
34
35
  """Manages all layout validation capabilities"""
35
36
 
36
- def __init__(self, pedb):
37
+ def __init__(self, pedb: Any) -> None:
37
38
  self._pedb = pedb
38
39
  self._layout_instance = self._pedb.layout_instance
39
40
 
40
- def dc_shorts(self, net_list=None, fix=False) -> list[list[str, str]]:
41
+ def dc_shorts(self, net_list: Optional[Union[str, List[str]]] = None, fix: bool = False) -> List[List[str]]:
41
42
  """Find DC shorts on layout.
42
43
 
43
44
  Parameters
@@ -127,12 +128,12 @@ class LayoutValidation:
127
128
 
128
129
  def disjoint_nets(
129
130
  self,
130
- net_list=None,
131
- keep_only_main_net=False,
132
- clean_disjoints_less_than=0.0,
133
- order_by_area=False,
134
- keep_disjoint_pins=False,
135
- ) -> list[str]:
131
+ net_list: Optional[Union[str, List[str]]] = None,
132
+ keep_only_main_net: bool = False,
133
+ clean_disjoints_less_than: float = 0.0,
134
+ order_by_area: bool = False,
135
+ keep_disjoint_pins: bool = False,
136
+ ) -> List[str]:
136
137
  """Find and fix disjoint nets from a given netlist.
137
138
 
138
139
  Parameters
@@ -274,7 +275,7 @@ class LayoutValidation:
274
275
 
275
276
  return new_nets
276
277
 
277
- def fix_self_intersections(self, net_list=None) -> bool:
278
+ def fix_self_intersections(self, net_list: Optional[Union[str, List[str]]] = None) -> bool:
278
279
  """Find and fix self intersections from a given netlist.
279
280
 
280
281
  Parameters
@@ -309,7 +310,7 @@ class LayoutValidation:
309
310
  self._pedb.logger.info("Self-intersection not found.")
310
311
  return True
311
312
 
312
- def illegal_net_names(self, fix=False):
313
+ def illegal_net_names(self, fix: bool = False) -> None:
313
314
  """Find and fix illegal net names.
314
315
 
315
316
  Examples
@@ -336,7 +337,7 @@ class LayoutValidation:
336
337
  self._pedb._logger.info("Found {} illegal net names.".format(len(renamed_nets)))
337
338
  return
338
339
 
339
- def illegal_rlc_values(self, fix=False) -> list[str]:
340
+ def illegal_rlc_values(self, fix: bool = False) -> List[str]:
340
341
  """Find and fix RLC illegal values.
341
342
 
342
343
  Examples
@@ -360,7 +361,7 @@ class LayoutValidation:
360
361
  self._pedb._logger.info(f"Found {len(temp)} inductors have no value.")
361
362
  return temp
362
363
 
363
- def padstacks_no_name(self, fix=False):
364
+ def padstacks_no_name(self, fix: bool = False) -> None:
364
365
  """Identify and fix padstacks without names.
365
366
 
366
367
  Examples