pyedb 0.42.0__tar.gz → 0.43.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.

Potentially problematic release.


This version of pyedb might be problematic. Click here for more details.

Files changed (295) hide show
  1. {pyedb-0.42.0 → pyedb-0.43.0}/PKG-INFO +1 -1
  2. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/__init__.py +1 -1
  3. pyedb-0.43.0/src/pyedb/configuration/cfg_boundaries.py +181 -0
  4. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_general.py +30 -14
  5. pyedb-0.43.0/src/pyedb/configuration/cfg_modeler.py +234 -0
  6. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_nets.py +33 -17
  7. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_operations.py +63 -31
  8. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_package_definition.py +72 -51
  9. pyedb-0.43.0/src/pyedb/configuration/cfg_pin_groups.py +145 -0
  10. pyedb-0.43.0/src/pyedb/configuration/cfg_s_parameter_models.py +141 -0
  11. pyedb-0.43.0/src/pyedb/configuration/cfg_setup.py +289 -0
  12. pyedb-0.43.0/src/pyedb/configuration/cfg_stackup.py +212 -0
  13. pyedb-0.43.0/src/pyedb/configuration/configuration.py +578 -0
  14. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/padstacks_data.py +7 -2
  15. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/sweep_data.py +63 -10
  16. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/utilities/simulation_setup.py +7 -13
  17. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/edb.py +75 -105
  18. pyedb-0.42.0/src/pyedb/configuration/cfg_boundaries.py +0 -104
  19. pyedb-0.42.0/src/pyedb/configuration/cfg_modeler.py +0 -140
  20. pyedb-0.42.0/src/pyedb/configuration/cfg_pin_groups.py +0 -103
  21. pyedb-0.42.0/src/pyedb/configuration/cfg_s_parameter_models.py +0 -116
  22. pyedb-0.42.0/src/pyedb/configuration/cfg_setup.py +0 -318
  23. pyedb-0.42.0/src/pyedb/configuration/cfg_stackup.py +0 -180
  24. pyedb-0.42.0/src/pyedb/configuration/configuration.py +0 -445
  25. {pyedb-0.42.0 → pyedb-0.43.0}/LICENSE +0 -0
  26. {pyedb-0.42.0 → pyedb-0.43.0}/README.md +0 -0
  27. {pyedb-0.42.0 → pyedb-0.43.0}/pyproject.toml +0 -0
  28. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/common/__init__.py +0 -0
  29. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/common/nets.py +0 -0
  30. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/component_libraries/ansys_components.py +0 -0
  31. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/__init__.py +0 -0
  32. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_common.py +0 -0
  33. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_components.py +0 -0
  34. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_data.py +0 -0
  35. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_padstacks.py +0 -0
  36. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_ports_sources.py +0 -0
  37. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
  38. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/__init__.py +0 -0
  39. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/clr_module.py +0 -0
  40. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/Variables.py +0 -0
  41. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/__init__.py +0 -0
  42. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/__init__.py +0 -0
  43. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/connectable.py +0 -0
  44. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/__init__.py +0 -0
  45. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/component.py +0 -0
  46. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/hierarchy_obj.py +0 -0
  47. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/model.py +0 -0
  48. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/netlist_model.py +0 -0
  49. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/pin_pair_model.py +0 -0
  50. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py +0 -0
  51. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/hierarchy/spice_model.py +0 -0
  52. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/layout.py +0 -0
  53. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/layout_obj.py +0 -0
  54. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/primitive/__init__.py +0 -0
  55. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/primitive/bondwire.py +0 -0
  56. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/primitive/path.py +0 -0
  57. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/primitive/primitive.py +0 -0
  58. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/terminal/__init__.py +0 -0
  59. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/terminal/bundle_terminal.py +0 -0
  60. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/terminal/edge_terminal.py +0 -0
  61. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py +0 -0
  62. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/terminal/pingroup_terminal.py +0 -0
  63. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/terminal/point_terminal.py +0 -0
  64. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/terminal/terminal.py +0 -0
  65. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/cell/voltage_regulator.py +0 -0
  66. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/components.py +0 -0
  67. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/definition/__init__.py +0 -0
  68. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/definition/component_def.py +0 -0
  69. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/definition/component_model.py +0 -0
  70. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/definition/definition_obj.py +0 -0
  71. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/definition/definitions.py +0 -0
  72. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/definition/package_def.py +0 -0
  73. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/dotnet/__init__.py +0 -0
  74. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/dotnet/database.py +0 -0
  75. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/dotnet/primitive.py +0 -0
  76. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/__init__.py +0 -0
  77. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/control_file.py +0 -0
  78. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/design_options.py +0 -0
  79. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/edbvalue.py +0 -0
  80. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/hfss_extent_info.py +0 -0
  81. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/layer_data.py +0 -0
  82. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/nets_data.py +0 -0
  83. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/ports.py +0 -0
  84. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/primitives_data.py +0 -0
  85. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py +0 -0
  86. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/simulation_configuration.py +0 -0
  87. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/sources.py +0 -0
  88. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/utilities.py +0 -0
  89. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/edb_data/variables.py +0 -0
  90. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/general.py +0 -0
  91. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/geometry/__init__.py +0 -0
  92. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/geometry/point_data.py +0 -0
  93. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/geometry/polygon_data.py +0 -0
  94. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/hfss.py +0 -0
  95. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/layout_obj_instance.py +0 -0
  96. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/layout_validation.py +0 -0
  97. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/materials.py +0 -0
  98. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/modeler.py +0 -0
  99. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/net_class.py +0 -0
  100. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/nets.py +0 -0
  101. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/padstack.py +0 -0
  102. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/__init__.py +0 -0
  103. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/__init__.py +0 -0
  104. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  105. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py +0 -0
  106. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/settings.py +0 -0
  107. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/sim_setup_info.py +0 -0
  108. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/simulation_settings.py +0 -0
  109. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
  110. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/io/__init__.py +0 -0
  111. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/sim_setup_data/io/siwave.py +0 -0
  112. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/siwave.py +0 -0
  113. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/stackup.py +0 -0
  114. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/utilities/__init__.py +0 -0
  115. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/utilities/heatsink.py +0 -0
  116. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/utilities/hfss_simulation_setup.py +0 -0
  117. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/utilities/obj_base.py +0 -0
  118. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/dotnet/database/utilities/siwave_simulation_setup.py +0 -0
  119. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/edb_logger.py +0 -0
  120. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/exceptions.py +0 -0
  121. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/extensions/pre_layout_design_toolkit/via_design.py +0 -0
  122. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/__init__.py +0 -0
  123. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/constants.py +0 -0
  124. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/data_handlers.py +0 -0
  125. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/design_types.py +0 -0
  126. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/filesystem.py +0 -0
  127. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/general_methods.py +0 -0
  128. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/plot.py +0 -0
  129. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/process.py +0 -0
  130. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/generic/settings.py +0 -0
  131. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/__init__.py +0 -0
  132. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/components.py +0 -0
  133. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/control_file.py +0 -0
  134. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/__init__.py +0 -0
  135. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/component_def.py +0 -0
  136. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/component_model.py +0 -0
  137. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/component_pin.py +0 -0
  138. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/materials.py +0 -0
  139. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/n_port_component_model.py +0 -0
  140. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/package_def.py +0 -0
  141. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definition/padstack_def.py +0 -0
  142. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/definitions.py +0 -0
  143. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/general.py +0 -0
  144. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/geometry/__init__.py +0 -0
  145. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/geometry/arc_data.py +0 -0
  146. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/geometry/point_3d_data.py +0 -0
  147. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/geometry/point_data.py +0 -0
  148. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/geometry/polygon_data.py +0 -0
  149. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hfss.py +0 -0
  150. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/__init__.py +0 -0
  151. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/component.py +0 -0
  152. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/model.py +0 -0
  153. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/netlist_model.py +0 -0
  154. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/pin_pair_model.py +0 -0
  155. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/pingroup.py +0 -0
  156. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/s_parameter_model.py +0 -0
  157. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/hierarchy/spice_model.py +0 -0
  158. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layers/__init__.py +0 -0
  159. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layers/layer.py +0 -0
  160. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layers/stackup_layer.py +0 -0
  161. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layout/__init__.py +0 -0
  162. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layout/cell.py +0 -0
  163. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layout/layout.py +0 -0
  164. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layout/voltage_regulator.py +0 -0
  165. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/layout_validation.py +0 -0
  166. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/modeler.py +0 -0
  167. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/net/__init__.py +0 -0
  168. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/net/differential_pair.py +0 -0
  169. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/net/extended_net.py +0 -0
  170. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/net/net.py +0 -0
  171. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/net/net_class.py +0 -0
  172. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/nets.py +0 -0
  173. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/padstacks.py +0 -0
  174. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/ports/__init__.py +0 -0
  175. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/ports/ports.py +0 -0
  176. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/__init__.py +0 -0
  177. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/bondwire.py +0 -0
  178. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/circle.py +0 -0
  179. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/padstack_instance.py +0 -0
  180. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/path.py +0 -0
  181. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/polygon.py +0 -0
  182. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/primitive.py +0 -0
  183. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/primitive/rectangle.py +0 -0
  184. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/__init__.py +0 -0
  185. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/adaptive_frequency.py +0 -0
  186. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py +0 -0
  187. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +0 -0
  188. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py +0 -0
  189. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_general_settings.py +0 -0
  190. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_settings_options.py +0 -0
  191. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +0 -0
  192. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +0 -0
  193. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/hfss_solver_settings.py +0 -0
  194. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/mesh_operation.py +0 -0
  195. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py +0 -0
  196. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py +0 -0
  197. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +0 -0
  198. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +0 -0
  199. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py +0 -0
  200. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +0 -0
  201. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/simulation_setup/sweep_data.py +0 -0
  202. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/siwave.py +0 -0
  203. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/source_excitations.py +0 -0
  204. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/stackup.py +0 -0
  205. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/terminal/__init__.py +0 -0
  206. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/terminal/bundle_terminal.py +0 -0
  207. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/terminal/edge_terminal.py +0 -0
  208. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/terminal/padstack_instance_terminal.py +0 -0
  209. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/terminal/pingroup_terminal.py +0 -0
  210. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/terminal/point_terminal.py +0 -0
  211. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/terminal/terminal.py +0 -0
  212. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/__init__.py +0 -0
  213. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/constants.py +0 -0
  214. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/heat_sink.py +0 -0
  215. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/hfss_extent_info.py +0 -0
  216. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/layout_statistics.py +0 -0
  217. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/rlc.py +0 -0
  218. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/simulation_configuration.py +0 -0
  219. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/sources.py +0 -0
  220. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/sweep_data_distribution.py +0 -0
  221. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/database/utility/xml_control_file.py +0 -0
  222. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/edb.py +0 -0
  223. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/edb_init.py +0 -0
  224. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/grpc/rpc_session.py +0 -0
  225. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/__init__.py +0 -0
  226. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/bom/__init__.py +0 -0
  227. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
  228. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
  229. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
  230. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
  231. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/__init__.py +0 -0
  232. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/color.py +0 -0
  233. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/content.py +0 -0
  234. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
  235. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
  236. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
  237. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
  238. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
  239. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/fill.py +0 -0
  240. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
  241. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
  242. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/__init__.py +0 -0
  243. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
  244. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
  245. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
  246. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
  247. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
  248. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
  249. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
  250. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
  251. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
  252. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
  253. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
  254. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
  255. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
  256. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
  257. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
  258. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
  259. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
  260. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
  261. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
  262. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
  263. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
  264. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
  265. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
  266. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +0 -0
  267. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
  268. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
  269. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
  270. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/history_record.py +0 -0
  271. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
  272. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
  273. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/__init__.py +0 -0
  274. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
  275. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/downloads.py +0 -0
  276. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/misc.py +0 -0
  277. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
  278. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/__init__.py +0 -0
  279. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
  280. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
  281. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
  282. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
  283. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
  284. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
  285. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
  286. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
  287. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
  288. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
  289. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
  290. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
  291. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/misc/utilities.py +0 -0
  292. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/modeler/geometry_operators.py +0 -0
  293. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/siwave.py +0 -0
  294. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/siwave_core/icepak.py +0 -0
  295. {pyedb-0.42.0 → pyedb-0.43.0}/src/pyedb/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.42.0
