pyedb 0.37.0__tar.gz → 0.38.0__tar.gz

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.
Files changed (197) hide show
  1. {pyedb-0.37.0 → pyedb-0.38.0}/PKG-INFO +5 -5
  2. {pyedb-0.37.0 → pyedb-0.38.0}/pyproject.toml +5 -5
  3. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/__init__.py +1 -1
  4. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_common.py +1 -1
  5. pyedb-0.38.0/src/pyedb/configuration/cfg_components.py +290 -0
  6. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_data.py +3 -1
  7. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_modeler.py +6 -6
  8. pyedb-0.38.0/src/pyedb/configuration/cfg_padstacks.py +439 -0
  9. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_ports_sources.py +191 -46
  10. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/configuration.py +5 -2
  11. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb.py +1 -1
  12. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/layout.py +2 -2
  13. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/padstacks_data.py +45 -58
  14. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/padstack.py +2 -1
  15. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/settings.py +15 -0
  16. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +3 -3
  17. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py +1 -0
  18. pyedb-0.38.0/src/pyedb/extensions/pre_layout_design_toolkit/via_design.py +1151 -0
  19. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +1 -1
  20. pyedb-0.37.0/src/pyedb/configuration/cfg_components.py +0 -262
  21. pyedb-0.37.0/src/pyedb/configuration/cfg_padstacks.py +0 -383
  22. {pyedb-0.37.0 → pyedb-0.38.0}/LICENSE +0 -0
  23. {pyedb-0.37.0 → pyedb-0.38.0}/README.md +0 -0
  24. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/common/__init__.py +0 -0
  25. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/common/nets.py +0 -0
  26. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/component_libraries/ansys_components.py +0 -0
  27. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/__init__.py +0 -0
  28. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_boundaries.py +0 -0
  29. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_general.py +0 -0
  30. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_nets.py +0 -0
  31. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_operations.py +0 -0
  32. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_package_definition.py +0 -0
  33. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_pin_groups.py +0 -0
  34. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
  35. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_setup.py +0 -0
  36. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
  37. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/configuration/cfg_stackup.py +0 -0
  38. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/__init__.py +0 -0
  39. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/application/Variables.py +0 -0
  40. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/application/__init__.py +0 -0
  41. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/clr_module.py +0 -0
  42. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/__init__.py +0 -0
  43. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/__init__.py +0 -0
  44. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/connectable.py +0 -0
  45. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
  46. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/component.py +0 -0
  47. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +0 -0
  48. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/model.py +0 -0
  49. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py +0 -0
  50. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py +0 -0
  51. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/s_parameter_model.py +0 -0
  52. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py +0 -0
  53. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/layout_obj.py +0 -0
  54. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/primitive/__init__.py +0 -0
  55. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/primitive/bondwire.py +0 -0
  56. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/primitive/path.py +0 -0
  57. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/primitive/primitive.py +0 -0
  58. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/terminal/__init__.py +0 -0
  59. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py +0 -0
  60. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py +0 -0
  61. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +0 -0
  62. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +0 -0
  63. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +0 -0
  64. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/terminal/terminal.py +0 -0
  65. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/cell/voltage_regulator.py +0 -0
  66. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/components.py +0 -0
  67. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/definition/__init__.py +0 -0
  68. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/definition/component_def.py +0 -0
  69. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/definition/component_model.py +0 -0
  70. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/definition/definition_obj.py +0 -0
  71. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/definition/definitions.py +0 -0
  72. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/definition/package_def.py +0 -0
  73. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
  74. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/dotnet/database.py +0 -0
  75. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/dotnet/primitive.py +0 -0
  76. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
  77. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/control_file.py +0 -0
  78. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/design_options.py +0 -0
  79. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/edbvalue.py +0 -0
  80. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +0 -0
  81. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/layer_data.py +0 -0
  82. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/nets_data.py +0 -0
  83. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/ports.py +0 -0
  84. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/primitives_data.py +0 -0
  85. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +0 -0
  86. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +0 -0
  87. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/sources.py +0 -0
  88. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/utilities.py +0 -0
  89. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/edb_data/variables.py +0 -0
  90. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/general.py +0 -0
  91. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/geometry/__init__.py +0 -0
  92. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/geometry/point_data.py +0 -0
  93. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/geometry/polygon_data.py +0 -0
  94. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/hfss.py +0 -0
  95. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/layout_obj_instance.py +0 -0
  96. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/layout_validation.py +0 -0
  97. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/materials.py +0 -0
  98. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/modeler.py +0 -0
  99. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/net_class.py +0 -0
  100. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/nets.py +0 -0
  101. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/__init__.py +0 -0
  102. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/__init__.py +0 -0
  103. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  104. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py +0 -0
  105. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py +0 -0
  106. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py +0 -0
  107. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
  108. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py +0 -0
  109. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py +0 -0
  110. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/siwave.py +0 -0
  111. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/stackup.py +0 -0
  112. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/utilities/__init__.py +0 -0
  113. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/utilities/heatsink.py +0 -0
  114. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py +0 -0
  115. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/utilities/obj_base.py +0 -0
  116. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py +0 -0
  117. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/edb_logger.py +0 -0
  118. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/exceptions.py +0 -0
  119. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/__init__.py +0 -0
  120. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/constants.py +0 -0
  121. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/data_handlers.py +0 -0
  122. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/design_types.py +0 -0
  123. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/filesystem.py +0 -0
  124. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/general_methods.py +0 -0
  125. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/plot.py +0 -0
  126. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/process.py +0 -0
  127. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/generic/settings.py +0 -0
  128. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/__init__.py +0 -0
  129. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/bom/__init__.py +0 -0
  130. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
  131. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
  132. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
  133. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
  134. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/__init__.py +0 -0
  135. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/color.py +0 -0
  136. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/content.py +0 -0
  137. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
  138. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
  139. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
  140. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
  141. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
  142. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/fill.py +0 -0
  143. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
  144. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
  145. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/__init__.py +0 -0
  146. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
  147. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
  148. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
  149. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
  150. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
  151. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
  152. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
  153. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
  154. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
  155. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
  156. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
  157. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
  158. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
  159. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
  160. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
  161. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
  162. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
  163. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
  164. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
  165. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
  166. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
  167. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
  168. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
  169. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
  170. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
  171. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
  172. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/history_record.py +0 -0
  173. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
  174. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
  175. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/__init__.py +0 -0
  176. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
  177. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/downloads.py +0 -0
  178. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/misc.py +0 -0
  179. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
  180. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/__init__.py +0 -0
  181. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
  182. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
  183. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
  184. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
  185. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
  186. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
  187. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
  188. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
  189. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
  190. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
  191. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
  192. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
  193. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/misc/utilities.py +0 -0
  194. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/modeler/geometry_operators.py +0 -0
  195. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/siwave.py +0 -0
  196. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/siwave_core/icepak.py +0 -0
  197. {pyedb-0.37.0 → pyedb-0.38.0}/src/pyedb/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.37.0
