pyedb 0.13.dev0__py3-none-any.whl → 0.14.1__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 (75) hide show
  1. pyedb/__init__.py +1 -1
  2. pyedb/configuration/cfg_common.py +0 -5
  3. pyedb/configuration/cfg_components.py +0 -2
  4. pyedb/configuration/cfg_operations.py +0 -2
  5. pyedb/configuration/cfg_package_definition.py +0 -2
  6. pyedb/configuration/cfg_ports_sources.py +14 -11
  7. pyedb/configuration/cfg_stackup.py +0 -7
  8. pyedb/configuration/configuration.py +0 -6
  9. pyedb/dotnet/application/Variables.py +4 -40
  10. pyedb/dotnet/edb.py +27 -82
  11. pyedb/dotnet/edb_core/{edb_data/components_data.py → cell/hierarchy/component.py} +13 -133
  12. pyedb/dotnet/edb_core/cell/hierarchy/model.py +0 -3
  13. pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py +30 -0
  14. pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py +105 -0
  15. pyedb/dotnet/edb_core/cell/hierarchy/s_parameter_model.py +34 -0
  16. pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py +34 -0
  17. pyedb/dotnet/edb_core/cell/layout.py +137 -0
  18. pyedb/dotnet/edb_core/cell/layout_obj.py +2 -4
  19. pyedb/dotnet/edb_core/cell/primitive.py +199 -1
  20. pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py +52 -0
  21. pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py +50 -0
  22. pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +88 -0
  23. pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +59 -0
  24. pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +73 -0
  25. pyedb/dotnet/edb_core/{edb_data/terminals.py → cell/terminal/terminal.py} +33 -242
  26. pyedb/dotnet/edb_core/components.py +10 -56
  27. pyedb/dotnet/edb_core/definition/component_def.py +1 -8
  28. pyedb/dotnet/edb_core/definition/component_model.py +0 -2
  29. pyedb/dotnet/edb_core/definition/definitions.py +0 -2
  30. pyedb/dotnet/edb_core/definition/package_def.py +7 -5
  31. pyedb/dotnet/edb_core/edb_data/control_file.py +0 -3
  32. pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +0 -5
  33. pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py +4 -9
  34. pyedb/dotnet/edb_core/edb_data/layer_data.py +0 -7
  35. pyedb/dotnet/edb_core/edb_data/nets_data.py +2 -5
  36. pyedb/dotnet/edb_core/edb_data/padstacks_data.py +11 -29
  37. pyedb/dotnet/edb_core/edb_data/ports.py +4 -4
  38. pyedb/dotnet/edb_core/edb_data/primitives_data.py +3 -26
  39. pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +13 -20
  40. pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +3 -11
  41. pyedb/dotnet/edb_core/edb_data/sources.py +12 -17
  42. pyedb/dotnet/edb_core/general.py +1 -6
  43. pyedb/dotnet/edb_core/geometry/polygon_data.py +0 -3
  44. pyedb/dotnet/edb_core/hfss.py +1 -33
  45. pyedb/dotnet/edb_core/layout.py +0 -35
  46. pyedb/dotnet/edb_core/layout_validation.py +1 -3
  47. pyedb/dotnet/edb_core/materials.py +1 -22
  48. pyedb/dotnet/edb_core/net_class.py +0 -8
  49. pyedb/dotnet/edb_core/nets.py +4 -29
  50. pyedb/dotnet/edb_core/padstack.py +76 -30
  51. pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py +72 -0
  52. pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py +287 -0
  53. pyedb/dotnet/edb_core/{edb_data/hfss_simulation_setup_data.py → sim_setup_data/data/settings.py} +174 -878
  54. pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +509 -0
  55. pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py +0 -0
  56. pyedb/dotnet/edb_core/{edb_data/siwave_simulation_setup_data.py → sim_setup_data/io/siwave.py} +0 -341
  57. pyedb/dotnet/edb_core/siwave.py +5 -33
  58. pyedb/dotnet/edb_core/stackup.py +4 -51
  59. pyedb/dotnet/edb_core/utilities/simulation_setup.py +613 -366
  60. pyedb/generic/data_handlers.py +1 -9
  61. pyedb/generic/general_methods.py +3 -53
  62. pyedb/generic/plot.py +1 -2
  63. pyedb/ipc2581/ecad/cad_data/layer_feature.py +1 -7
  64. pyedb/ipc2581/ecad/cad_data/package.py +1 -4
  65. pyedb/ipc2581/ecad/cad_data/path.py +1 -3
  66. pyedb/ipc2581/ecad/cad_data/polygon.py +1 -6
  67. pyedb/ipc2581/ecad/cad_data/step.py +1 -10
  68. pyedb/ipc2581/ipc2581.py +8 -15
  69. pyedb/modeler/geometry_operators.py +164 -67
  70. pyedb/siwave.py +25 -32
  71. {pyedb-0.13.dev0.dist-info → pyedb-0.14.1.dist-info}/METADATA +2 -2
  72. {pyedb-0.13.dev0.dist-info → pyedb-0.14.1.dist-info}/RECORD +75 -61
  73. /pyedb/dotnet/edb_core/cell/{__init__.py → terminal/__init__.py} +0 -0
  74. {pyedb-0.13.dev0.dist-info → pyedb-0.14.1.dist-info}/LICENSE +0 -0
  75. {pyedb-0.13.dev0.dist-info → pyedb-0.14.1.dist-info}/WHEEL +0 -0