3
+ Version: 0.43.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>
@@ -44,7 +44,7 @@ deprecation_warning()
44
44
  #
45
45
 
46
46
  pyedb_path = os.path.dirname(__file__)
47
- __version__ = "0.42.0"
47
+ __version__ = "0.43.0"
48
48
  version = __version__
49
49
 
50
50
  #
@@ -0,0 +1,181 @@
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
+
23
+ from pyedb.configuration.cfg_common import CfgBase
24
+
25
+
26
+ class CfgBoundaries(CfgBase):
27
+ class Grpc:
28
+ @property
29
+ def pyedb_obj(self):
30
+ return self.parent.pyedb_obj
31
+
32
+ def __init__(self, parent):
33
+ self.parent = parent
34
+ self._pedb = parent.pedb
35
+ self.open_region = self.parent.boundary_data.get("open_region", None)
36
+ self.open_region_type = self.parent.boundary_data.get("map_open_region_type", None)
37
+ self.pml_visible = self.parent.boundary_data.get("pml_visible", None)
38
+ self.pml_operation_frequency = self.parent.boundary_data.get("pml_operation_frequency", None)
39
+ self.pml_radiation_factor = self.parent.boundary_data.get("pml_radiation_factor", None)
40
+ self.dielectric_extent_type = self.parent.boundary_data.get("dielectric_extent_type", None)
41
+ self.horizontal_padding = self.parent.boundary_data.get("horizontal_padding", None)
42
+ self.honor_primitives_on_dielectric_layers = self.parent.boundary_data.get(
43
+ "honor_primitives_on_dielectric_layers", False
44
+ )
45
+ self.air_box_extent_type = self.parent.boundary_data.get("air_box_extent_type", None)
46
+ self.air_box_base_polygon = self.parent.boundary_data.get("air_box_base_polygon", None)
47
+ self.air_box_truncate_model_ground_layers = self.parent.boundary_data.get(
48
+ "air_box_truncate_model_ground_layers", None
49
+ )
50
+ self.air_box_horizontal_padding = self.parent.boundary_data.get("air_box_horizontal_padding", None)
51
+ self.air_box_positive_vertical_padding = self.parent.boundary_data.get(
52
+ "air_box_positive_vertical_padding", None
53
+ )
54
+ self.air_box_negative_vertical_padding = self.parent.boundary_data.get(
55
+ "air_box_negative_vertical_padding", None
56
+ )
57
+
58
+ def set_parameters_to_edb(self):
59
+ if self.open_region is not None:
60
+ self._pedb.hfss.hfss_extent_info.use_open_region = self.open_region
61
+ if self.open_region_type:
62
+ self._pedb.hfss.hfss_extent_info.open_region_type = self.open_region_type.lower()
63
+ if self.pml_visible is not None:
64
+ self._pedb.hfss.hfss_extent_info.is_pml_visible = self.pml_visible
65
+ if self.pml_operation_frequency:
66
+ self._pedb.hfss.hfss_extent_info.operating_freq = self.pml_operation_frequency
67
+ if self.pml_radiation_factor:
68
+ self._pedb.hfss.hfss_extent_info.pml_radiation_factor = self.pml_radiation_factor
69
+ if self.dielectric_extent_type:
70
+ self._pedb.hfss.hfss_extent_info.extent_type = self.dielectric_extent_type.lower()
71
+ if self.horizontal_padding:
72
+ self._pedb.hfss.hfss_extent_info.dielectric_extent_size = float(self.horizontal_padding)
73
+ if self.honor_primitives_on_dielectric_layers is not None:
74
+ self._pedb.hfss.hfss_extent_info.honor_user_dielectric = self.honor_primitives_on_dielectric_layers
75
+ if self.air_box_extent_type:
76
+ self._pedb.hfss.hfss_extent_info.extent_type = self.air_box_extent_type.lower()
77
+ if self.air_box_truncate_model_ground_layers is not None:
78
+ self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground = self.air_box_truncate_model_ground_layers
79
+ if self.air_box_horizontal_padding:
80
+ self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent = float(self.air_box_horizontal_padding)
81
+ if self.air_box_positive_vertical_padding:
82
+ self._pedb.hfss.hfss_extent_info.parentair_box_positive_vertical_extent = float(
83
+ self.air_box_positive_vertical_padding
84
+ )
85
+ if self.air_box_negative_vertical_padding:
86
+ self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent = float(
87
+ self.air_box_negative_vertical_padding
88
+ )
89
+
90
+ def get_parameters_from_edb(self):
91
+ self.open_region = self._pedb.hfss.hfss_extent_info.use_open_region
92
+ self.open_region_type = self._pedb.hfss.hfss_extent_info.open_region_type
93
+ self.pml_visible = self._pedb.hfss.hfss_extent_info.is_pml_visible
94
+ self.pml_operation_frequency = self._pedb.hfss.hfss_extent_info.operating_freq
95
+ self.pml_radiation_factor = self._pedb.hfss.hfss_extent_info.pml_radiation_factor
96
+ self.dielectric_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
97
+ self.horizontal_padding = self._pedb.hfss.hfss_extent_info.dielectric_extent_size
98
+ self.honor_primitives_on_dielectric_layers = self._pedb.hfss.hfss_extent_info.honor_user_dielectric
99
+ self.air_box_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
100
+ self.air_box_truncate_model_ground_layers = self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground
101
+ self.air_box_horizontal_padding = self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent
102
+ self.air_box_positive_vertical_padding = self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent
103
+ self.air_box_negative_vertical_padding = self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent
104
+ return self.parent.get_attributes()
105
+
106
+ class DotNet(Grpc):
107
+ def __init__(self, parent):
108
+ super().__init__(parent)
109
+
110
+ def get_parameters_from_edb(self):
111
+ self.parent.open_region = self._pedb.hfss.hfss_extent_info.use_open_region
112
+ self.parent.open_region_type = self._pedb.hfss.hfss_extent_info.open_region_type
113
+ self.parent.pml_visible = self._pedb.hfss.hfss_extent_info.is_pml_visible
114
+ self.parent.pml_operation_frequency = self._pedb.hfss.hfss_extent_info.operating_freq.tostring
115
+ self.parent.pml_radiation_factor = self._pedb.hfss.hfss_extent_info.radiation_level.tostring
116
+ self.parent.dielectric_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
117
+ self.parent.horizontal_padding = self._pedb.hfss.hfss_extent_info.dielectric_extent_size
118
+ self.parent.honor_primitives_on_dielectric_layers = self._pedb.hfss.hfss_extent_info.honor_user_dielectric
119
+ self.parent.air_box_extent_type = self._pedb.hfss.hfss_extent_info.extent_type
120
+ self.parent.air_box_truncate_model_ground_layers = (
121
+ self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground
122
+ )
123
+ self.parent.air_box_horizontal_padding = self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent
124
+ self.parent.air_box_positive_vertical_padding = (
125
+ self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent
126
+ )
127
+ self.parent.air_box_negative_vertical_padding = (
128
+ self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent
129
+ )
130
+ return self.parent.get_attributes(exclude="boundary_data")
131
+
132
+ def set_parameters_to_edb(self):
133
+ """Imports boundary information from JSON."""
134
+ if self.open_region is not None:
135
+ self._pedb.hfss.hfss_extent_info.use_open_region = self.open_region
136
+ if self.open_region_type:
137
+ self._pedb.hfss.hfss_extent_info.open_region_type = self.open_region_type.lower()
138
+ if self.pml_visible is not None:
139
+ self._pedb.hfss.hfss_extent_info.is_pml_visible = self.pml_visible
140
+ if self.pml_operation_frequency:
141
+ self._pedb.hfss.hfss_extent_info.operating_freq = self.pml_operation_frequency
142
+ if self.pml_radiation_factor:
143
+ if self._pedb.grpc:
144
+ self._pedb.hfss.hfss_extent_info.pml_radiation_factor = self.pml_radiation_factor
145
+ else:
146
+ self._pedb.hfss.hfss_extent_info.radiation_level = self.pml_radiation_factor
147
+ if self.dielectric_extent_type:
148
+ self._pedb.hfss.hfss_extent_info.extent_type = self.dielectric_extent_type.lower()
149
+ if self.horizontal_padding:
150
+ self._pedb.hfss.hfss_extent_info.dielectric_extent_size = float(self.horizontal_padding)
151
+ if self.honor_primitives_on_dielectric_layers is not None:
152
+ self._pedb.hfss.hfss_extent_info.honor_user_dielectric = self.honor_primitives_on_dielectric_layers
153
+ if self.air_box_extent_type:
154
+ self._pedb.hfss.hfss_extent_info.extent_type = self.air_box_extent_type.lower()
155
+ if self.air_box_truncate_model_ground_layers is not None:
156
+ self._pedb.hfss.hfss_extent_info.truncate_air_box_at_ground = self.air_box_truncate_model_ground_layers
157
+ if self.air_box_horizontal_padding:
158
+ self._pedb.hfss.hfss_extent_info.air_box_horizontal_extent = float(self.air_box_horizontal_padding)
159
+ if self.air_box_positive_vertical_padding:
160
+ self._pedb.hfss.hfss_extent_info.air_box_positive_vertical_extent = float(
161
+ self.air_box_positive_vertical_padding
162
+ )
163
+ if self.air_box_negative_vertical_padding:
164
+ self._pedb.hfss.hfss_extent_info.air_box_negative_vertical_extent = float(
165
+ self.air_box_negative_vertical_padding
166
+ )
167
+
168
+ def __init__(self, pedb, boundary_data):
169
+ self.pedb = pedb
170
+ self.boundary_data = boundary_data
171
+ if self.pedb.grpc:
172
+ self.api = self.Grpc(self)
173
+ else:
174
+ self.api = self.DotNet(self)
175
+
176
+ def apply(self):
177
+ """Imports boundary information from JSON."""
178
+ self.api.set_parameters_to_edb()
179
+
180
+ def get_data_from_db(self):
181
+ return self.api.get_parameters_from_edb()
@@ -24,26 +24,42 @@
24
24
  class CfgGeneral:
25
25
  """Manage configuration general settings."""
26
26
 
27
+ class Grpc:
28
+ def __init__(self, parent):
29
+ self.parent = parent
30
+ self.pedb = parent.pedb
31
+
32
+ def set_parameters_to_edb(self):
33
+ self.pedb.active_cell.anti_pads_always_on = self.parent.anti_pads_always_on
34
+ self.pedb.active_cell.suppress_pads = self.parent.suppress_pads
35
+
36
+ def get_parameters_from_edb(self):
37
+ anti_pads_always_on = self.pedb.design_options.antipads_always_on
38
+ suppress_pads = self.pedb.design_options.suppress_pads
39
+ data = {"anti_pads_always_on": anti_pads_always_on, "suppress_pads": suppress_pads}
40
+ return data
41
+
42
+ class DotNet(Grpc):
43
+ def __init__(self, parent):
44
+ super().__init__(parent)
45
+
46
+ def set_parameters_to_edb(self):
47
+ self.pedb.design_options.antipads_always_on = self.parent.anti_pads_always_on
48
+ self.pedb.design_options.suppress_pads = self.parent.suppress_pads
49
+
27
50
  def __init__(self, pedb, data):
28
- self._pedb = pedb
51
+ self.pedb = pedb
52
+ if self.pedb.grpc:
53
+ self.api = self.Grpc(self)
54
+ else:
55
+ self.api = self.DotNet(self)
29
56
  self.spice_model_library = data.get("spice_model_library", "")