3
+ Version: 0.38.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>
@@ -30,11 +30,11 @@ Requires-Dist: imageio>=2.30.0,<2.37 ; extra == "doc"
30
30
  Requires-Dist: ipython>=8.13.0,<8.32 ; extra == "doc"
31
31
  Requires-Dist: jupyterlab>=4.0.0,<4.4 ; extra == "doc"
32
32
  Requires-Dist: jupytext>=1.16.0,<1.17 ; extra == "doc"
33
- Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "doc"
33
+ Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "doc"
34
34
  Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
35
35
  Requires-Dist: nbconvert < 7.17 ; extra == "doc"
36
36
  Requires-Dist: numpydoc>=1.5.0,<1.9 ; extra == "doc"
37
- Requires-Dist: pypandoc>=1.10.0,<1.15 ; extra == "doc"
37
+ Requires-Dist: pypandoc>=1.10.0,<1.16 ; extra == "doc"
38
38
  Requires-Dist: recommonmark ; extra == "doc"
39
39
  Requires-Dist: Sphinx>=7.1.0,<8.2 ; extra == "doc"
40
40
  Requires-Dist: sphinx-autobuild==2021.3.14 ; extra == "doc" and ( python_version == '3.8')
@@ -43,9 +43,9 @@ Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
43
43
  Requires-Dist: sphinx-gallery>=0.14.0,<0.19 ; extra == "doc"