@@ -25,8 +25,8 @@ import json
25
25
  import os
26
26
 
27
27
  from pyedb.dotnet.clr_module import Dictionary
28
- from pyedb.dotnet.edb_core.edb_data.hfss_simulation_setup_data import AdaptiveType
29
28
  from pyedb.dotnet.edb_core.edb_data.sources import Source, SourceType
29
+ from pyedb.dotnet.edb_core.utilities.simulation_setup import AdaptiveType
30
30
  from pyedb.generic.constants import (
31
31
  BasisOrder,
32
32
  CutoutSubdesignType,
@@ -35,7 +35,7 @@ from pyedb.generic.constants import (
35
35
  SweepType,
36
36
  validate_enum_class_value,
37
37
  )
38
- from pyedb.generic.general_methods import generate_unique_name, pyedb_function_handler
38
+ from pyedb.generic.general_methods import generate_unique_name
39
39
 
40
40
 
41
41
  class SimulationConfigurationBatch(object):
@@ -525,7 +525,6 @@ class SimulationConfigurationBatch(object):
525
525
  if len([src for src in value if isinstance(src, Source)]) == len(value):
526
526
  self._sources = value
527
527
 
528
- @pyedb_function_handler()
529
528
  def add_source(self, source=None): # pragma: no cover
530
529
  """Add a new source to configuration.
531
530
 
@@ -1912,7 +1911,7 @@ class SimulationConfigurationAc(object):
1912
1911
 
1913
1912
  Returns
1914
1913
  -------
1915
- class: pyedb.dotnet.edb_core.edb_data.hfss_simulation_setup_data.AdaptiveType
1914
+ class: pyedb.dotnet.edb_core.edb_data.simulation_setup.AdaptiveType
1916
1915
  """
1917
1916
  return self._adaptive_type
1918
1917
 
@@ -2355,7 +2354,6 @@ class SimulationConfiguration(object):
2355
2354
  """
2356
2355
  return self._batch_solve_settings
2357
2356
 
2358
- @pyedb_function_handler()
2359
2357
  def build_simulation_project(self):
2360
2358
  """Build active simulation project. This method requires to be run inside Edb Class.
2361
2359
 
@@ -2433,7 +2431,6 @@ class SimulationConfiguration(object):
2433
2431
  prop_values = [value.strip()]
2434
2432
  return prop_values
2435
2433
 
2436
- @pyedb_function_handler()
2437
2434
  def add_dc_ground_source_term(self, source_name=None, node_to_ground=1):
2438
2435
  """Add a dc ground source terminal for Siwave.
2439
2436
 
@@ -2705,7 +2702,6 @@ class SimulationConfiguration(object):
2705
2702
  else:
2706
2703
  self.__setattr__(k, v)
2707
2704
 
2708
- @pyedb_function_handler()
2709
2705
  def export_json(self, output_file):
2710
2706
  """Export Json file from SimulationConfiguration object.
2711
2707
 
@@ -2735,7 +2731,6 @@ class SimulationConfiguration(object):
2735
2731
  else:
2736
2732
  return False
2737
2733
 
2738
- @pyedb_function_handler()
2739
2734
  def import_json(self, input_file):
2740
2735
  """Import Json file into SimulationConfiguration object instance.
2741
2736
 
@@ -2764,7 +2759,6 @@ class SimulationConfiguration(object):
2764
2759
  else:
2765
2760
  return False
2766
2761
 
2767
- @pyedb_function_handler()
2768
2762
  def add_voltage_source(
2769
2763
  self,
2770
2764
  name="",
@@ -2836,7 +2830,6 @@ class SimulationConfiguration(object):
2836
2830
  except: # pragma: no cover
2837
2831
  return False
2838
2832
 
2839
- @pyedb_function_handler()
2840
2833
  def add_current_source(
2841
2834
  self,
2842
2835
  name="",
@@ -2908,7 +2901,6 @@ class SimulationConfiguration(object):
2908
2901
  except: # pragma: no cover
2909
2902
  return False
2910
2903
 
2911
- @pyedb_function_handler()
2912
2904
  def add_rlc(
2913
2905
  self,
2914
2906
  name="",
@@ -23,7 +23,7 @@
23
23
  import warnings
24
24
 
25
25
  from pyedb.generic.constants import NodeType, SourceType
26
- from pyedb.generic.general_methods import generate_unique_name, pyedb_function_handler
26
+ from pyedb.generic.general_methods import generate_unique_name
27
27
 
28
28
 
29
29
  class Node(object):
@@ -306,7 +306,6 @@ class PinGroup(object):
306
306
  def net_name(self):
307
307
  return self._edb_pin_group.GetNet().GetName()
308
308
 
309
- @pyedb_function_handler
310
309
  def get_terminal(self, name=None, create_new_terminal=False):
311
310
  """Terminal."""
312
311
  warnings.warn("Use new property :func:`terminal` instead.", DeprecationWarning)
@@ -318,12 +317,13 @@ class PinGroup(object):
318
317
  @property
319
318
  def terminal(self):
320
319
  """Terminal."""
321
- from pyedb.dotnet.edb_core.edb_data.terminals import PinGroupTerminal
320
+ from pyedb.dotnet.edb_core.cell.terminal.pingroup_terminal import (
321
+ PinGroupTerminal,
322
+ )
322
323
 
323
324
  term = PinGroupTerminal(self._pedb, self._edb_pin_group.GetPinGroupTerminal())
324
325
  return term if not term.is_null else None
325
326
 
326
- @pyedb_function_handler()
327
327
  def _create_terminal(self, name=None):
328
328
  """Create a terminal on the pin group.
329
329
 
@@ -345,7 +345,6 @@ class PinGroup(object):
345
345
  else:
346
346
  return self.create_terminal(name)
347
347
 
348
- @pyedb_function_handler()
349
348
  def create_terminal(self, name=None):
350
349
  """Create a terminal.
351
350
 
@@ -356,50 +355,46 @@ class PinGroup(object):
356
355
  """
357
356
  if not name:
358
357
  name = generate_unique_name(self.name)
359
- from pyedb.dotnet.edb_core.edb_data.terminals import PinGroupTerminal
358
+ from pyedb.dotnet.edb_core.cell.terminal.pingroup_terminal import (
359
+ PinGroupTerminal,
360
+ )
360
361
 
361
- term = PinGroupTerminal(self._pedb)
362
+ term = PinGroupTerminal(self._pedb, self._edb_object)
362
363
  term = term.create(name, self.net_name, self.name)
363
364
  return term
364
365
 
365
- @pyedb_function_handler()
366
366
  def _json_format(self):
367
367
  dict_out = {"component": self.component, "name": self.name, "net": self.net, "node_type": self.node_type}
368
368
  return dict_out
369
369
 
370
- @pyedb_function_handler()
371
370
  def create_current_source_terminal(self, magnitude=1, phase=0):
372
- terminal = self._create_terminal()._edb_object
371
+ terminal = self.create_terminal()._edb_object
373
372
  terminal.SetBoundaryType(self._pedb.edb_api.cell.terminal.BoundaryType.kCurrentSource)
374
373
  terminal.SetSourceAmplitude(self._pedb.edb_value(magnitude))
375
374
  terminal.SetSourcePhase(self._pedb.edb_api.utility.value(phase))
376
375
  return terminal
377
376
 
378
- @pyedb_function_handler()
379
377
  def create_voltage_source_terminal(self, magnitude=1, phase=0, impedance=0.001):
380
- terminal = self._create_terminal()._edb_object
378
+ terminal = self.create_terminal()._edb_object
381
379
  terminal.SetBoundaryType(self._pedb.edb_api.cell.terminal.BoundaryType.kVoltageSource)
382
380
  terminal.SetSourceAmplitude(self._pedb.edb_value(magnitude))
383
381
  terminal.SetSourcePhase(self._pedb.edb_api.utility.value(phase))
384
382
  terminal.SetImpedance(self._pedb.edb_value(impedance))
385
383
  return terminal
386
384
 
387
- @pyedb_function_handler()
388
385
  def create_voltage_probe_terminal(self, impedance=1000000):
389
- terminal = self._create_terminal()._edb_object
386
+ terminal = self.create_terminal()._edb_object
390
387
  terminal.SetBoundaryType(self._pedb.edb_api.cell.terminal.BoundaryType.kVoltageProbe)
391
388
  terminal.SetImpedance(self._pedb.edb_value(impedance))
392
389
  return terminal
393
390
 
394
- @pyedb_function_handler()
395
391
  def create_port_terminal(self, impedance=50):
396
- terminal = self._create_terminal()._edb_object
392
+ terminal = self.create_terminal()._edb_object
397
393
  terminal.SetBoundaryType(self._pedb.edb_api.cell.terminal.BoundaryType.PortBoundary)
398
394
  terminal.SetImpedance(self._pedb.edb_value(impedance))
399
395
  terminal.SetIsCircuitPort(True)
400
396
  return terminal
401
397
 
402
- @pyedb_function_handler()
403
398
  def delete(self):
404
399
  """Delete active pin group.
405
400
 
@@ -30,7 +30,7 @@ from __future__ import absolute_import # noreorder
30
30
  import logging
31
31
 
32
32
  from pyedb.dotnet.clr_module import Dictionary, List, Tuple
33
- from pyedb.generic.general_methods import is_ironpython, pyedb_function_handler
33
+ from pyedb.generic.general_methods import is_ironpython
34
34
 
35
35
  if not is_ironpython: # pragma: no cover
36
36
  try:
@@ -43,7 +43,6 @@ else: # pragma: no cover
43
43
  logger = logging.getLogger(__name__)
44
44
 
45
45
 
46
- @pyedb_function_handler()
47
46
  def convert_netdict_to_pydict(dict_in):
48
47
  """Convert a net dictionary to a Python dictionary.
49
48
 
@@ -64,7 +63,6 @@ def convert_netdict_to_pydict(dict_in):
64
63
  return pydict
65
64
 
66
65
 
67
- @pyedb_function_handler()
68
66
  def convert_pytuple_to_nettuple(_tuple):
69
67
  """Convert a Python tuple into a .NET tuple.
70
68
  Parameters
@@ -78,7 +76,6 @@ def convert_pytuple_to_nettuple(_tuple):
78
76
  return Tuple.Create(_tuple[0], _tuple[1])
79
77
 
80
78
 
81
- @pyedb_function_handler()
82
79
  def convert_pydict_to_netdict(input_dict):
83
80
  """Convert a Python dictionary to a .NET dictionary.
84
81
 
@@ -100,7 +97,6 @@ def convert_pydict_to_netdict(input_dict):
100
97
  # to be completed
101
98
 
102
99
 
103
- @pyedb_function_handler()
104
100
  def convert_py_list_to_net_list(pylist, list_type=None):
105
101
  """Convert a Python list to a Net list.
106
102
 
@@ -127,7 +123,6 @@ def convert_py_list_to_net_list(pylist, list_type=None):
127
123
  return net_list
128
124
 
129
125
 
130
- @pyedb_function_handler()
131
126
  def convert_net_list_to_py_list(netlist):
132
127
  """Convert a Net list to a Python list.
133
128
 
@@ -22,7 +22,6 @@
22
22
 
23
23
  from pyedb.dotnet.edb_core.geometry.point_data import PointData
24
24
  from pyedb.dotnet.edb_core.utilities.obj_base import BBox
25
- from pyedb.generic.general_methods import pyedb_function_handler
26
25
 
27
26
 
28
27
  class PolygonData:
@@ -64,14 +63,12 @@ class PolygonData:
64
63
  for i in list(self._edb_object.Points)
65
64
  ]