30
57
  self.s_parameter_library = data.get("s_parameter_library", "")
31
58
  self.anti_pads_always_on = data.get("anti_pads_always_on", False)
32
59
  self.suppress_pads = data.get("suppress_pads", True)
33
60
 
34
61
  def apply(self):
35
- if self._pedb.grpc:
36
- self._pedb.active_cell.anti_pads_always_on = self.anti_pads_always_on
37
- self._pedb.active_cell.suppress_pads = self.suppress_pads
38
- else:
39
- self._pedb.design_options.antipads_always_on = self.anti_pads_always_on
40
- self._pedb.design_options.suppress_pads = self.suppress_pads
62
+ self.api.set_parameters_to_edb()
41
63
 
42
64
  def get_data_from_db(self):
43
- self.anti_pads_always_on = self._pedb.design_options.antipads_always_on
44
- self.suppress_pads = self._pedb.design_options.suppress_pads
45
-
46
- data = {}
47
- data["anti_pads_always_on"] = self.anti_pads_always_on
48
- data["suppress_pads"] = self.suppress_pads
49
- return data
65
+ return self.api.get_parameters_from_edb()
@@ -0,0 +1,234 @@
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
+
23
+ from pyedb.configuration.cfg_components import CfgComponent
24
+ from pyedb.configuration.cfg_padstacks import CfgPadstackDefinition, CfgPadstackInstance
25
+ from pyedb.dotnet.database.edb_data.padstacks_data import EDBPadstack
26
+
27
+
28
+ class CfgTrace:
29
+ def __init__(self, **kwargs):
30
+ self.name = kwargs.get("name", "")
31
+ self.layer = kwargs["layer"]
32
+ self.path = kwargs["path"]
33
+ self.width = kwargs["width"]
34
+ self.net_name = kwargs.get("net_name", "")
35
+ self.start_cap_style = kwargs.get("start_cap_style", "round")
36
+ self.end_cap_style = kwargs.get("end_cap_style", "round")
37
+ self.corner_style = kwargs.get("corner_style", "sharp")
38
+
39
+
40
+ class CfgPlane:
41
+ def __init__(self, **kwargs):
42
+ self.name = kwargs.get("name", "")
43
+ self.layer = kwargs["layer"]
44
+ self.net_name = kwargs.get("net_name", "")
45
+ self.type = kwargs.get("type", "rectangle")
46
+
47
+ # rectangle
48
+ self.lower_left_point = kwargs.get("lower_left_point", [])
49
+ self.upper_right_point = kwargs.get("upper_right_point", [])
50
+ self.corner_radius = kwargs.get("corner_radius", 0)
51
+ self.rotation = kwargs.get("rotation", 0)
52
+ self.voids = kwargs.get("voids", [])
53
+
54
+ # polygon
55
+ self.points = kwargs.get("points", [])
56
+
57
+
58
+ class CfgModeler:
59
+ """Manage configuration general settings."""
60
+
61
+ class Grpc:
62
+ def __init__(self, parent):
63
+ self.parent = parent
64
+ self._pedb = parent._pedb
65
+
66
+ def set_parameter_to_edb(self):
67
+ from ansys.edb.core.definition.padstack_def import (
68
+ PadstackDef as GrpcPadstackDef,
69
+ )
70
+ from ansys.edb.core.definition.padstack_def_data import (
71
+ PadstackDefData as GrpcPadstackDefData,
72
+ )
73
+
74
+ from pyedb.grpc.database.definition.padstack_def import PadstackDef
75
+
76
+ if self.parent.traces:
77
+ for t in self.parent.traces:
78
+ obj = self._pedb.modeler.create_trace(
79
+ path_list=t.path,
80
+ layer_name=t.layer,
81
+ net_name=t.net_name,
82
+ width=t.width,
83
+ start_cap_style=t.start_cap_style,
84
+ end_cap_style=t.end_cap_style,
85
+ corner_style=t.corner_style,
86
+ )
87
+ obj.aedt_name = t.name
88
+
89
+ if self.parent.padstack_defs:
90
+ for p in self.parent.padstack_defs:
91
+ pdata = GrpcPadstackDefData.create()
92
+ pdef = GrpcPadstackDef.create(self._pedb.active_db, p.name)
93
+ pdef.data = pdata
94
+ pdef = PadstackDef(self._pedb, pdef)
95
+ p.pyedb_obj = pdef
96
+ p.api.set_parameters_to_edb()
97
+
98
+ if self.parent.padstack_instances:
99
+ for p in self.parent.padstack_instances:
100
+ p_inst = self._pedb.padstacks.place(
101
+ via_name=p.name,
102
+ net_name=p.net_name,
103
+ position=p.position,
104
+ definition_name=p.definition,
105
+ )
106
+ p.pyedb_obj = p_inst
107
+ p.api.set_parameters_to_edb()
108
+
109
+ if self.parent.planes:
110
+ for p in self.parent.planes:
111
+ if p.type == "rectangle":
112
+ obj = self._pedb.modeler.create_rectangle(
113
+ layer_name=p.layer,
114
+ net_name=p.net_name,
115
+ lower_left_point=p.lower_left_point,
116
+ upper_right_point=p.upper_right_point,
117
+ corner_radius=p.corner_radius,
118
+ rotation=p.rotation,
119
+ )
120
+ obj.aedt_name = p.name
121
+ elif p.type == "polygon":
122
+ obj = self._pedb.modeler.create_polygon(
123
+ points=p.points, layer_name=p.layer, net_name=p.net_name
124
+ )
125
+ obj.aedt_name = p.name
126
+
127
+ for v in p.voids:
128
+ for i in self._pedb.layout.primitives:
129
+ if i.aedt_name == v:
130
+ self._pedb.modeler.add_void(obj, i)
131
+
132
+ if self.parent.components:
133
+ pedb_p_inst = self._pedb.padstacks.instances_by_name
134
+ for c in self.parent.components:
135
+ obj = self._pedb.components.create(
136
+ [pedb_p_inst[i] for i in c.pins],
137
+ component_name=c.reference_designator,
138
+ placement_layer=c.placement_layer,
139
+ component_part_name=c.definition,
140
+ )
141
+ c.pyedb_obj = obj
142
+ c.api.set_parameters_to_edb()
143
+
144
+ class DotNet(Grpc):
145
+ def __init__(self, parent):
146
+ super().__init__(parent)
147
+
148
+ def set_parameter_to_edb(self):
149
+ if self.parent.traces:
150
+ for t in self.parent.traces:
151
+ obj = self._pedb.modeler.create_trace(
152
+ path_list=t.path,
153
+ layer_name=t.layer,
154
+ net_name=t.net_name,
155
+ width=t.width,
156
+ start_cap_style=t.start_cap_style,
157
+ end_cap_style=t.end_cap_style,
158
+ corner_style=t.corner_style,
159
+ )
160
+ obj.aedt_name = t.name
161
+
162
+ if self.parent.padstack_defs:
163
+ for p in self.parent.padstack_defs:
164
+ pdata = self._pedb._edb.Definition.PadstackDefData.Create()
165
+ pdef = self._pedb._edb.Definition.PadstackDef.Create(self._pedb.active_db, p.name)
166
+ pdef.SetData(pdata)
167
+ pdef = EDBPadstack(pdef, self._pedb.padstacks)
168
+ p.pyedb_obj = pdef
169
+ p.api.set_parameters_to_edb()
170
+
171
+ if self.parent.padstack_instances:
172
+ for p in self.parent.padstack_instances:
173
+ p_inst = self._pedb.padstacks.place(
174
+ via_name=p.name,
175
+ net_name=p.net_name,
176
+ position=p.position,
177
+ definition_name=p.definition,
178
+ )
179
+ p.pyedb_obj = p_inst
180
+ p.api.set_parameters_to_edb()
181
+
182
+ if self.parent.planes:
183
+ for p in self.parent.planes:
184
+ if p.type == "rectangle":
185
+ obj = self._pedb.modeler.create_rectangle(
186
+ layer_name=p.layer,
187
+ net_name=p.net_name,
188
+ lower_left_point=p.lower_left_point,
189
+ upper_right_point=p.upper_right_point,
190
+ corner_radius=p.corner_radius,
191
+ rotation=p.rotation,
192
+ )
193
+ obj.aedt_name = p.name
194
+ elif p.type == "polygon":
195
+ obj = self._pedb.modeler.create_polygon(
196
+ main_shape=p.points, layer_name=p.layer, net_name=p.net_name
197
+ )
198
+ obj.aedt_name = p.name
199
+
200
+ for v in p.voids:
201
+ for i in self._pedb.layout.primitives:
202
+ if i.aedt_name == v:
203
+ self._pedb.modeler.add_void(obj, i)
204
+
205
+ if self.parent.components:
206
+ pedb_p_inst = self._pedb.padstacks.instances_by_name
207
+ for c in self.parent.components:
208
+ obj = self._pedb.components.create(
209
+ [pedb_p_inst[i] for i in c.pins],
210
+ component_name=c.reference_designator,
211
+ placement_layer=c.placement_layer,
212
+ component_part_name=c.definition,
213
+ )
214
+ c.pyedb_obj = obj
215
+ c.api.set_parameters_to_edb()
216
+
217
+ def __init__(self, pedb, data):
218
+ self._pedb = pedb
219
+ if self._pedb.grpc:
220
+ self.api = self.Grpc(self)
221
+ else:
222
+ self.api = self.DotNet(self)
223
+ self.traces = [CfgTrace(**i) for i in data.get("traces", [])]
224
+ self.padstack_defs = [
225
+ CfgPadstackDefinition(self._pedb, None, **i) for i in data.get("padstack_definitions", [])
226
+ ]
227
+ self.padstack_instances = [
228
+ CfgPadstackInstance(self._pedb, None, **i) for i in data.get("padstack_instances", [])
229
+ ]
230
+ self.planes = [CfgPlane(**i) for i in data.get("planes", [])]
231
+ self.components = [CfgComponent(self._pedb, None, **i) for i in data.get("components", [])]
232
+
233
+ def apply(self):
234
+ self.api.set_parameter_to_edb()
@@ -24,8 +24,39 @@
24
24
  class CfgNets:
25
25
  """Manage configuration net class."""
26
26
 
27
+ class Grpc:
28
+ def __init__(self, parent):
29
+ self.parent = parent
30
+ self._pedb = parent._pedb
31
+
32
+ def set_parameter_to_edb(self):
33
+ for signal_net in self.parent.signal_nets:
34
+ if signal_net in self._pedb.nets:
35
+ self._pedb.nets.nets[signal_net].is_power_ground = False
36
+ for power_net in self.parent.power_nets:
37
+ if power_net in self._pedb.nets:
38
+ self._pedb.nets.nets[power_net].is_power_ground = True
39
+
40
+ def get_parameter_from_edb(self):
41
+ """Get net information."""
42
+ for net in self._pedb.nets.signal:
43
+ self.parent.signal_nets.append(net)
44
+ for net in self._pedb.nets.power:
45
+ self.parent.power_nets.append(net)
46
+ data = {"signal_nets": self.parent.signal_nets, "power_ground_nets": self.parent.power_nets}
47
+ return data
48
+
49
+ class DotNet(Grpc):
50
+ def __init__(self, parent):
51
+ self.parent = parent
52
+ super().__init__(parent)
53
+
27
54
  def __init__(self, pdata, signal_nets=None, power_nets=None):
28
55
  self._pedb = pdata._pedb
