pyedb 0.50.0__tar.gz → 0.51.2__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 (290) hide show
  1. {pyedb-0.50.0 → pyedb-0.51.2}/PKG-INFO +1 -1
  2. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/__init__.py +1 -1
  3. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_ports_sources.py +79 -239
  4. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/configuration.py +27 -0
  5. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/clr_module.py +9 -3
  6. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/component.py +3 -3
  7. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/layout.py +10 -1
  8. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/dotnet/database.py +0 -2
  9. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/padstacks_data.py +13 -0
  10. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/layout_validation.py +17 -13
  11. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/modeler.py +0 -1
  12. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/edb.py +7 -1
  13. pyedb-0.51.2/src/pyedb/generic/design_types.py +267 -0
  14. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/components.py +604 -652
  15. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/control_file.py +597 -155
  16. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/component_def.py +17 -14
  17. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/materials.py +27 -27
  18. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/package_def.py +8 -8
  19. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/padstack_def.py +31 -33
  20. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definitions.py +36 -2
  21. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/geometry/arc_data.py +5 -5
  22. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/geometry/point_3d_data.py +3 -3
  23. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/geometry/polygon_data.py +5 -5
  24. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hfss.py +412 -395
  25. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/component.py +67 -58
  26. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/pin_pair_model.py +6 -6
  27. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/pingroup.py +13 -11
  28. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/s_parameter_model.py +1 -1
  29. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/spice_model.py +1 -1
  30. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layers/layer.py +2 -2
  31. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layers/stackup_layer.py +26 -23
  32. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layout/layout.py +12 -12
  33. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layout/voltage_regulator.py +8 -8
  34. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layout_validation.py +58 -7
  35. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/modeler.py +248 -245
  36. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/net/differential_pair.py +4 -4
  37. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/net/extended_net.py +7 -8
  38. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/net/net.py +57 -46
  39. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/nets.py +362 -116
  40. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/padstacks.py +259 -178
  41. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/ports/ports.py +23 -17
  42. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/padstack_instance.py +45 -30
  43. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/path.py +6 -6
  44. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/polygon.py +9 -9
  45. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/primitive.py +21 -21
  46. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/rectangle.py +1 -1
  47. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +1 -1
  48. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
  49. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_settings_options.py +1 -1
  50. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +6 -6
  51. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +2 -2
  52. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +2 -2
  53. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +1 -1
  54. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +3 -3
  55. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/siwave.py +226 -214
  56. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/source_excitations.py +307 -40
  57. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/stackup.py +461 -283
  58. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/terminal/bundle_terminal.py +12 -12
  59. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/terminal/edge_terminal.py +6 -5
  60. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/terminal/padstack_instance_terminal.py +13 -13
  61. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/terminal/pingroup_terminal.py +12 -12
  62. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/terminal/point_terminal.py +6 -6
  63. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/terminal/terminal.py +26 -26
  64. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/heat_sink.py +5 -5
  65. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/hfss_extent_info.py +21 -21
  66. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/layout_statistics.py +13 -13
  67. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/rlc.py +3 -3
  68. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/sources.py +1 -1
  69. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/sweep_data_distribution.py +1 -1
  70. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/edb.py +542 -739
  71. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/edb_init.py +50 -3
  72. pyedb-0.50.0/src/pyedb/generic/design_types.py +0 -146
  73. pyedb-0.50.0/src/pyedb/grpc/database/utility/simulation_configuration.py +0 -3305
  74. {pyedb-0.50.0 → pyedb-0.51.2}/LICENSE +0 -0
  75. {pyedb-0.50.0 → pyedb-0.51.2}/README.md +0 -0
  76. {pyedb-0.50.0 → pyedb-0.51.2}/pyproject.toml +0 -0
  77. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/common/__init__.py +0 -0
  78. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/common/nets.py +0 -0
  79. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/component_libraries/ansys_components.py +0 -0
  80. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/__init__.py +0 -0
  81. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_boundaries.py +0 -0
  82. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_common.py +0 -0
  83. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_components.py +0 -0
  84. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_data.py +0 -0
  85. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_general.py +0 -0
  86. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_modeler.py +0 -0
  87. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_nets.py +0 -0
  88. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_operations.py +0 -0
  89. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_package_definition.py +0 -0
  90. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_padstacks.py +0 -0
  91. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_pin_groups.py +0 -0
  92. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
  93. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_setup.py +0 -0
  94. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_spice_models.py +0 -0
  95. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/configuration/cfg_stackup.py +0 -0
  96. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/__init__.py +0 -0
  97. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/Variables.py +0 -0
  98. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/__init__.py +0 -0
  99. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/__init__.py +0 -0
  100. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/connectable.py +0 -0
  101. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/__init__.py +0 -0
  102. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/hierarchy_obj.py +0 -0
  103. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/model.py +0 -0
  104. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/netlist_model.py +0 -0
  105. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/pin_pair_model.py +0 -0
  106. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py +0 -0
  107. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/hierarchy/spice_model.py +0 -0
  108. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/layout_obj.py +0 -0
  109. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/primitive/__init__.py +0 -0
  110. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/primitive/bondwire.py +0 -0
  111. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/primitive/path.py +0 -0
  112. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/primitive/primitive.py +0 -0
  113. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/terminal/__init__.py +0 -0
  114. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/terminal/bundle_terminal.py +0 -0
  115. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/terminal/edge_terminal.py +0 -0
  116. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py +0 -0
  117. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/terminal/pingroup_terminal.py +0 -0
  118. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/terminal/point_terminal.py +0 -0
  119. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/terminal/terminal.py +0 -0
  120. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/cell/voltage_regulator.py +0 -0
  121. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/components.py +0 -0
  122. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/definition/__init__.py +0 -0
  123. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/definition/component_def.py +0 -0
  124. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/definition/component_model.py +0 -0
  125. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/definition/definition_obj.py +0 -0
  126. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/definition/definitions.py +0 -0
  127. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/definition/package_def.py +0 -0
  128. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/dotnet/__init__.py +0 -0
  129. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/dotnet/primitive.py +0 -0
  130. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/__init__.py +0 -0
  131. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/control_file.py +0 -0
  132. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/design_options.py +0 -0
  133. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/edbvalue.py +0 -0
  134. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/hfss_extent_info.py +0 -0
  135. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/layer_data.py +0 -0
  136. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/nets_data.py +0 -0
  137. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/ports.py +0 -0
  138. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/primitives_data.py +0 -0
  139. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py +0 -0
  140. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/simulation_configuration.py +0 -0
  141. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/sources.py +0 -0
  142. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/utilities.py +0 -0
  143. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/edb_data/variables.py +0 -0
  144. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/general.py +0 -0
  145. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/geometry/__init__.py +0 -0
  146. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/geometry/point_data.py +0 -0
  147. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/geometry/polygon_data.py +0 -0
  148. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/hfss.py +0 -0
  149. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/layout_obj_instance.py +0 -0
  150. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/materials.py +0 -0
  151. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/net_class.py +0 -0
  152. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/nets.py +0 -0
  153. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/padstack.py +0 -0
  154. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/__init__.py +0 -0
  155. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/__init__.py +0 -0
  156. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  157. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py +0 -0
  158. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/settings.py +0 -0
  159. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/sim_setup_info.py +0 -0
  160. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/simulation_settings.py +0 -0
  161. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
  162. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/data/sweep_data.py +0 -0
  163. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/io/__init__.py +0 -0
  164. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/sim_setup_data/io/siwave.py +0 -0
  165. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/siwave.py +0 -0
  166. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/stackup.py +0 -0
  167. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/utilities/__init__.py +0 -0
  168. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/utilities/heatsink.py +0 -0
  169. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/utilities/hfss_simulation_setup.py +0 -0
  170. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/utilities/obj_base.py +0 -0
  171. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/utilities/simulation_setup.py +0 -0
  172. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/dotnet/database/utilities/siwave_simulation_setup.py +0 -0
  173. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/edb_logger.py +0 -0
  174. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/exceptions.py +0 -0
  175. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/extensions/__init__.py +0 -0
  176. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/extensions/via_design_backend.py +0 -0
  177. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/__init__.py +0 -0
  178. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/constants.py +0 -0
  179. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/data_handlers.py +0 -0
  180. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/filesystem.py +0 -0
  181. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/general_methods.py +0 -0
  182. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/plot.py +0 -0
  183. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/process.py +0 -0
  184. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/generic/settings.py +0 -0
  185. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/__init__.py +0 -0
  186. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/__init__.py +0 -0
  187. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/component_model.py +0 -0
  188. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/component_pin.py +0 -0
  189. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/definition/n_port_component_model.py +0 -0
  190. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/general.py +0 -0
  191. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/geometry/__init__.py +0 -0
  192. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/geometry/point_data.py +0 -0
  193. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/__init__.py +0 -0
  194. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/model.py +0 -0
  195. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/hierarchy/netlist_model.py +0 -0
  196. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layers/__init__.py +0 -0
  197. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layout/__init__.py +0 -0
  198. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/layout/cell.py +0 -0
  199. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/net/__init__.py +0 -0
  200. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/net/net_class.py +0 -0
  201. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/ports/__init__.py +0 -0
  202. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/__init__.py +0 -0
  203. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/bondwire.py +0 -0
  204. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/primitive/circle.py +0 -0
  205. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/__init__.py +0 -0
  206. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/adaptive_frequency.py +0 -0
  207. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py +0 -0
  208. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py +0 -0
  209. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/hfss_solver_settings.py +0 -0
  210. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/mesh_operation.py +0 -0
  211. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py +0 -0
  212. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py +0 -0
  213. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py +0 -0
  214. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/simulation_setup/sweep_data.py +0 -0
  215. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/terminal/__init__.py +0 -0
  216. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/__init__.py +0 -0
  217. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/constants.py +0 -0
  218. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/database/utility/xml_control_file.py +0 -0
  219. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/grpc/rpc_session.py +0 -0
  220. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/__init__.py +0 -0
  221. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/bom/__init__.py +0 -0
  222. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/bom/bom.py +0 -0
  223. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
  224. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
  225. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/bom/refdes.py +0 -0
  226. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/__init__.py +0 -0
  227. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/color.py +0 -0
  228. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/content.py +0 -0
  229. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
  230. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
  231. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
  232. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/entry_color.py +0 -0
  233. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/entry_line.py +0 -0
  234. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/fill.py +0 -0
  235. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
  236. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
  237. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/__init__.py +0 -0
  238. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
  239. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
  240. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
  241. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
  242. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
  243. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
  244. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
  245. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
  246. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
  247. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
  248. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
  249. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
  250. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
  251. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
  252. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
  253. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
  254. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
  255. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
  256. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
  257. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
  258. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
  259. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
  260. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
  261. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_data/step.py +0 -0
  262. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
  263. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
  264. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ecad/spec.py +0 -0
  265. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/history_record.py +0 -0
  266. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/ipc2581.py +0 -0
  267. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/ipc2581/logistic_header.py +0 -0
  268. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/__init__.py +0 -0
  269. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
  270. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/downloads.py +0 -0
  271. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/misc.py +0 -0
  272. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
  273. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/__init__.py +0 -0
  274. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
  275. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
  276. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
  277. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
  278. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
  279. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
  280. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
  281. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
  282. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
  283. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
  284. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
  285. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
  286. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/misc/utilities.py +0 -0
  287. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/modeler/geometry_operators.py +0 -0
  288. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/siwave.py +0 -0
  289. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/siwave_core/icepak.py +0 -0
  290. {pyedb-0.50.0 → pyedb-0.51.2}/src/pyedb/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.50.0