66
65
 
67
- @pyedb_function_handler
68
66
  def create_from_points(self, points, closed=True):
69
67
  list_of_point_data = []
70
68
  for pt in points:
71
69
  list_of_point_data.append(PointData(self._pedb, x=pt[0], y=pt[1]))
72
70
  return self._pedb.edb_api.geometry.api_class.PolygonData(list_of_point_data, closed)
73
71
 
74
- @pyedb_function_handler
75
72
  def create_from_bounding_box(self, points):
76
73
  bbox = BBox(self._pedb, point_1=points[0], point_2=points[1])
77
74
  return self._pedb.edb_api.geometry.api_class.PolygonData.CreateFromBBox(bbox._edb_object)
@@ -36,11 +36,7 @@ from pyedb.dotnet.edb_core.general import (
36
36
  convert_pytuple_to_nettuple,
37
37
  )
38
38
  from pyedb.generic.constants import RadiationBoxType, SweepType
39
- from pyedb.generic.general_methods import (
40
- generate_unique_name,
41
- is_ironpython,
42
- pyedb_function_handler,
43
- )
39
+ from pyedb.generic.general_methods import generate_unique_name, is_ironpython
44
40
  from pyedb.modeler.geometry_operators import GeometryOperators
45
41
 
46
42
 
@@ -110,7 +106,6 @@ class EdbHfss(object):
110
106
  def _get_edb_value(self, value):