56
+ if self._pedb.grpc:
57
+ self.api = self.Grpc(self)
58
+ else:
59
+ self.api = self.DotNet(self)
29
60
  self.signal_nets = []
30
61
  self.power_nets = []
31
62
  if signal_nets:
@@ -35,23 +66,8 @@ class CfgNets:
35
66
 
36
67
  def apply(self):
37
68
  """Apply net on layout."""
38
- for signal_net in self.signal_nets:
39
- if signal_net in self._pedb.nets:
40
- self._pedb.nets.nets[signal_net].is_power_ground = False
41
- for power_net in self.power_nets:
42
- if power_net in self._pedb.nets:
43
- self._pedb.nets.nets[power_net].is_power_ground = True
44
-
45
- def _load_data_from_db(self):
46
- self.signal_nets = []
47
- self.power_nets = []
48
- for net in self._pedb.nets.signal:
49
- self.signal_nets.append(net)
50
- for net in self._pedb.nets.power:
51
- self.power_nets.append(net)
69
+ self.api.set_parameter_to_edb()
52
70
 
53
71
  def get_data_from_db(self):
54
72
  """Get net information."""
55
- self._load_data_from_db()
56
- data = {"signal_nets": self.signal_nets, "power_ground_nets": self.power_nets}
57
- return data
73
+ return self.api.get_parameter_from_edb()
@@ -24,9 +24,38 @@ from pyedb.configuration.cfg_common import CfgBase
24
24
 