44
44
  Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
45
45
  Requires-Dist: shapely ; extra == "doc"
46
- Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "full"
46
+ Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "full"
47
47
  Requires-Dist: shapely ; extra == "full"
48
- Requires-Dist: matplotlib>=3.5.0,<3.10 ; extra == "tests"
48
+ Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "tests"
49
49
  Requires-Dist: mock>=5.1.0,<5.2 ; extra == "tests"
50
50
  Requires-Dist: pytest>=7.4.0,<8.4 ; extra == "tests"
51
51
  Requires-Dist: pytest-cov>=4.0.0,<6.1 ; extra == "tests"
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["flit_core >=3.2,<4"]
2
+ requires = ["flit_core >=3.2,<3.11"] # THIS SHOULD BE REVERTED TO '["flit_core >=3.2,<4"]'
3
3
  build-backend = "flit_core.buildapi"
4
4
 
5
5
 
@@ -39,7 +39,7 @@ dependencies = [
39
39
 
40
40
  [project.optional-dependencies]
41
41
  tests = [
42
- "matplotlib>=3.5.0,<3.10",
42
+ "matplotlib>=3.5.0,<3.11",
43
43
  "mock>=5.1.0,<5.2",
44
44
  "pytest>=7.4.0,<8.4",
45
45
  "pytest-cov>=4.0.0,<6.1",
@@ -53,11 +53,11 @@ doc = [
53
53
  "ipython>=8.13.0,<8.32",
54
54
  "jupyterlab>=4.0.0,<4.4",
55
55
  "jupytext>=1.16.0,<1.17",
56
- "matplotlib>=3.5.0,<3.10",
56
+ "matplotlib>=3.5.0,<3.11",
57
57
  "nbsphinx>=0.9.0,<0.10",
58
58
  "nbconvert < 7.17",
59
59
  "numpydoc>=1.5.0,<1.9",
60
- "pypandoc>=1.10.0,<1.15",
60
+ "pypandoc>=1.10.0,<1.16",
61
61
  # NOTE: Remove recommonmark once examples are reworked.
62
62
  "recommonmark",
63
63
  "Sphinx>=7.1.0,<8.2",
@@ -70,7 +70,7 @@ doc = [
70
70
 
71
71
  ]
72
72
  full = [
73
- "matplotlib>=3.5.0,<3.10",
73
+ "matplotlib>=3.5.0,<3.11",
74
74
  "shapely",
75
75
  ]
76
76
 
@@ -44,7 +44,7 @@ deprecation_warning()
44
44
  #
45
45
 
46
46
  pyedb_path = os.path.dirname(__file__)
47
- __version__ = "0.37.0"
47
+ __version__ = "0.38.0"
48
48
  version = __version__
49
49
 
50
50
  #
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
  class CfgBase:
25
- protected_attributes = []
25
+ protected_attributes = ["pedb", "pyedb_obj", "api"]
26
26
 
27
27
  def get_attributes(self, exclude=None):
28
28
  attrs = {i: j for i, j in self.__dict__.items() if i not in self.protected_attributes}
@@ -0,0 +1,290 @@
1
+ # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ import os
23
+
24
+ from pyedb.configuration.cfg_common import CfgBase
25
+ from pyedb.dotnet.edb_core.general import pascal_to_snake, snake_to_pascal
26
+
27
+
28
+ class CfgComponent(CfgBase):
29
+ class Common:
30
+ @property
31
+ def pyedb_obj(self):
32
+ return self.parent.pyedb_obj
33
+
34
+ def __init__(self, parent):
35
+ self.parent = parent
36
+ self.pedb = parent.pedb
37
+
38
+ def retrieve_model_properties_from_edb(self):
39
+ c_p = self.pyedb_obj.component_property
40
+ model = c_p.GetModel().Clone()
41
+
42
+ if model.GetModelType().ToString() == "NetlistModel":
43
+ self.parent.netlist_model["netlist"] = model.GetNetlist()
44
+ elif model.GetModelType().ToString() == "PinPairModel":
45
+ temp = {}
46
+ for i in model.PinPairs:
47
+ temp["first_pin"] = i.FirstPin
48
+ temp["second_pin"] = i.SecondPin
49
+ rlc = model.GetPinPairRlc(i)
50
+ temp["is_parallel"] = rlc.IsParallel
51
+ temp["resistance"] = rlc.R.ToString()
52
+ temp["resistance_enabled"] = rlc.REnabled
53
+ temp["inductance"] = rlc.L.ToString()
54
+ temp["inductance_enabled"] = rlc.LEnabled
55
+ temp["capacitance"] = rlc.C.ToString()
56
+ temp["capacitance_enabled"] = rlc.CEnabled
57
+ self.parent.pin_pair_model.append(temp)
58
+ elif model.GetModelType().ToString() == "SParameterModel":
59
+ self.parent.s_parameter_model["reference_net"] = model.GetReferenceNet()
60
+ self.parent.s_parameter_model["model_name"] = model.GetComponentModelName()
61
+ elif model.GetModelType().ToString() == "SPICEModel":
62
+ self.parent.spice_model["model_name"] = model.GetModelName()
63
+ self.parent.spice_model["model_path"] = model.GetModelPath()
64
+ self.parent.spice_model["sub_circuit"] = model.GetSubCkt()
65
+ self.parent.spice_model["terminal_pairs"] = [
66
+ [i, j] for i, j in dict(model.GetTerminalPinPairs()).items()
67
+ ]
68
+
69
+ def _set_model_properties_to_edb(self):
70
+ c_p = self.pyedb_obj.component_property
71
+ if self.parent.netlist_model:
72
+ m = self.pedb._edb.Cell.Hierarchy.SParameterModel()
73
+ m.SetNetlist(self.parent.netlist_model["netlist"])
74
+ c_p.SetModel(m)
75
+ self.component_property = c_p
76
+ elif self.parent.pin_pair_model:
77
+ m = self.pedb._edb.Cell.Hierarchy.PinPairModel()
78
+ for i in self.parent.pin_pair_model:
79
+ p = self.pedb._edb.Utility.PinPair(str(i["first_pin"]), str(i["second_pin"]))
80
+ rlc = self.pedb._edb.Utility.Rlc(
81
+ self.pedb.edb_value(i["resistance"]),
82
+ i["resistance_enabled"],
83
+ self.pedb.edb_value(i["inductance"]),
84
+ i["inductance_enabled"],
85
+ self.pedb.edb_value(i["capacitance"]),
86
+ i["capacitance_enabled"],
87
+ i["is_parallel"],
88
+ )
89
+ m.SetPinPairRlc(p, rlc)
90
+ c_p.SetModel(m)
91
+ self.pyedb_obj.component_property = c_p
92
+ elif self.parent.s_parameter_model:
93
+ m = self.pedb._edb.Cell.Hierarchy.SParameterModel()
94
+ m.SetComponentModelName(self.parent.s_parameter_model["model_name"])
95
+ m.SetReferenceNet(self.parent.s_parameter_model["reference_net"])
96
+ c_p.SetModel(m)
97
+ self.component_property = c_p
98
+ elif self.parent.spice_model:
99
+ self.pyedb_obj.assign_spice_model(
100
+ self.parent.spice_model["model_path"],
101
+ self.parent.spice_model["model_name"],
102
+ self.parent.spice_model["sub_circuit"],
103
+ self.parent.spice_model["terminal_pairs"],
104
+ )
105
+
106
+ def _retrieve_ic_die_properties_from_edb(self):
107
+ temp = dict()
108
+ cp = self.pyedb_obj.component_property
109
+ ic_die_prop = cp.GetDieProperty().Clone()
110
+ die_type = pascal_to_snake(ic_die_prop.GetType().ToString())
111
+ temp["type"] = die_type
112
+ if not die_type == "no_die":
113
+ temp["orientation"] = pascal_to_snake(ic_die_prop.GetOrientation().ToString())
114
+ if die_type == "wire_bond":
115
+ temp["height"] = ic_die_prop.GetHeightValue().ToString()
116
+ self.parent.ic_die_properties = temp
117
+
118
+ def _set_ic_die_properties_to_edb(self):
119
+ cp = self.pyedb_obj.component_property
120
+ ic_die_prop = cp.GetDieProperty().Clone()
121
+ die_type = self.parent.ic_die_properties.get("type")
122
+ ic_die_prop.SetType(getattr(self.pedb._edb.Definition.DieType, snake_to_pascal(die_type)))
123
+ if not die_type == "no_die":
124
+ orientation = self.parent.ic_die_properties.get("orientation")
125
+ if orientation:
126
+ ic_die_prop.SetOrientation(
127
+ getattr(self.pedb._edb.Definition.DieOrientation, snake_to_pascal(orientation))
128
+ )
129
+ if die_type == "wire_bond":
130
+ height = self.parent.ic_die_properties.get("height")
131
+ if height:
132
+ ic_die_prop.SetHeight(self.pedb.edb_value(height))
133
+ cp.SetDieProperty(ic_die_prop)
134
+ self.pyedb_obj.component_property = cp
135
+
136
+ def _retrieve_solder_ball_properties_from_edb(self):
137
+ temp = dict()
138
+ cp = self.pyedb_obj.component_property
139
+ solder_ball_prop = cp.GetSolderBallProperty().Clone()
140
+ _, diam, mid_diam = solder_ball_prop.GetDiameterValue()
141
+ height = solder_ball_prop.GetHeightValue().ToString()
142
+ shape = solder_ball_prop.GetShape().ToString()
143
+ material = solder_ball_prop.GetMaterialName()
144
+ uses_solder_ball = solder_ball_prop.UsesSolderball()
145
+
146
+ temp["uses_solder_ball"] = uses_solder_ball
147
+ temp["shape"] = pascal_to_snake(shape)
148
+ temp["diameter"] = diam.ToString()
149
+ temp["mid_diameter"] = mid_diam.ToString()
150
+ temp["height"] = height
151
+ temp["material"] = material
152
+ self.parent.solder_ball_properties = temp
153
+
154
+ def _set_solder_ball_properties_to_edb(self):
155
+ cp = self.pyedb_obj.component_property
156
+ solder_ball_prop = cp.GetSolderBallProperty().Clone()
157
+ shape = self.parent.solder_ball_properties.get("shape")
158
+ if shape:
159
+ solder_ball_prop.SetShape(getattr(self.pedb._edb.Definition.SolderballShape, snake_to_pascal(shape)))
160
+ else:
161
+ return
162
+
163
+ if shape == "cylinder":
164
+ diameter = self.parent.solder_ball_properties["diameter"]
165
+ solder_ball_prop.SetDiameter(self.pedb.edb_value(diameter), self.pedb.edb_value(diameter))
166
+ elif shape == "spheroid":
167
+ diameter = self.parent.solder_ball_properties["diameter"]
168
+ mid_diameter = self.parent.solder_ball_properties["mid_diameter"]
169
+ solder_ball_prop.SetDiameter(self.pedb.edb_value(diameter), self.pedb.edb_value(mid_diameter))
170
+ else:
171
+ raise ValueError("Solderball shape must be either cylinder or spheroid")
172
+ solder_ball_prop.SetHeight(self.pedb.edb_value(self.parent.solder_ball_properties["height"]))
173
+ solder_ball_prop.SetMaterialName(self.parent.solder_ball_properties.get("material", "solder"))
174
+ cp.SetSolderBallProperty(solder_ball_prop)
175
+ self.pyedb_obj.component_property = cp
176
+
177
+ def _retrieve_port_properties_from_edb(self):
178
+ temp = dict()
179
+ cp = self.pyedb_obj.component_property
180
+ c_type = self.parent.type.lower()
181
+ if c_type not in ["ic", "io", "other"]:
182
+ return
183
+ else:
184
+ port_prop = cp.GetPortProperty().Clone()
185
+ reference_height = port_prop.GetReferenceHeightValue().ToString()
186
+ reference_size_auto = port_prop.GetReferenceSizeAuto()
187
+ _, reference_size_x, reference_size_y = port_prop.GetReferenceSize()
188
+ temp["reference_height"] = reference_height
189
+ temp["reference_size_auto"] = reference_size_auto
190
+ temp["reference_size_x"] = str(reference_size_x)
191
+ temp["reference_size_y"] = str(reference_size_y)
192
+ self.parent.port_properties = temp
193
+
194
+ def _set_port_properties_to_edb(self):
195
+ cp = self.pyedb_obj.component_property
196
+ port_prop = cp.GetPortProperty().Clone()
197
+ height = self.parent.port_properties.get("reference_height")
198
+ if height:
199
+ port_prop.SetReferenceHeight(self.pedb.edb_value(height))
200
+ reference_size_auto = self.parent.port_properties.get("reference_size_auto")
201
+ if reference_size_auto is not None:
202
+ port_prop.SetReferenceSizeAuto(reference_size_auto)
203
+ reference_size_x = self.parent.port_properties.get("reference_size_x", 0)
204
+ reference_size_y = self.parent.port_properties.get("reference_size_y", 0)
205
+ port_prop.SetReferenceSize(self.pedb.edb_value(reference_size_x), self.pedb.edb_value(reference_size_y))
206
+ cp.SetPortProperty(port_prop)
207
+ self.pyedb_obj.component_property = cp
208
+
209
+ def set_parameters_to_edb(self):
210
+ if self.parent.type:
211
+ self.pyedb_obj.type = self.parent.type
212
+ if self.parent.enabled:
213
+ self.pyedb_obj.enabled = self.parent.enabled
214
+
215
+ self._set_model_properties_to_edb()
216
+ if self.pyedb_obj.type.lower() == "ic":
217
+ self._set_ic_die_properties_to_edb()
218
+ self._set_port_properties_to_edb()
219
+ elif self.pyedb_obj.type.lower() in ["io", "other"]:
220
+ self._set_solder_ball_properties_to_edb()
221
+ self._set_port_properties_to_edb()
222
+
223
+ def retrieve_parameters_from_edb(self):
224
+ self.parent.type = self.pyedb_obj.type
225
+ self.parent.definition = self.pyedb_obj.part_name
226
+ self.parent.reference_designator = self.pyedb_obj.name
227
+ self.retrieve_model_properties_from_edb()
228
+ if self.pyedb_obj.type.lower() == "ic":
229
+ self._retrieve_ic_die_properties_from_edb()
230
+ self._retrieve_port_properties_from_edb()
231
+ elif self.pyedb_obj.type.lower() in ["io", "other"]:
232
+ self._retrieve_solder_ball_properties_from_edb()
233
+ self._retrieve_port_properties_from_edb()
234
+
235
+ class Grpc(Common):
236
+ def __init__(self, parent):
237
+ super().__init__(parent)
238
+
239
+ class DotNet(Grpc):
240
+ def __init__(self, parent):
241
+ super().__init__(parent)
242
+
243
+ def __init__(self, pedb, pedb_object, **kwargs):
244
+ self.pedb = pedb
245
+ self.pyedb_obj = pedb_object
246
+ if os.environ["PYEDB_USE_DOTNET"] == "0":
247
+ self.api = self.Grpc(self)
248
+ else:
249
+ self.api = self.DotNet(self)
250
+
251
+ self.enabled = kwargs.get("enabled", None)
252
+ self.reference_designator = kwargs.get("reference_designator", None)
253
+ self.definition = kwargs.get("definition", None)
254
+ self.type = kwargs["part_type"].lower() if kwargs.get("part_type") else None
255
+ self.placement_layer = kwargs.get("placement_layer", None)
256
+ self.pins = kwargs.get("pins", [])
257
+
258
+ self.port_properties = kwargs.get("port_properties", {})
259
+ self.solder_ball_properties = kwargs.get("solder_ball_properties", {})
260
+ self.ic_die_properties = kwargs.get("ic_die_properties", {})
261
+ self.pin_pair_model = kwargs.get("pin_pair_model", [])
262
+ self.spice_model = kwargs.get("spice_model", {})
263
+ self.s_parameter_model = kwargs.get("s_parameter_model", {})
264
+ self.netlist_model = kwargs.get("netlist_model", {})
265
+
266
+
267
+ class CfgComponents:
268
+ def __init__(self, pedb, components_data):
269
+ self.pedb = pedb
270
+ self.components = []
271
+
272
+ if components_data:
273
+ for comp in components_data:
274
+ obj = self.pedb.layout.find_component_by_name(comp["reference_designator"])
275
+ self.components.append(CfgComponent(self.pedb, obj, **comp))
276
+
277
+ def clean(self):
278
+ self.components = []
279
+
280
+ def apply(self):
281
+ for comp in self.components:
282
+ comp.api.set_parameters_to_edb()
283
+
284
+ def retrieve_parameters_from_edb(self):
285
+ self.clean()
286
+ comps_in_db = self.pedb.components
287
+ for _, comp in comps_in_db.instances.items():
288
+ cfg_comp = CfgComponent(self.pedb, comp)
289
+ cfg_comp.api.retrieve_parameters_from_edb()
290
+ self.components.append(cfg_comp)
@@ -31,7 +31,7 @@ from pyedb.configuration.cfg_operations import CfgOperations
31
31
  from pyedb.configuration.cfg_package_definition import CfgPackageDefinitions
32
32
  from pyedb.configuration.cfg_padstacks import CfgPadstacks
33
33
  from pyedb.configuration.cfg_pin_groups import CfgPinGroups
34
- from pyedb.configuration.cfg_ports_sources import CfgPorts, CfgSources
34
+ from pyedb.configuration.cfg_ports_sources import CfgPorts, CfgProbes, CfgSources
35
35
  from pyedb.configuration.cfg_s_parameter_models import CfgSParameters
36
36
  from pyedb.configuration.cfg_setup import CfgSetups
37
37
  from pyedb.configuration.cfg_spice_models import CfgSpiceModel
@@ -78,3 +78,5 @@ class CfgData(object):
78
78
  self.modeler = CfgModeler(self._pedb, data=kwargs.get("modeler", {}))
79
79
 
80
80
  self.variables = CfgVariables(self._pedb, data=kwargs.get("variables", []))
81
+
82
+ self.probes = CfgProbes(self._pedb, data=kwargs.get("probes", []))
@@ -90,8 +90,8 @@ class CfgModeler:
90
90
  pdef = self._pedb._edb.Definition.PadstackDef.Create(self._pedb.active_db, p.name)
91
91
  pdef.SetData(pdata)
92
92
  pdef = EDBPadstack(pdef, self._pedb.padstacks)
93
- p._pyedb_obj = pdef
94
- p.set_parameters_to_edb()
93
+ p.pyedb_obj = pdef
94
+ p.api.set_parameters_to_edb()
95
95
 
96
96
  if self.padstack_instances:
97
97
  for p in self.padstack_instances:
@@ -101,8 +101,8 @@ class CfgModeler:
101
101
  position=p.position,
102
102
  definition_name=p.definition,
103
103
  )
104
- p._pyedb_obj = p_inst
105
- p.set_parameters_to_edb()
104
+ p.pyedb_obj = p_inst
105
+ p.api.set_parameters_to_edb()
106
106
 
107
107
  if self.planes:
108
108
  for p in self.planes:
@@ -136,5 +136,5 @@ class CfgModeler:
136
136
  placement_layer=c.placement_layer,
137
137
  component_part_name=c.definition,
138
138
  )
139
- c._pyedb_obj = obj
140
- c.set_parameters_to_edb()
139
+ c.pyedb_obj = obj
140
+ c.api.set_parameters_to_edb()