111
107
  return self._pedb.edb_value(value)
112
108
 
113
- @pyedb_function_handler()
114
109
  def _create_edge_terminal(self, prim_id, point_on_edge, terminal_name=None, is_ref=False):
115
110
  """Create an edge terminal.
116
111
 
@@ -148,7 +143,6 @@ class EdbHfss(object):
148
143
  prim.GetLayout(), prim.GetNet(), terminal_name, pos_edge, isRef=is_ref
149
144
  )
150
145
 
151
- @pyedb_function_handler()
152
146
  def get_trace_width_for_traces_with_ports(self):
153
147
  """Retrieve the trace width for traces with ports.
154
148
 
@@ -164,7 +158,6 @@ class EdbHfss(object):
164
158
  nets[net] = self._pedb.nets[net].get_smallest_trace_width()
165
159
  return nets
166
160
 
167
- @pyedb_function_handler()
168
161
  def create_circuit_port_on_pin(self, pos_pin, neg_pin, impedance=50, port_name=None):
169
162
  """Create Circuit Port on Pin.
170
163
 
@@ -192,7 +185,6 @@ class EdbHfss(object):
192
185
  """
193
186
  return self._pedb.siwave.create_circuit_port_on_pin(pos_pin, neg_pin, impedance, port_name)
194
187
 