3
+ Version: 0.51.2
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.50.0"
47
+ __version__ = "0.51.2"
48
48
  version = __version__
49
49
 
50
50
  #
@@ -19,7 +19,6 @@
19
19
  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
- import os
23
22
 
24
23
  import numpy as np
25
24
 
@@ -33,29 +32,11 @@ from pyedb.dotnet.database.geometry.point_data import PointData
33
32
  class CfgTerminalInfo(CfgBase):
34
33
  CFG_TERMINAL_TYPES = ["pin", "net", "pin_group", "nearest_pin", "coordinates"]
35
34
 
36
- class Grpc:
37
- def __init__(self, parent):
38
- self.parent = parent
39
- self._pedb = parent._pedb
40
-
41
- def update_contact_radius(self, radius):
42
- from ansys.edb.core.utility.value import Value as GrpcValue
43
-
44
- self.parent.contact_radius = GrpcValue(radius).value
45
-
46
- class DotNet(Grpc):
47
- def __init__(self, parent):
48
- super().__init__(parent)
49
-
50
- def update_contact_radius(self, radius):
51
- self.parent.contact_radius = self._pedb.edb_value(radius).ToDouble()
35
+ def update_contact_radius(self, radius):
36
+ self.contact_radius = self._pedb.edb_value(radius).ToDouble()
52
37
 