25
25
 
26
26
  class CfgCutout(CfgBase):
27
+ class Grpc:
28
+ def __init__(self, parent):
29
+ self.parent = parent
30
+ self._pedb = parent._pedb
31
+
32
+ def get_parameters_from_edb(self):
33
+ if "pyedb_cutout" in self._pedb.stackup.all_layers:
34
+ polygons = self._pedb.layout.find_primitive(layer_name="pyedb_cutout")
35
+ if polygons:
36
+ poly = polygons[0]
37
+ self.parent.custom_extent = poly.polygon_data.points
38
+ net_names = []
39
+ for name, obj in self._pedb.nets.nets.items():
40
+ if obj.primitives:
41
+ if obj.primitives[0].layer.name == "pyedb_cutout":
42
+ continue
43
+ else:
44
+ net_names.append(name)
45
+ self.parent.reference_list = []
46
+ self.parent.signal_list = net_names
47
+ return self.parent.export_properties()
48
+
49
+ class DotNet(Grpc):
50
+ def __init__(self, parent):
51
+ super().__init__(parent)
52
+
27
53
  def __init__(self, pedb, **kwargs):
28
54
  self._pedb = pedb
29
-
55
+ if self._pedb.grpc:
56
+ self.api = self.Grpc(self)
57
+ else:
58
+ self.api = self.DotNet(self)
30
59
  self.signal_list = kwargs.get("signal_list")