195
- @pyedb_function_handler()
196
188
  def create_voltage_source_on_pin(self, pos_pin, neg_pin, voltage_value=3.3, phase_value=0, source_name=""):
197
189
  """Create a voltage source.
198
190
 
@@ -224,7 +216,6 @@ class EdbHfss(object):
224
216
  """
225
217
  return self._pedb.siwave.create_voltage_source_on_pin(pos_pin, neg_pin, voltage_value, phase_value, source_name)
226
218
 
227
- @pyedb_function_handler()
228
219
  def create_current_source_on_pin(self, pos_pin, neg_pin, current_value=0.1, phase_value=0, source_name=""):
229
220
  """Create a current source.
230
221
 
@@ -257,7 +248,6 @@ class EdbHfss(object):
257
248
 
258
249
  return self._pedb.siwave.create_current_source_on_pin(pos_pin, neg_pin, current_value, phase_value, source_name)
259
250
 
260
- @pyedb_function_handler()
261
251
  def create_resistor_on_pin(self, pos_pin, neg_pin, rvalue=1, resistor_name=""):
262
252
  """Create a Resistor boundary between two given pins.
263
253
 
@@ -287,7 +277,6 @@ class EdbHfss(object):
287
277
  """
288
278
  return self._pedb.siwave.create_resistor_on_pin(pos_pin, neg_pin, rvalue, resistor_name)
289
279
 
290
- @pyedb_function_handler()
291
280
  def create_circuit_port_on_net(
292
281
  self,
293
282
  positive_component_name,
@@ -336,7 +325,6 @@ class EdbHfss(object):
336
325
  port_name,
337
326
  )
338
327
 
339
- @pyedb_function_handler()
340
328
  def create_voltage_source_on_net(
341
329
  self,
342
330
  positive_component_name,
@@ -389,7 +377,6 @@ class EdbHfss(object):
389
377
  source_name,
390
378
  )
391
379
 
392
- @pyedb_function_handler()
393
380
  def create_current_source_on_net(
394
381
  self,
395
382
  positive_component_name,
@@ -442,7 +429,6 @@ class EdbHfss(object):
442
429
  source_name,
443
430
  )
444
431
 
445
- @pyedb_function_handler()
446
432
  def create_coax_port_on_component(self, ref_des_list, net_list):
447
433
  """Create a coaxial port on a component or component list on a net or net list.
448
434
  The name of the new coaxial port is automatically assigned.
@@ -489,7 +475,6 @@ class EdbHfss(object):
489
475
  coax.append(port_name)
490
476
  return coax
491
477
 