53
38
  def __init__(self, pedb, **kwargs):
54
39
  self._pedb = pedb
55
- if self._pedb.grpc:
56
- self.api = self.Grpc(self)
57
- else:
58
- self.api = self.DotNet(self)
59
40
 
60
41
  if kwargs.get("padstack"):
61
42
  self.type = "padstack"
@@ -76,7 +57,8 @@ class CfgTerminalInfo(CfgBase):
76
57
 
77
58
  self.contact_type = kwargs.get("contact_type", "default") # options are full, center, quad, inline
78
59
  contact_radius = "0.1mm" if kwargs.get("contact_radius") is None else kwargs.get("contact_radius")
79
- self.api.update_contact_radius(contact_radius)
60
+
61
+ self.contact_radius = self._pedb.edb_value(contact_radius).ToDouble()
80
62
  self.num_of_contact = kwargs.get("num_of_contact", 4)
81
63
  self.contact_expansion = kwargs.get("contact_expansion", 1)
82
64
 
@@ -108,27 +90,11 @@ class CfgNearestPinTerminalInfo(CfgTerminalInfo):
108
90
 
109
91
 
110
92
  class CfgSources:
111
- class Grpc:
112
- def __init__(self, parent):
113
- self.parent = parent
114
- self._pedb = parent._pedb
115
-
116
- def get_pin_group_name(self, src):
117
- return src.pin_group.name
118
-
119
- class DotNet(Grpc):
120
- def __init__(self, parent):
121
- super().__init__(parent)
122
-
123
- def get_pin_group_name(self, src):
124
- return src._edb_object.GetPinGroup().GetName()
93
+ def get_pin_group_name(self, src):
94
+ return src._edb_object.GetPinGroup().GetName()
125
95
 
126
96
  def __init__(self, pedb, sources_data):
127
97
  self._pedb = pedb
128
- if self._pedb.grpc:
129
- self.api = self.Grpc(self)
130
- else:
131
- self.api = self.DotNet(self)
132
98
  self.sources = [CfgSource(self._pedb, **src) for src in sources_data]
133
99
 
134
100
  def apply(self):
@@ -147,7 +113,7 @@ class CfgSources:
147
113
 
148
114
  if src.terminal_type == "PinGroupTerminal":
149
115
  refdes = ""
150
- pg = self._pedb.siwave.pin_groups[self.api.get_pin_group_name(src)]
116
+ pg = self._pedb.siwave.pin_groups[self.get_pin_group_name(src)]
151
117
  pos_term_info = {"pin_group": pg.name}
152
118
  elif src.terminal_type == "PadstackInstanceTerminal":
153
119
  refdes = src.component.refdes if src.component else ""
@@ -155,7 +121,7 @@ class CfgSources:
155
121
 