31
60
  self.reference_list = kwargs.get("reference_list")
32
61
  self.extent_type = kwargs.get("extent_type")
@@ -52,23 +81,7 @@ class CfgCutout(CfgBase):
52
81
  self.keep_lines_as_path = kwargs.get("keep_lines_as_path")
53
82
 
54
83
  def get_data_from_db(self):
55
- if "pyedb_cutout" in self._pedb.stackup.all_layers:
56
- polygons = self._pedb.layout.find_primitive(layer_name="pyedb_cutout")
57
- if polygons:
58
- poly = polygons[0]
59
- self.custom_extent = poly.polygon_data.points
60
-
61
- net_names = []
62
- for name, obj in self._pedb.nets.nets.items():
63
- if obj.primitives:
64
- if obj.primitives[0].layer.name == "pyedb_cutout":
65
- continue
66
- else:
67
- net_names.append(name)
68
-
69
- self.reference_list = []
70
- self.signal_list = net_names
71
- return self.export_properties()
84
+ return self.api.get_parameters_from_edb()
72
85
 
73
86
  def export_properties(self):
74
87
  return {
@@ -79,24 +92,43 @@ class CfgCutout(CfgBase):
79
92
 
80
93
 
81
94
  class CfgOperations(CfgBase):
95
+ class Grpc:
96
+ def __init__(self, parent):
97
+ self.parent = parent
98
+ self._pedb = parent._pedb
99
+
100
+ def apply_on_edb(self):
101
+ if self.parent.op_cutout:
102
+ polygon_points = self._pedb.cutout(**self.parent.op_cutout.get_attributes())
103
+ if "pyedb_cutout" not in self._pedb.stackup.all_layers:
104
+ self._pedb.stackup.add_document_layer(name="pyedb_cutout")
105
+ self._pedb.modeler.create_polygon(
106
+ polygon_points, layer_name="pyedb_cutout", net_name="pyedb_cutout"
107
+ )
108
+
109
+ def get_parameter_from_edb(self):
110
+ self.parent.op_cutout = CfgCutout(self._pedb)
111
+ data_from_db = self.parent.op_cutout.get_data_from_db()
112
+ if data_from_db:
113
+ return {"cutout": data_from_db}
114
+ else:
115
+ return {}
116
+
117
+ class DotNet(Grpc):
118
+ def __init__(self, parent):
119
+ super().__init__(parent)
120
+
82
121
  def __init__(self, pedb, data):
83
122
  self._pedb = pedb
123
+ if self._pedb.grpc:
124
+ self.api = self.Grpc(self)
125
+ else:
126
+ self.api = self.DotNet(self)
84
127
  self.op_cutout = CfgCutout(pedb, **data["cutout"]) if "cutout" in data else None
85
128
 
86
129
  def apply(self):
87
130
  """Imports operation information from JSON."""
88
- if self.op_cutout:
89
- polygon_points = self._pedb.cutout(**self.op_cutout.get_attributes())
90
- if "pyedb_cutout" not in self._pedb.stackup.all_layers:
91
- self._pedb.stackup.add_document_layer(name="pyedb_cutout")
92
- self._pedb.modeler.create_polygon(polygon_points, layer_name="pyedb_cutout", net_name="pyedb_cutout")
93
-
94
- # create a polygon on pyedb layer
131
+ self.api.apply_on_edb()
95
132
 
96
133
  def get_data_from_db(self):
97
- self.op_cutout = CfgCutout(self._pedb)
98
- data_from_db = self.op_cutout.get_data_from_db()
99
- if data_from_db:
100
- return {"cutout": data_from_db}
101
- else:
102
- return {}
134
+ return self.api.get_parameter_from_edb()