492
- @pyedb_function_handler()
493
478
  def create_differential_wave_port(
494
479
  self,
495
480
  positive_primitive_id,
@@ -566,7 +551,6 @@ class EdbHfss(object):
566
551
  pos_term._edb_object.SetName(port_name)
567
552
  return port_name, BundleWavePort(self._pedb, _edb_boundle_terminal)
568
553
 
569
- @pyedb_function_handler()
570
554
  def create_bundle_wave_port(
571
555
  self,
572
556
  primitives_id,
@@ -628,7 +612,6 @@ class EdbHfss(object):
628
612
  _edb_bundle_terminal = self._edb.cell.terminal.BundleTerminal.Create(edb_list)
629
613
  return port_name, BundleWavePort(self._pedb, _edb_bundle_terminal)
630
614
 
631
- @pyedb_function_handler()
632
615
  def create_hfss_ports_on_padstack(self, pinpos, portname=None):
633
616
  """Create an HFSS port on a padstack.
634
617
 
@@ -657,7 +640,6 @@ class EdbHfss(object):
657
640
  else:
658
641
  return False
659
642
 
660
- @pyedb_function_handler()
661
643
  def create_edge_port_on_polygon(
662
644
  self,
663
645
  polygon=None,
@@ -767,7 +749,6 @@ class EdbHfss(object):
767
749
  edge_term.SetReferenceTerminal(ref_edge_term)
768
750
  return True
769
751
 
770
- @pyedb_function_handler()
771
752
  def create_wave_port(
772
753
  self,
773
754
  prim_id,
@@ -828,7 +809,6 @@ class EdbHfss(object):
828
809
  else:
829
810
  return False
830
811
 
831
- @pyedb_function_handler()
832
812
  def create_edge_port_vertical(
833
813
  self,
834
814
  prim_id,
@@ -901,7 +881,6 @@ class EdbHfss(object):
901
881
  else:
902
882
  return False
903
883
 
904
- @pyedb_function_handler()
905
884
  def create_edge_port_horizontal(
906
885
  self,
907
886
  prim_id,
@@ -957,7 +936,6 @@ class EdbHfss(object):
957
936
  else:
958
937
  return False
959
938
 
960
- @pyedb_function_handler()
961
939
  def create_lumped_port_on_net(
962
940
  self, nets=None, reference_layer=None, return_points_only=False, digit_resolution=6, at_bounding_box=True
963
941
  ):
@@ -1073,7 +1051,6 @@ class EdbHfss(object):
1073
1051
  return edges_pts
1074
1052
  return port_created
1075
1053
 
1076
- @pyedb_function_handler()
1077
1054
  def create_vertical_circuit_port_on_clipped_traces(self, nets=None, reference_net=None, user_defined_extent=None):
1078
1055
  """Create an edge port on clipped signal traces.
1079
1056
 
@@ -1171,7 +1148,6 @@ class EdbHfss(object):
1171
1148
  return terminal_info
1172
1149
  return False
1173
1150
 
1174
- @pyedb_function_handler()
1175
1151
  def get_layout_bounding_box(self, layout=None, digit_resolution=6):
1176
1152
  """Evaluate the layout bounding box.
1177
1153
 
@@ -1204,7 +1180,6 @@ class EdbHfss(object):
1204
1180
  ]
1205
1181
  return layout_bbox
1206
1182
 
1207
- @pyedb_function_handler()
1208
1183
  def configure_hfss_extents(self, simulation_setup=None):
1209
1184
  """Configure the HFSS extent box.
1210
1185
 
@@ -1255,7 +1230,6 @@ class EdbHfss(object):
1255
1230
  self._layout.cell.SetHFSSExtentInfo(hfss_extent) # returns void
1256
1231
  return True
1257
1232
 
1258
- @pyedb_function_handler()
1259
1233
  def configure_hfss_analysis_setup(self, simulation_setup=None):
1260
1234
  """
1261
1235
  Configure HFSS analysis setup.
@@ -1383,7 +1357,6 @@ class EdbHfss(object):
1383
1357
  freq = freq * math.pow(10, 1.0 / decade_cnt)
1384
1358
  sweep.Frequencies.Add(str(freq))
1385
1359
 
1386
- @pyedb_function_handler()
1387
1360
  def trim_component_reference_size(self, simulation_setup=None, trim_to_terminals=False):
1388
1361
  """Trim the common component reference to the minimally acceptable size.
1389
1362
 
@@ -1453,7 +1426,6 @@ class EdbHfss(object):
1453
1426
  comp.SetComponentProperty(cmp_prop)
1454
1427
  return True
1455
1428
 
1456
- @pyedb_function_handler()
1457
1429
  def set_coax_port_attributes(self, simulation_setup=None):
1458
1430
  """Set coaxial port attribute with forcing default impedance to 50 Ohms and adjusting the coaxial extent radius.
1459
1431
 
@@ -1533,7 +1505,6 @@ class EdbHfss(object):
1533
1505
  tt.SetProductSolverOption(self._edb.edb_api.ProductId.Designer, "HFSS", option)
1534
1506
  return True
1535
1507
 
1536
- @pyedb_function_handler()
1537
1508
  def _get_terminals_bbox(self, comp, l_inst, terminals_only):
1538
1509
  terms_loi = []
1539
1510
  if terminals_only:
@@ -1572,7 +1543,6 @@ class EdbHfss(object):
1572
1543
  )
1573
1544
  return self._edb.geometry.polygon_data.get_bbox_of_polygons(terms_bbox)
1574
1545
 
1575
- @pyedb_function_handler()
1576
1546
  def get_ports_number(self):
1577
1547
  """Return the total number of excitation ports in a layout.
1578
1548
 
@@ -1589,7 +1559,6 @@ class EdbHfss(object):
1589
1559
  terms = [term for term in self._layout.terminals if int(term.GetBoundaryType()) == 0]
1590
1560
  return len([i for i in terms if not i.IsReferenceTerminal()])
1591
1561
 
1592
- @pyedb_function_handler()
1593
1562
  def layout_defeaturing(self, simulation_setup=None):
1594
1563
  """Defeature the layout by reducing the number of points for polygons based on surface deviation criteria.
1595
1564
 
@@ -1637,7 +1606,6 @@ class EdbHfss(object):
1637
1606
 
1638
1607
  return True
1639
1608
 
1640
- @pyedb_function_handler()
1641
1609
  def create_rlc_boundary_on_pins(self, positive_pin=None, negative_pin=None, rvalue=0.0, lvalue=0.0, cvalue=0.0):
1642
1610
  """Create hfss rlc boundary on pins.
1643
1611
 
@@ -27,7 +27,6 @@ import math
27
27
  import warnings
28
28
 
29
29
  from pyedb.dotnet.edb_core.dotnet.primitive import (
30
- BondwireDotNet,
31
30
  CircleDotNet,
32
31
  PathDotNet,
33
32
  PolygonDotNet,
@@ -36,7 +35,6 @@ from pyedb.dotnet.edb_core.dotnet.primitive import (
36
35
  from pyedb.dotnet.edb_core.edb_data.primitives_data import EDBPrimitives, cast
37
36
  from pyedb.dotnet.edb_core.edb_data.utilities import EDBStatistics
38
37
  from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
39
- from pyedb.generic.general_methods import pyedb_function_handler
40
38
 
41
39
 
42
40
  class EdbLayout(object):
@@ -195,17 +193,6 @@ class EdbLayout(object):
195
193
  """
196
194
  return [i for i in self.primitives if isinstance(i, PathDotNet)]
197
195
 
198
- @property
199
- def bondwires(self):
200
- """Bondwires.
201
-
202
- Returns
203
- -------
204
- list of :class:`pyedb.dotnet.edb_core.edb_data.primitives_data.EDBPrimitives`
205
- List of bondwires.
206
- """
207
- return [i for i in self.primitives if isinstance(i, BondwireDotNet)]
208
-
209
196
  @property
210
197
  def polygons(self):
211
198
  """Polygons.
@@ -217,7 +204,6 @@ class EdbLayout(object):
217
204
  """
218
205
  return [i for i in self.primitives if isinstance(i, PolygonDotNet)]
219
206
 
220
- @pyedb_function_handler()
221
207
  def get_polygons_by_layer(self, layer_name, net_list=None):
222
208
  """Retrieve polygons by a layer.
223
209
 
@@ -245,7 +231,6 @@ class EdbLayout(object):
245
231
  self._logger.warning(f"Failed to retrieve layer on polygon {el}")
246
232
  return objinst
247
233
 
248
- @pyedb_function_handler()
249
234
  def get_primitive_by_layer_and_point(self, point=None, layer=None, nets=None):
250
235
  """Return primitive given coordinate point [x, y], layer name and nets.
251
236
 
@@ -304,7 +289,6 @@ class EdbLayout(object):
304
289
  [returned_obj.append(p) for p in [obj for obj in self.primitives if obj.id == obj_id]]
305
290
  return returned_obj
306
291
 
307
- @pyedb_function_handler()
308
292
  def get_polygon_bounding_box(self, polygon):
309
293
  """Retrieve a polygon bounding box.
310
294
 
@@ -336,7 +320,6 @@ class EdbLayout(object):
336
320
  pass
337
321
  return bounding
338
322
 
339
- @pyedb_function_handler()
340
323
  def get_polygon_points(self, polygon):
341
324
  """Retrieve polygon points.
342
325
 
@@ -384,7 +367,6 @@ class EdbLayout(object):
384
367
  continue_iterate = False
385
368
  return points
386
369
 
387
- @pyedb_function_handler()
388
370
  def parametrize_polygon(self, polygon, selection_polygon, offset_name="offsetx", origin=None):
389
371
  """Parametrize pieces of a polygon based on another polygon.
390
372
 
@@ -467,7 +449,6 @@ class EdbLayout(object):
467
449
  polygon.SetPolygonData(poligon_data)
468
450
  return True
469
451
 
470
- @pyedb_function_handler()
471
452
  def _create_path(
472
453
  self,
473
454
  path_list,
@@ -545,7 +526,6 @@ class EdbLayout(object):
545
526
  return False
546
527
  return cast(polygon, self._pedb)
547
528
 
548
- @pyedb_function_handler()
549
529
  def create_trace(
550
530
  self,
551
531
  path_list,
@@ -598,7 +578,6 @@ class EdbLayout(object):
598
578
 
599
579
  return primitive
600
580
 
601
- @pyedb_function_handler()
602
581
  def create_polygon(self, main_shape, layer_name, voids=[], net_name=""):
603
582
  """Create a polygon based on a list of points and voids.
604
583
 
@@ -666,7 +645,6 @@ class EdbLayout(object):
666
645
  else:
667
646
  return cast(polygon, self._pedb)
668
647
 
669
- @pyedb_function_handler()
670
648
  def create_polygon_from_points(self, point_list, layer_name, net_name=""):
671
649
  """Create a new polygon from a point list.
672
650
 
@@ -695,7 +673,6 @@ class EdbLayout(object):
695
673
  )
696
674
  return self.create_polygon(point_list, layer_name, net_name=net_name)
697
675
 
698
- @pyedb_function_handler()
699
676
  def create_rectangle(
700
677
  self,
701
678
  layer_name,
@@ -773,7 +750,6 @@ class EdbLayout(object):
773
750
  return cast(rect, self._pedb)
774
751
  return False # pragma: no cover
775
752
 
776
- @pyedb_function_handler()
777
753
  def create_circle(self, layer_name, x, y, radius, net_name=""):
778
754
  """Create a circle on a specified layer.
779
755
 
@@ -810,7 +786,6 @@ class EdbLayout(object):
810
786
  return cast(circle, self._pedb)
811
787
  return False # pragma: no cover
812
788
 
813
- @pyedb_function_handler()
814
789
  def delete_primitives(self, net_names):
815
790
  """Delete primitives by net names.
816
791
 
@@ -837,7 +812,6 @@ class EdbLayout(object):
837
812
  p.delete()
838
813
  return True
839
814
 
840
- @pyedb_function_handler()
841
815
  def get_primitives(self, net_name=None, layer_name=None, prim_type=None, is_void=False):
842
816
  """Get primitives by conditions.
843
817
 
@@ -874,7 +848,6 @@ class EdbLayout(object):
874
848
  prims.append(el)
875
849
  return prims
876
850
 
877
- @pyedb_function_handler()
878
851
  def fix_circle_void_for_clipping(self):
879
852
  """Fix issues when circle void are clipped due to a bug in EDB.
880
853
 
@@ -906,7 +879,6 @@ class EdbLayout(object):
906
879
  void_circle.Delete()
907
880
  return True
908
881
 
909
- @pyedb_function_handler()
910
882
  def add_void(self, shape, void_shape):
911
883
  """Add a void into a shape.
912
884
 
@@ -931,7 +903,6 @@ class EdbLayout(object):
931
903
  return flag
932
904
  return True
933
905
 
934
- @pyedb_function_handler()
935
906
  def shape_to_polygon_data(self, shape):
936
907
  """Convert a shape to polygon data.
937
908
 
@@ -951,7 +922,6 @@ class EdbLayout(object):
951
922
  )
952
923
  return None
953
924
 
954
- @pyedb_function_handler()
955
925
  def _createPolygonDataFromPolygon(self, shape):
956
926
  points = shape.points
957
927
  if not self._validatePoint(points[0]):
@@ -1038,7 +1008,6 @@ class EdbLayout(object):
1038
1008
  k += 1
1039
1009
  return polygon
1040
1010
 
1041
- @pyedb_function_handler()
1042
1011
  def _validatePoint(self, point, allowArcs=True):
1043
1012
  if len(point) == 2:
1044
1013
  if not isinstance(point[0], (int, float, str)):
@@ -1137,7 +1106,6 @@ class EdbLayout(object):
1137
1106
  self.points = points
1138
1107
  self.properties = properties
1139
1108
 
1140
- @pyedb_function_handler()
1141
1109
  def parametrize_trace_width(
1142
1110
  self,
1143
1111
  nets_name,
@@ -1189,7 +1157,6 @@ class EdbLayout(object):
1189
1157
  p.SetWidth(self._pedb.edb_value(parameter_name))
1190
1158
  return True
1191
1159
 
1192
- @pyedb_function_handler()
1193
1160
  def unite_polygons_on_layer(self, layer_name=None, delete_padstack_gemometries=False, net_names_list=[]):
1194
1161
  """Try to unite all Polygons on specified layer.
1195
1162
 
@@ -1265,7 +1232,6 @@ class EdbLayout(object):
1265
1232
  self._pedb.padstacks.remove_pads_from_padstack(pad)
1266
1233
  return True
1267
1234
 
1268
- @pyedb_function_handler()
1269
1235
  def defeature_polygon(self, poly, tolerance=0.001):
1270
1236
  """Defeature the polygon based on the maximum surface deviation criteria.
1271
1237
 
@@ -1287,7 +1253,6 @@ class EdbLayout(object):
1287
1253
  poly.polygon_data = new_poly
1288
1254
  return True
1289
1255
 
1290
- @pyedb_function_handler()
1291
1256
  def get_layout_statistics(self, evaluate_area=False, net_list=None):
1292
1257
  """Return EDBStatistics object from a layout.
1293
1258