156
122
  neg_term = self._pedb.terminals[src.ref_terminal.name]
157
123
  if neg_term.terminal_type == "PinGroupTerminal":
158
- pg = self._pedb.siwave.pin_groups[self.api.get_pin_group_name(neg_term)]
124
+ pg = self._pedb.siwave.pin_groups[self.get_pin_group_name(neg_term)]
159
125
  neg_term_info = {"pin_group": pg.name}
160
126
  elif neg_term.terminal_type == "PadstackInstanceTerminal":
161
127
  neg_term_info = {"padstack": neg_term.padstack_instance.aedt_name}
@@ -180,68 +146,29 @@ class CfgSources:
180
146
 
181
147
 
182
148
  class CfgPorts:
183
- class Grpc:
184
- def __init__(self, parent):
185
- self.parent = parent
186
- self._pedb = parent._pedb
187
-
188
- def get_pin_group(self, port):
189
- return self._pedb.siwave.pin_groups[port._edb_object.pin_group.name]
190
-
191
- def get_edge_info(self, port):
192
- return port._edb_object.GetEdges()[0].GetParameters()
193
-
194
- def _get_edge_port_from_edb(self, p, port_type):
195
- # primitive, point = p._edb_object.GetEdges()[0].GetParameters()
196
- edges = p.edges
197
- primitive = None
198
- point = None
199
- primitive = Primitive(self._pedb, primitive)
200
- point = PointData(self._pedb, point)
201
-
202
- cfg_port = CfgEdgePort(
203
- self._pedb,
204
- name=p.name,
205
- type=port_type,
206
- primitive_name=primitive.aedt_name,
207
- point_on_edge=[point._edb_object.X.ToString(), point._edb_object.Y.ToString()],
208
- horizontal_extent_factor=p.horizontal_extent_factor,
209
- vertical_extent_factor=p.vertical_extent_factor,
210
- pec_launch_width=p.pec_launch_width,
211
- )
212
- return cfg_port
149
+ def get_pin_group(self, port):
150
+ return self._pedb.siwave.pin_groups[port._edb_object.GetPinGroup().GetName()]
213
151
 
214
- class DotNet(Grpc):
215
- def __init__(self, parent):
216
- super().__init__(parent)
152
+ def _get_edge_port_from_edb(self, p, port_type):
153
+ _, primitive, point = p._edb_object.GetEdges()[0].GetParameters()
217
154
 
218
- def get_pin_group(self, port):
219
- return self._pedb.siwave.pin_groups[port._edb_object.GetPinGroup().GetName()]
155
+ primitive = Primitive(self._pedb, primitive)
156
+ point = PointData(self._pedb, point)
220
157
 
221
- def _get_edge_port_from_edb(self, p, port_type):
222
- _, primitive, point = p._edb_object.GetEdges()[0].GetParameters()
223
-
224
- primitive = Primitive(self._pedb, primitive)
225
- point = PointData(self._pedb, point)
226
-
227
- cfg_port = CfgEdgePort(
228
- self._pedb,
229
- name=p.name,
230
- type=port_type,
231
- primitive_name=primitive.aedt_name,
232
- point_on_edge=[point._edb_object.X.ToString(), point._edb_object.Y.ToString()],
233
- horizontal_extent_factor=p.horizontal_extent_factor,
234
- vertical_extent_factor=p.vertical_extent_factor,
235
- pec_launch_width=p.pec_launch_width,
236
- )
237
- return cfg_port
158
+ cfg_port = CfgEdgePort(
159
+ self._pedb,
160
+ name=p.name,
161
+ type=port_type,
162
+ primitive_name=primitive.aedt_name,
163
+ point_on_edge=[point._edb_object.X.ToString(), point._edb_object.Y.ToString()],
164
+ horizontal_extent_factor=p.horizontal_extent_factor,
165
+ vertical_extent_factor=p.vertical_extent_factor,
166
+ pec_launch_width=p.pec_launch_width,
167
+ )
168
+ return cfg_port
238
169
 
239
170
  def __init__(self, pedb, ports_data):
240
171
  self._pedb = pedb
241
- if self._pedb.grpc:
242
- self.api = self.Grpc(self)
243
- else:
244
- self.api = self.DotNet(self)
245
172
  self.ports = []
246
173
  for p in ports_data:
247
174
  if p["type"] == "wave_port":
@@ -256,18 +183,8 @@ class CfgPorts:
256
183
  raise ValueError("Unknown port type")
257
184
 
258
185
  def apply(self):
259
- edb_primitives = {}
260
- for i in self._pedb.layout.primitives:
261
- if i.aedt_name:
262
- edb_primitives[i.aedt_name] = i
263
- for i in self._pedb.layout.padstack_instances:
264
- if i.aedt_name:
265
- edb_primitives[i.aedt_name] = i
266
186
  for p in self.ports:
267
- if p.type in ["wave_port", "diff_wave_port", "gap_port"]:
268
- p.set_parameters_to_edb(edb_primitives)
269
- else:
270
- p.set_parameters_to_edb()
187
+ p.set_parameters_to_edb()
271
188
 
272
189
  def get_data_from_db(self):
273
190
  self.ports = []
@@ -289,7 +206,7 @@ class CfgPorts:
289
206
 
290
207
  if p.terminal_type == "PinGroupTerminal":
