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