291
208
  refdes = ""
292
- pg = self.api.get_pin_group(p)
209
+ pg = self.get_pin_group(p)
293
210
  pos_term_info = {"pin_group": pg.name}
294
211
  elif p.terminal_type == "PadstackInstanceTerminal":
295
212
  refdes = p.component.refdes if p.component else ""
@@ -301,7 +218,7 @@ class CfgPorts:
301
218
  if port_type == "circuit":
302
219
  neg_term = self._pedb.terminals[p.ref_terminal.name]
303
220
  if neg_term.terminal_type == "PinGroupTerminal":
304
- pg = self.api.get_pin_group(neg_term)
221
+ pg = self.get_pin_group(neg_term)
305
222
  # pg = self._pedb.siwave.pin_groups[neg_term._edb_object.GetPinGroup().GetName()]
306
223
  neg_term_info = {"pin_group": pg.name}
307
224
  elif neg_term.terminal_type == "PadstackInstanceTerminal":
@@ -332,7 +249,7 @@ class CfgPorts:
332
249
  positive_terminal=pos_term_info,
333
250
  )
334
251
  else:
335
- cfg_port = self.api._get_edge_port_from_edb(p, port_type)
252
+ cfg_port = self._get_edge_port_from_edb(p, port_type)
336
253
  self.ports.append(cfg_port)
337
254
  return self.export_properties()
338
255
 
@@ -350,7 +267,7 @@ class CfgProbes:
350
267
 
351
268
  def apply(self):
352
269
  for probe in self.probes:
353
- probe.api.set_parameters_to_edb()
270
+ probe.set_parameters_to_edb()
354
271
 
355
272
 
356
273
  class CfgCircuitElement(CfgBase):
@@ -740,134 +657,63 @@ class CfgSource(CfgCircuitElement):
740
657
 
741
658
 
742
659
  class CfgProbe(CfgCircuitElement):
743
- class Common:
744
- def __init__(self, parent):
745
- self.parent = parent
746
- self.pedb = parent._pedb
747
-
748
- def set_parameters_to_edb(self):
749
- self.parent.create_terminals()
750
- circuit_elements = []
751
- for name, j in self.parent.pos_terminals.items():
752
- if isinstance(self.parent.neg_terminal, dict):
753
- elem = self.pedb.create_voltage_probe(j, self.parent.neg_terminal[name])
754
- else:
755
- elem = self.pedb.create_voltage_probe(j, self.parent.neg_terminal)
756
- elem.name = self.parent.name
757
- circuit_elements.append(elem)
758
- return circuit_elements
759
-
760
- class Grpc(Common):
761
- def __init__(self, parent):
762
- super().__init__(parent)
763
-
764
- class DotNet(Grpc):
765
- def __init__(self, parent):
766
- super().__init__(parent)
660
+ def set_parameters_to_edb(self):
661
+ self.create_terminals()
662
+ circuit_elements = []
663
+ for name, j in self.pos_terminals.items():
664
+ if isinstance(self.neg_terminal, dict):
665
+ elem = self._pedb.create_voltage_probe(j, self.neg_terminal[name])
666
+ else:
667
+ elem = self._pedb.create_voltage_probe(j, self.neg_terminal)
668
+ elem.name = self.name
669
+ circuit_elements.append(elem)
670
+ return circuit_elements
767
671
 
768
672
  def __init__(self, pedb, **kwargs):
769
673
  kwargs["type"] = "probe"
770
674
  super().__init__(pedb, **kwargs)
771
- if os.environ["PYEDB_USE_DOTNET"] == "0":
772
- self.api = self.Grpc(self)
773
- else:
774
- self.api = self.DotNet(self)
775
675
 
776
676
 
777
677
  class CfgEdgePort:
778
- class Grpc:
779
- def __init__(self, parent):
780
- self.parent = parent
781
- self._pedb = parent._pedb
782
-
783
- def set_parameters_to_edb(self, edb_primitives):
784
- from ansys.edb.core.geometry.point_data import PointData as GrpcPointData
785
- from ansys.edb.core.terminal.edge_terminal import (
786
- EdgeTerminal as GrpcEdgeTerminal,
787
- )
788
- from ansys.edb.core.terminal.edge_terminal import (
789
- PrimitiveEdge as GrpcPrimitiveEdge,
790
- )
791
- from ansys.edb.core.utility.value import Value as GrpcValue
792
-
793
- from pyedb.grpc.database.ports.ports import WavePort
794
-
795
- point_on_edge = GrpcPointData(self.parent.point_on_edge)
796
- primitive = edb_primitives[self.parent.primitive_name]
797
- pos_edge = GrpcPrimitiveEdge.create(primitive, point_on_edge)
798
- edge_term = GrpcEdgeTerminal.create(
799
- layout=primitive.layout, name=self.parent.name, net=primitive.net, edges=[pos_edge], is_ref=False
800
- )
801
- edge_term.impedance = GrpcValue(50)
802
- wave_port = WavePort(self._pedb, edge_term)
803
- wave_port.horizontal_extent_factor = self.parent.horizontal_extent_factor
804
- wave_port.vertical_extent_factor = self.parent.vertical_extent_factor
805
- wave_port.pec_launch_width = self.parent.pec_launch_width
806
- if self.parent.type == "wave_port":
807
- wave_port.hfss_type = "Wave"
808
- else:
809
- wave_port.hfss_type = "Gap"
810
- wave_port.do_renormalize = True
811
- return wave_port
812
-
813
- def export_properties(self):
814
- return {
815
- "name": self.name,
816
- "type": self.type,
817
- "primitive_name": self.primitive_name,
818
- "point_on_edge": self.point_on_edge,
819
- "horizontal_extent_factor": self.horizontal_extent_factor,
820
- "vertical_extent_factor": self.vertical_extent_factor,
821
- "pec_launch_width": self.pec_launch_width,
822
- }
823
-
824
- class DotNet(Grpc):
825
- def __init__(self, parent):
826
- super().__init__(parent)
678
+ def set_parameters_to_edb(self):
679
+ point_on_edge = PointData(self._pedb, x=self.point_on_edge[0], y=self.point_on_edge[1])
680
+ primitive = self._pedb.layout.primitives_by_aedt_name[self.primitive_name]
681
+ pos_edge = self._pedb.edb_api.cell.terminal.PrimitiveEdge.Create(
682
+ primitive._edb_object, point_on_edge._edb_object
683
+ )
684
+ pos_edge = convert_py_list_to_net_list(pos_edge, self._pedb.edb_api.cell.terminal.Edge)
685
+ edge_term = self._pedb.edb_api.cell.terminal.EdgeTerminal.Create(
686
+ primitive._edb_object.GetLayout(),
687
+ primitive._edb_object.GetNet(),
688
+ self.name,
689
+ pos_edge,
690
+ isRef=False,
691
+ )
692
+ edge_term.SetImpedance(self._pedb.edb_value(50))
693
+ wave_port = WavePort(self._pedb, edge_term)
694
+ wave_port.horizontal_extent_factor = self.horizontal_extent_factor
695
+ wave_port.vertical_extent_factor = self.vertical_extent_factor
696
+ wave_port.pec_launch_width = self.pec_launch_width
697
+ if self.type == "wave_port":
698
+ wave_port.hfss_type = "Wave"
699
+ else:
700
+ wave_port.hfss_type = "Gap"
701
+ wave_port.do_renormalize = True
702
+ return wave_port
827
703
 
828
- def set_parameters_to_edb(self, edb_primitives):
829
- point_on_edge = PointData(self._pedb, x=self.parent.point_on_edge[0], y=self.parent.point_on_edge[1])
830
- primitive = edb_primitives[self.parent.primitive_name]
831
- pos_edge = self._pedb.edb_api.cell.terminal.PrimitiveEdge.Create(
832
- primitive._edb_object, point_on_edge._edb_object
833
- )
834
- pos_edge = convert_py_list_to_net_list(pos_edge, self._pedb.edb_api.cell.terminal.Edge)
835
- edge_term = self._pedb.edb_api.cell.terminal.EdgeTerminal.Create(
836
- primitive._edb_object.GetLayout(),
837
- primitive._edb_object.GetNet(),
838
- self.parent.name,
839
- pos_edge,
840
- isRef=False,
841
- )
842
- edge_term.SetImpedance(self._pedb.edb_value(50))
843
- wave_port = WavePort(self._pedb, edge_term)
844
- wave_port.horizontal_extent_factor = self.parent.horizontal_extent_factor
845
- wave_port.vertical_extent_factor = self.parent.vertical_extent_factor
846
- wave_port.pec_launch_width = self.parent.pec_launch_width
847
- if self.parent.type == "wave_port":
848
- wave_port.hfss_type = "Wave"
849
- else:
850
- wave_port.hfss_type = "Gap"
851
- wave_port.do_renormalize = True
852
- return wave_port
853
-
854
- def export_properties(self):
855
- return {
856
- "name": self.parent.name,
857
- "type": self.parent.type,
858
- "primitive_name": self.parent.primitive_name,
859
- "point_on_edge": self.parent.point_on_edge,
860
- "horizontal_extent_factor": self.parent.horizontal_extent_factor,
861
- "vertical_extent_factor": self.parent.vertical_extent_factor,
862
- "pec_launch_width": self.parent.pec_launch_width,
863
- }
704
+ def export_properties(self):
705
+ return {
706
+ "name": self.name,
707
+ "type": self.type,
708
+ "primitive_name": self.primitive_name,
709
+ "point_on_edge": self.point_on_edge,
710
+ "horizontal_extent_factor": self.horizontal_extent_factor,
711
+ "vertical_extent_factor": self.vertical_extent_factor,
712
+ "pec_launch_width": self.pec_launch_width,
713
+ }
864
714
 
865
715
  def __init__(self, pedb, **kwargs):
866
716
  self._pedb = pedb
867
- if self._pedb.grpc:
868
- self.api = self.Grpc(self)
869
- else:
870
- self.api = self.DotNet(self)
871
717
  self.name = kwargs["name"]
872
718
  self.type = kwargs["type"]
873
719
  self.primitive_name = kwargs["primitive_name"]
@@ -876,12 +722,6 @@ class CfgEdgePort:
876
722
  self.vertical_extent_factor = kwargs.get("vertical_extent_factor", 3)
877
723
  self.pec_launch_width = kwargs.get("pec_launch_width", "0.01mm")
878
724
 
879
- def set_parameters_to_edb(self, edb_primitives):
880
- return self.api.set_parameters_to_edb(edb_primitives)
881
-
882
- def export_properties(self):
883
- return self.api.export_properties()
884
-
885
725
 
886
726
  class CfgDiffWavePort:
887
727
  def __init__(self, pedb, **kwargs):
@@ -911,9 +751,9 @@ class CfgDiffWavePort:
911
751
  **kwargs["negative_terminal"],
912
752
  )
913
753
 
914
- def set_parameters_to_edb(self, edb_primitives):
915
- pos_term = self.positive_port.set_parameters_to_edb(edb_primitives)
916
- neg_term = self.negative_port.set_parameters_to_edb(edb_primitives)
754
+ def set_parameters_to_edb(self):
755
+ pos_term = self.positive_port.set_parameters_to_edb()
756
+ neg_term = self.negative_port.set_parameters_to_edb()
917
757
  edb_list = convert_py_list_to_net_list(
918
758
  [pos_term._edb_object, neg_term._edb_object], self._pedb.edb_api.cell.terminal.Terminal
919
759
  )
@@ -20,6 +20,7 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
+ from datetime import datetime
23
24
  import json
24
25
  import os
25
26
  from pathlib import Path
@@ -446,50 +447,76 @@ class Configuration:
446
447
  self.cfg_data.general.apply()
447
448
 
448
449
  # Configure boundary settings
450
+ now = datetime.now()
449
451
  if self.cfg_data.boundaries:
450
452
  self.cfg_data.boundaries.apply()
453
+ self._pedb.logger.info(f"Updating boundaries finished. Time lapse {datetime.now() - now}")
454
+ now = datetime.now()
451
455
 
452
456
  # Configure nets
453
457
  if self.cfg_data.nets:
454
458
  self.cfg_data.nets.apply()
459
+ self._pedb.logger.info(f"Updating nets finished. Time lapse {datetime.now() - now}")
460
+ now = datetime.now()
455
461
 
456
462
  # Configure components
457
463
  self.cfg_data.components.apply()
464
+ self._pedb.logger.info(f"Updating components finished. Time lapse {datetime.now() - now}")
465
+ now = datetime.now()
458
466
 
459
467
  # Configure pin groups
460
468
  self.cfg_data.pin_groups.apply()
469
+ self._pedb.logger.info(f"Creating pin groups finished. Time lapse {datetime.now() - now}")
470
+ now = datetime.now()
461
471
 
462
472
  # Configure sources
463
473
  self.cfg_data.sources.apply()
474
+ self._pedb.logger.info(f"Placing sources finished. Time lapse {datetime.now() - now}")
475
+ now = datetime.now()
464
476
 
465
477
  # Configure setup
466
478
  self.cfg_data.setups.apply()
479
+ self._pedb.logger.info(f"Creating setups finished. Time lapse {datetime.now() - now}")
480
+ now = datetime.now()
467
481
 
468
482
  # Configure stackup
469
483
  self.api.configuration_stackup(kwargs)
484
+ self._pedb.logger.info(f"Updating stackup finished. Time lapse {datetime.now() - now}")
485
+ now = datetime.now()
470
486
 
471
487
  # Configure padstacks
472
488
  if self.cfg_data.padstacks:
473
489
  self.cfg_data.padstacks.apply()
490
+ self._pedb.logger.info(f"Applying padstacks finished. Time lapse {datetime.now() - now}")
491
+ now = datetime.now()
474
492
 
475
493
  # Configure S-parameter
476
494
  self.cfg_data.s_parameters.apply()
495
+ self._pedb.logger.info(f"Applying S-parameters finished. Time lapse {datetime.now() - now}")
496
+ now = datetime.now()
477
497
 
478
498
  # Configure SPICE models
479
499
  for spice_model in self.cfg_data.spice_models:
480
500
  spice_model.apply()
501
+ self._pedb.logger.info(f"Assigning Spice models finished. Time lapse {datetime.now() - now}")
502
+ now = datetime.now()
481
503
 
482
504
  # Configure package definitions
483
505
  self.cfg_data.package_definitions.apply()
506
+ self._pedb.logger.info(f"Applying package definitions finished. Time lapse {datetime.now() - now}")
507
+ now = datetime.now()
484
508
 
485
509
  # Modeler
486
510
  self.cfg_data.modeler.apply()
487
511
 
488
512
  # Configure ports
489
513
  self.cfg_data.ports.apply()
514
+ self._pedb.logger.info(f"Placing ports finished. Time lapse {datetime.now() - now}")
515
+ now = datetime.now()
490
516
 
491
517
  # Configure probes
492
518
  self.cfg_data.probes.apply()
519
+ self._pedb.logger.info(f"Placing probes finished. Time lapse {datetime.now() - now}")
493
520
 
494
521
  # Configure operations
495
522
  self.cfg_data.operations.apply()
@@ -38,6 +38,7 @@ if is_linux: # pragma: no cover
38
38
 
39
39
  dotnet_root = None
40
40
  runtime_config = None
41
+ runtime_spec = None
41
42
  # Use system .NET core runtime or fall back to dotnetcore2
42
43
  if os.environ.get("DOTNET_ROOT") is None:
43
44
  try:
@@ -78,11 +79,16 @@ if is_linux: # pragma: no cover
78
79
  "Please ensure that .NET SDK is correctly installed or "
79
80
  "that DOTNET_ROOT is correctly set."
80
81
  )
81
- runtime_config = candidates[0]
82
+ runtime_spec = candidates[0]
82
83
  # Use specific .NET core runtime
83
- if dotnet_root is not None and runtime_config is not None:
84
+ if dotnet_root is not None and (runtime_config is not None or runtime_spec is not None):
84
85
  try:
85
- load("coreclr", runtime_config=str(runtime_config), dotnet_root=str(dotnet_root))
86
+ load(
87
+ "coreclr",
88
+ runtime_config=str(runtime_config) if runtime_config else None,
89
+ runtime_spec=runtime_spec,
90
+ dotnet_root=str(dotnet_root),
91
+ )
86
92
  os.environ["DOTNET_ROOT"] = dotnet_root.as_posix()
87
93
  if "mono" not in os.getenv("LD_LIBRARY_PATH", ""):
88
94
  warnings.warn("LD_LIBRARY_PATH needs to be setup to use pyedb.")
@@ -308,11 +308,11 @@ class EDBComponent(Group):
308
308
  if "GetSolderBallProperty" in dir(self.component_property):
309
309
  shape = self.component_property.GetSolderBallProperty().GetShape()
310
310
  if shape.value__ == 0:
311
- return "None"
311
+ return "none"
312
312
  elif shape.value__ == 1:
313
- return "Cylinder"
313
+ return "cylinder"
314
314
  elif shape.value__ == 2:
315
- return "Spheroid"
315
+ return "spheroid"
316
316
 
317
317
  @solder_ball_shape.setter
318
318
  def solder_ball_shape(self, value):
@@ -80,6 +80,7 @@ def primitive_cast(pedb, edb_object):
80
80
  class Layout(ObjBase):
81
81
  def __init__(self, pedb, edb_object):
82
82
  super().__init__(pedb, edb_object)
83
+ self._primitives = []
83
84
 
84
85
  @property
85
86
  def cell(self):
@@ -230,7 +231,15 @@ class Layout(ObjBase):
230
231
  -------
231
232
  list of :class:`dotnet.database.dotnet.primitive.PrimitiveDotNet` cast objects.
232
233
  """
233
- return [primitive_cast(self._pedb, p) for p in self._edb_object.Primitives if p]
234
+ primitives = list(self._edb_object.Primitives)
235
+ if len(primitives) != len(self._primitives):
236
+ self._primitives = [primitive_cast(self._pedb, p) for p in primitives]
237
+ return self._primitives
238
+
239
+ @property
240
+ def primitives_by_aedt_name(self) -> dict:
241
+ """Primitives."""
242
+ return {i.aedt_name: i for i in self.primitives}
234
243
 
235
244
  @property
236
245
  def bondwires(self):
@@ -27,7 +27,6 @@ import sys
27
27
 
28
28
  from pyedb import __version__
29
29
  from pyedb.dotnet.database.general import convert_py_list_to_net_list
30
- from pyedb.edb_logger import pyedb_logger
31
30
  from pyedb.generic.general_methods import (
32
31
  env_path,
33
32
  env_path_student,
@@ -704,7 +703,6 @@ class EdbDotNet(object):
704
703
  """Edb Dot Net Class."""
705
704
 
706
705
  def __init__(self, edbversion, student_version=False):
707
- self._logger = pyedb_logger
708
706
  if not edbversion: # pragma: no cover
709
707
  try:
710
708
  edbversion = "20{}.{}".format(list_installed_ansysem()[0][-3:-1], list_installed_ansysem()[0][-1:])
@@ -1185,6 +1185,7 @@ class EDBPadstackInstance(Primitive):
1185
1185
  super().__init__(_pedb, edb_padstackinstance)
1186
1186
  self._edb_padstackinstance = self._edb_object
1187
1187
  self._bounding_box = []
1188
+ self._side_number = None
1188
1189
  self._object_instance = None
1189
1190
  self._position = []
1190
1191
  self._pdef = None
@@ -1929,6 +1930,18 @@ class EDBPadstackInstance(Primitive):
1929
1930
  """
1930
1931
  return int(self._edb_padstackinstance.GetGroup().GetPlacementLayer().GetTopBottomAssociation())
1931
1932
 
1933
+ @property
1934
+ def side_number(self) -> float:
1935
+ if not self._side_number:
1936
+ prop_string = "$begin ''\n\tsid=3\n\tmat='copper'\n\tvs='Wirebond'\n$end ''\n"
1937
+ self._edb_padstackinstance.SetProductProperty(self._pedb._edb.ProductId.Designer, 21, prop_string)
1938
+ self._side_number = self._edb_padstackinstance.GetProductProperty(self._pedb._edb.ProductId.Designer, 21)
1939
+ return self._side_number
1940
+
1941
+ @side_number.setter
1942
+ def side_number(self, value):
1943
+ self._side_number = self._edb_padstackinstance.GetProductProperty(self._pedb._edb.ProductId.Designer, 21, value)
1944
+
1932
1945
  def create_rectangle_in_pad(self, layer_name, return_points=False, partition_max_order=16):
1933
1946
  """Create a rectangle inscribed inside a padstack instance pad.
1934
1947