pyedb 0.56.0__tar.gz → 0.58.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 (306) hide show
  1. {pyedb-0.56.0 → pyedb-0.58.0}/PKG-INFO +6 -7
  2. pyedb-0.58.0/pyproject.toml +266 -0
  3. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/__init__.py +1 -1
  4. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_data.py +3 -0
  5. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_pin_groups.py +2 -0
  6. pyedb-0.58.0/src/pyedb/configuration/cfg_terminals.py +232 -0
  7. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/configuration.py +146 -3
  8. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/clr_module.py +1 -2
  9. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/Variables.py +30 -22
  10. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/component.py +2 -8
  11. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/layout.py +5 -1
  12. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/primitive/primitive.py +2 -2
  13. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/terminal/bundle_terminal.py +12 -0
  14. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/terminal/pingroup_terminal.py +1 -1
  15. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/terminal/terminal.py +38 -0
  16. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/components.py +15 -19
  17. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/dotnet/database.py +1 -0
  18. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/control_file.py +19 -8
  19. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/nets_data.py +3 -3
  20. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/padstacks_data.py +39 -14
  21. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/ports.py +0 -25
  22. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
  23. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py +18 -19
  24. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/simulation_configuration.py +3 -3
  25. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/sources.py +21 -2
  26. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/general.py +1 -6
  27. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/hfss.py +9 -8
  28. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/layout_validation.py +14 -3
  29. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/materials.py +1 -3
  30. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/modeler.py +7 -3
  31. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/nets.py +27 -19
  32. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/padstack.py +4 -2
  33. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/io/siwave.py +54 -1
  34. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/siwave.py +4 -3
  35. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/stackup.py +55 -58
  36. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/heatsink.py +0 -1
  37. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/hfss_simulation_setup.py +81 -0
  38. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/simulation_setup.py +7 -5
  39. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/siwave_cpa_simulation_setup.py +1 -0
  40. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/siwave_simulation_setup.py +264 -13
  41. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/edb.py +65 -47
  42. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/exceptions.py +1 -2
  43. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/extensions/create_cell_array.py +67 -49
  44. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/data_handlers.py +13 -23
  45. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/design_types.py +9 -35
  46. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/filesystem.py +4 -2
  47. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/general_methods.py +28 -41
  48. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/plot.py +8 -23
  49. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/process.py +78 -10
  50. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/components.py +14 -13
  51. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/control_file.py +27 -40
  52. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definition/materials.py +1 -1
  53. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definition/package_def.py +6 -3
  54. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definition/padstack_def.py +14 -12
  55. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hfss.py +1 -4
  56. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hierarchy/component.py +5 -13
  57. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hierarchy/pingroup.py +16 -3
  58. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/layers/layer.py +1 -2
  59. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/layers/stackup_layer.py +42 -19
  60. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/layout/layout.py +43 -27
  61. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/layout/voltage_regulator.py +6 -1
  62. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/layout_validation.py +5 -2
  63. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/modeler.py +254 -252
  64. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/net/differential_pair.py +9 -2
  65. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/net/extended_net.py +24 -9
  66. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/net/net.py +14 -5
  67. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/net/net_class.py +24 -7
  68. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/nets.py +11 -43
  69. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/padstacks.py +67 -119
  70. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/bondwire.py +3 -67
  71. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/circle.py +42 -3
  72. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/padstack_instance.py +58 -31
  73. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/path.py +160 -11
  74. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/polygon.py +73 -7
  75. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/primitive.py +2 -2
  76. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/rectangle.py +105 -4
  77. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_general_settings.py +0 -2
  78. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_settings_options.py +0 -4
  79. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +79 -0
  80. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/siwave_cpa_simulation_setup.py +1 -0
  81. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/sweep_data.py +1 -3
  82. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/siwave.py +6 -13
  83. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/source_excitations.py +46 -63
  84. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/stackup.py +55 -60
  85. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/terminal/bundle_terminal.py +10 -3
  86. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/terminal/padstack_instance_terminal.py +9 -11
  87. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/terminal/pingroup_terminal.py +8 -1
  88. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/terminal/point_terminal.py +30 -0
  89. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/terminal/terminal.py +35 -10
  90. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/heat_sink.py +0 -1
  91. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/hfss_extent_info.py +2 -2
  92. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/xml_control_file.py +19 -8
  93. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/edb.py +63 -32
  94. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/edb_init.py +1 -0
  95. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +6 -2
  96. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +1 -1
  97. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ipc2581.py +8 -7
  98. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/libraries/common.py +3 -4
  99. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/libraries/rf_libraries/base_functions.py +7 -16
  100. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/libraries/rf_libraries/planar_antennas.py +3 -21
  101. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/aedtlib_personalib_install.py +2 -2
  102. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/downloads.py +19 -3
  103. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/misc.py +5 -2
  104. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +3 -2
  105. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -1
  106. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/utilities.py +0 -1
  107. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/modeler/geometry_operators.py +3 -2
  108. pyedb-0.58.0/src/pyedb/siwave_core/cpa/__init__.py +0 -0
  109. pyedb-0.56.0/pyproject.toml +0 -150
  110. {pyedb-0.56.0 → pyedb-0.58.0}/LICENSE +0 -0
  111. {pyedb-0.56.0 → pyedb-0.58.0}/README.md +0 -0
  112. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/common/__init__.py +0 -0
  113. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/common/nets.py +0 -0
  114. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/component_libraries/ansys_components.py +0 -0
  115. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/__init__.py +0 -0
  116. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_boundaries.py +0 -0
  117. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_common.py +0 -0
  118. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_components.py +0 -0
  119. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_general.py +0 -0
  120. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_modeler.py +0 -0
  121. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_nets.py +0 -0
  122. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_operations.py +0 -0
  123. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_package_definition.py +0 -0
  124. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_padstacks.py +0 -0
  125. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_ports_sources.py +0 -0
  126. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
  127. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_setup.py +0 -0
  128. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
  129. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/configuration/cfg_stackup.py +0 -0
  130. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/__init__.py +0 -0
  131. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/__init__.py +0 -0
  132. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/__init__.py +0 -0
  133. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/connectable.py +0 -0
  134. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/__init__.py +0 -0
  135. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/hierarchy_obj.py +0 -0
  136. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/model.py +0 -0
  137. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/netlist_model.py +0 -0
  138. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/pin_pair_model.py +0 -0
  139. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py +0 -0
  140. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/hierarchy/spice_model.py +0 -0
  141. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/layout_obj.py +0 -0
  142. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/primitive/__init__.py +0 -0
  143. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/primitive/bondwire.py +0 -0
  144. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/primitive/path.py +0 -0
  145. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/terminal/__init__.py +0 -0
  146. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/terminal/edge_terminal.py +0 -0
  147. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py +0 -0
  148. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/terminal/point_terminal.py +0 -0
  149. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/cell/voltage_regulator.py +0 -0
  150. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/definition/__init__.py +0 -0
  151. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/definition/component_def.py +0 -0
  152. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/definition/component_model.py +0 -0
  153. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/definition/definition_obj.py +0 -0
  154. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/definition/definitions.py +0 -0
  155. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/definition/package_def.py +0 -0
  156. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/dotnet/__init__.py +0 -0
  157. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/dotnet/primitive.py +0 -0
  158. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/__init__.py +0 -0
  159. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/design_options.py +0 -0
  160. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/edbvalue.py +0 -0
  161. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/hfss_extent_info.py +0 -0
  162. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/layer_data.py +0 -0
  163. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/utilities.py +0 -0
  164. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/edb_data/variables.py +0 -0
  165. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/geometry/__init__.py +0 -0
  166. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/geometry/point_data.py +0 -0
  167. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/geometry/polygon_data.py +0 -0
  168. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/layout_obj_instance.py +0 -0
  169. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/net_class.py +0 -0
  170. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/__init__.py +0 -0
  171. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/__init__.py +0 -0
  172. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  173. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py +0 -0
  174. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/settings.py +0 -0
  175. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/sim_setup_info.py +0 -0
  176. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/simulation_settings.py +0 -0
  177. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
  178. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/data/sweep_data.py +0 -0
  179. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/sim_setup_data/io/__init__.py +0 -0
  180. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/__init__.py +0 -0
  181. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/obj_base.py +0 -0
  182. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/dotnet/database/utilities/value.py +0 -0
  183. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/edb_logger.py +0 -0
  184. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/extensions/__init__.py +0 -0
  185. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/extensions/via_design_backend.py +0 -0
  186. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/__init__.py +0 -0
  187. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/constants.py +0 -0
  188. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/grpc_warnings.py +0 -0
  189. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/generic/settings.py +0 -0
  190. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/__init__.py +0 -0
  191. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/__init__.py +0 -0
  192. /pyedb-0.56.0/src/pyedb/grpc/database/definition/__init__.py → /pyedb-0.58.0/src/pyedb/grpc/database/_typing.py +0 -0
  193. {pyedb-0.56.0/src/pyedb/grpc/database/geometry → pyedb-0.58.0/src/pyedb/grpc/database/definition}/__init__.py +0 -0
  194. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definition/component_def.py +0 -0
  195. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definition/component_model.py +0 -0
  196. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definition/component_pin.py +0 -0
  197. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definition/n_port_component_model.py +0 -0
  198. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/definitions.py +0 -0
  199. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/general.py +0 -0
  200. {pyedb-0.56.0/src/pyedb/grpc/database/hierarchy → pyedb-0.58.0/src/pyedb/grpc/database/geometry}/__init__.py +0 -0
  201. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/geometry/arc_data.py +0 -0
  202. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/geometry/point_3d_data.py +0 -0
  203. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/geometry/point_data.py +0 -0
  204. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/geometry/polygon_data.py +0 -0
  205. {pyedb-0.56.0/src/pyedb/grpc/database/layers → pyedb-0.58.0/src/pyedb/grpc/database/hierarchy}/__init__.py +0 -0
  206. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hierarchy/model.py +0 -0
  207. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hierarchy/netlist_model.py +0 -0
  208. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hierarchy/pin_pair_model.py +0 -0
  209. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hierarchy/s_parameter_model.py +0 -0
  210. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/hierarchy/spice_model.py +0 -0
  211. {pyedb-0.56.0/src/pyedb/grpc/database/layout → pyedb-0.58.0/src/pyedb/grpc/database/layers}/__init__.py +0 -0
  212. {pyedb-0.56.0/src/pyedb/grpc/database/net → pyedb-0.58.0/src/pyedb/grpc/database/layout}/__init__.py +0 -0
  213. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/layout/cell.py +0 -0
  214. {pyedb-0.56.0/src/pyedb/grpc/database/ports → pyedb-0.58.0/src/pyedb/grpc/database/net}/__init__.py +0 -0
  215. {pyedb-0.56.0/src/pyedb/grpc/database/simulation_setup → pyedb-0.58.0/src/pyedb/grpc/database/ports}/__init__.py +0 -0
  216. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/ports/ports.py +0 -0
  217. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/primitive/__init__.py +0 -0
  218. {pyedb-0.56.0/src/pyedb/grpc/database/terminal → pyedb-0.58.0/src/pyedb/grpc/database/simulation_setup}/__init__.py +0 -0
  219. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/adaptive_frequency.py +0 -0
  220. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py +0 -0
  221. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +0 -0
  222. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py +0 -0
  223. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +0 -0
  224. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/hfss_solver_settings.py +0 -0
  225. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/mesh_operation.py +0 -0
  226. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py +0 -0
  227. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py +0 -0
  228. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +0 -0
  229. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +0 -0
  230. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py +0 -0
  231. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +0 -0
  232. {pyedb-0.56.0/src/pyedb/ipc2581 → pyedb-0.58.0/src/pyedb/grpc/database/terminal}/__init__.py +0 -0
  233. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/terminal/edge_terminal.py +0 -0
  234. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/__init__.py +0 -0
  235. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/constants.py +0 -0
  236. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/layout_statistics.py +0 -0
  237. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/rlc.py +0 -0
  238. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/sources.py +0 -0
  239. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/sweep_data_distribution.py +0 -0
  240. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/database/utility/value.py +0 -0
  241. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/grpc/rpc_session.py +0 -0
  242. {pyedb-0.56.0/src/pyedb/ipc2581/bom → pyedb-0.58.0/src/pyedb/ipc2581}/__init__.py +0 -0
  243. {pyedb-0.56.0/src/pyedb/ipc2581/content → pyedb-0.58.0/src/pyedb/ipc2581/bom}/__init__.py +0 -0
  244. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
  245. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
  246. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
  247. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
  248. {pyedb-0.56.0/src/pyedb/ipc2581/ecad → pyedb-0.58.0/src/pyedb/ipc2581/content}/__init__.py +0 -0
  249. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/color.py +0 -0
  250. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/content.py +0 -0
  251. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
  252. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
  253. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
  254. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
  255. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
  256. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/fill.py +0 -0
  257. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
  258. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
  259. {pyedb-0.56.0/src/pyedb/ipc2581/ecad/cad_data → pyedb-0.58.0/src/pyedb/ipc2581/ecad}/__init__.py +0 -0
  260. {pyedb-0.56.0/src/pyedb/misc → pyedb-0.58.0/src/pyedb/ipc2581/ecad/cad_data}/__init__.py +0 -0
  261. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
  262. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
  263. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
  264. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
  265. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
  266. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
  267. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
  268. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
  269. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
  270. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
  271. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
  272. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
  273. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
  274. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
  275. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
  276. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
  277. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
  278. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
  279. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
  280. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
  281. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
  282. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
  283. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
  284. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
  285. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/history_record.py +0 -0
  286. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
  287. {pyedb-0.56.0/src/pyedb/misc/siw_feature_config → pyedb-0.58.0/src/pyedb/misc}/__init__.py +0 -0
  288. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/decorators.py +0 -0
  289. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
  290. {pyedb-0.56.0/src/pyedb/misc/siw_feature_config/emc → pyedb-0.58.0/src/pyedb/misc/siw_feature_config}/__init__.py +0 -0
  291. {pyedb-0.56.0/src/pyedb/siwave_core → pyedb-0.58.0/src/pyedb/misc/siw_feature_config/emc}/__init__.py +0 -0
  292. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
  293. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
  294. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
  295. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
  296. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
  297. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
  298. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
  299. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
  300. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
  301. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/siwave.py +0 -0
  302. {pyedb-0.56.0/src/pyedb/siwave_core/cpa → pyedb-0.58.0/src/pyedb/siwave_core}/__init__.py +0 -0
  303. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/siwave_core/cpa/simulation_setup_data_model.py +0 -0
  304. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/siwave_core/icepak.py +0 -0
  305. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/siwave_core/product_properties.py +0 -0
  306. {pyedb-0.56.0 → pyedb-0.58.0}/src/pyedb/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyedb
3
- Version: 0.56.0
3
+ Version: 0.58.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>
@@ -16,7 +16,7 @@ Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
18
  License-File: LICENSE
19
- Requires-Dist: cffi>=1.16.0,<1.18; platform_system=='Linux'
19
+ Requires-Dist: cffi>=1.16.0,<2.1; platform_system=='Linux'
20
20
  Requires-Dist: pywin32 >= 303;platform_system=='Windows'
21
21
  Requires-Dist: ansys-pythonnet >= 3.1.0rc4
22
22
  Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
@@ -29,6 +29,8 @@ Requires-Dist: shapely
29
29
  Requires-Dist: scikit-rf
30
30
  Requires-Dist: ansys-edb-core>=0.2.0
31
31
  Requires-Dist: psutil
32
+ Requires-Dist: defusedxml>=0.7,<8.0
33
+ Requires-Dist: matplotlib>=3.5.0,<3.11
32
34
  Requires-Dist: ansys-sphinx-theme>=1.0.0,<1.5 ; extra == "doc"
33
35
  Requires-Dist: imageio>=2.30.0,<2.38 ; extra == "doc"
34
36
  Requires-Dist: ipython>=8.13.0,<8.32 ; extra == "doc"
@@ -41,18 +43,16 @@ Requires-Dist: numpydoc>=1.5.0,<1.9 ; extra == "doc"
41
43
  Requires-Dist: pypandoc>=1.10.0,<1.16 ; extra == "doc"
42
44
  Requires-Dist: recommonmark ; extra == "doc"
43
45
  Requires-Dist: Sphinx>=7.1.0,<8.2 ; extra == "doc"
44
- Requires-Dist: sphinx-autobuild==2021.3.14 ; extra == "doc" and ( python_version == '3.8')
46
+ Requires-Dist: sphinx-autobuild==2024.10.3 ; extra == "doc" and ( python_version == '3.8')
45
47
  Requires-Dist: sphinx-autobuild==2024.10.3 ; extra == "doc" and ( python_version > '3.8')
46
48
  Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
47
49
  Requires-Dist: sphinx-gallery>=0.14.0,<0.20 ; extra == "doc"
48
50
  Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
49
51
  Requires-Dist: shapely ; extra == "doc"
50
- Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "full"
51
- Requires-Dist: shapely ; extra == "full"
52
52
  Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "tests"
53
53
  Requires-Dist: mock>=5.1.0,<5.3 ; extra == "tests"
54
54
  Requires-Dist: pytest>=7.4.0,<8.5 ; extra == "tests"
55
- Requires-Dist: pytest-cov>=4.0.0,<6.3 ; extra == "tests"
55
+ Requires-Dist: pytest-cov>=4.0.0,<7.1 ; extra == "tests"
56
56
  Requires-Dist: pytest-xdist>=3.5.0,<3.7 ; extra == "tests"
57
57
  Requires-Dist: scikit-rf ; extra == "tests"
58
58
  Requires-Dist: shapely ; extra == "tests"
@@ -62,7 +62,6 @@ Project-URL: Documentation, https://edb.docs.pyansys.com
62
62
  Project-URL: Releases, https://github.com/ansys/pyedb/releases
63
63
  Project-URL: Source, https://github.com/ansys/pyedb
64
64
  Provides-Extra: doc
65
- Provides-Extra: full
66
65
  Provides-Extra: tests
67
66
 
68
67
  <!-- -->
@@ -0,0 +1,266 @@
1
+ [build-system]
2
+ requires = ["flit_core >=3.2,<3.13"] # THIS SHOULD BE REVERTED TO '["flit_core >=3.2,<4"]'
3
+ build-backend = "flit_core.buildapi"
4
+
5
+
6
+ [project]
7
+ name = "pyedb"
8
+ dynamic = ["version"]
9
+ description = "Higher-Level Pythonic Ansys Electronics Data Base"
10
+ readme = "README.md"
11
+ requires-python = ">=3.8,<4"
12
+ license = {file = "LICENSE"}
13
+ authors = [{name = "ANSYS, Inc.", email = "pyansys.core@ansys.com"}]
14
+ maintainers = [{name = "PyEDB developers", email = "simon.vandenbrouck@ansys.com"}]
15
+ classifiers = [
16
+ "Development Status :: 4 - Beta",
17
+ "Intended Audience :: Science/Research",
18
+ "Topic :: Scientific/Engineering :: Information Analysis",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Operating System :: OS Independent",
21
+ "Programming Language :: Python :: 3.8",
22
+ "Programming Language :: Python :: 3.9",
23
+ "Programming Language :: Python :: 3.10",
24
+ "Programming Language :: Python :: 3.11",
25
+ ]
26
+
27
+ dependencies = [
28
+ "cffi>=1.16.0,<2.1; platform_system=='Linux'",
29
+ "pywin32 >= 303;platform_system=='Windows'",
30
+ "ansys-pythonnet >= 3.1.0rc4",
31
+ "dotnetcore2 ==3.1.23;platform_system=='Linux'",
32
+ "numpy>=1.20.0,<3",
33
+ "pandas>=1.1.0,<2.4",
34
+ "pydantic>=2.6.4,<2.12",
35
+ "Rtree >= 1.2.0",
36
+ "toml == 0.10.2",
37
+ "shapely",
38
+ "scikit-rf",
39
+ "ansys-edb-core>=0.2.0",
40
+ "psutil",
41
+ "defusedxml>=0.7,<8.0",
42
+ "matplotlib>=3.5.0,<3.11",
43
+ ]
44
+
45
+ [project.optional-dependencies]
46
+ tests = [
47
+ "matplotlib>=3.5.0,<3.11",
48
+ "mock>=5.1.0,<5.3",
49
+ "pytest>=7.4.0,<8.5",
50
+ "pytest-cov>=4.0.0,<7.1",
51
+ "pytest-xdist>=3.5.0,<3.7",
52
+ "scikit-rf",
53
+ "shapely"
54
+ ]
55
+ doc = [
56
+ "ansys-sphinx-theme>=1.0.0,<1.5",
57
+ "imageio>=2.30.0,<2.38",
58
+ "ipython>=8.13.0,<8.32",
59
+ "jupyterlab>=4.0.0,<4.5",
60
+ "jupytext>=1.16.0,<1.18",
61
+ "matplotlib>=3.5.0,<3.11",
62
+ "nbsphinx>=0.9.0,<0.10",
63
+ "nbconvert < 7.17",
64
+ "numpydoc>=1.5.0,<1.9",
65
+ "pypandoc>=1.10.0,<1.16",
66
+ # NOTE: Remove recommonmark once examples are reworked.
67
+ "recommonmark",
68
+ "Sphinx>=7.1.0,<8.2",
69
+ "sphinx-autobuild==2024.10.3; python_version == '3.8'",
70
+ "sphinx-autobuild==2024.10.3; python_version > '3.8'",
71
+ "sphinx-copybutton>=0.5.0,<0.6",
72
+ "sphinx-gallery>=0.14.0,<0.20",
73
+ "sphinx_design>=0.4.0,<0.7",
74
+ "shapely",
75
+ ]
76
+
77
+
78
+ [tool.flit.module]
79
+ name = "pyedb"
80
+
81
+ [project.urls]
82
+ Bugs = "https://github.com/ansys/pyedb/issues"
83
+ Documentation = "https://edb.docs.pyansys.com"
84
+ Source = "https://github.com/ansys/pyedb"
85
+ Discussions = "https://github.com/ansys/pyedb/discussions"
86
+ Releases = "https://github.com/ansys/pyedb/releases"
87
+
88
+ [tool.ruff]
89
+ line-length = 120
90
+ fix = true
91
+
92
+ [tool.ruff.format]
93
+ quote-style = "double"
94
+ indent-style = "space"
95
+ docstring-code-format = true
96
+
97
+ [tool.ruff.lint]
98
+ select = [
99
+ "D", # pydocstyle, see https://docs.astral.sh/ruff/rules/#pydocstyle-d
100
+ "E", # pycodestyle, see https://docs.astral.sh/ruff/rules/#pycodestyle-e-w
101
+ "F", # pyflakes, see https://docs.astral.sh/ruff/rules/#pyflakes-f
102
+ "I", # isort, see https://docs.astral.sh/ruff/rules/#isort-i
103
+ "N", # pep8-naming, see https://docs.astral.sh/ruff/rules/#pep8-naming-n
104
+ "PTH", # flake8-use-pathlib, https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth
105
+ "TD", # flake8-todos, https://docs.astral.sh/ruff/rules/#flake8-todos-td
106
+ "W", # pycodestyle, see https://docs.astral.sh/ruff/rules/#pycodestyle-e-w
107
+ ]
108
+ ignore = [
109
+ # "D" - pydocstyle, see https://docs.astral.sh/ruff/rules/#pydocstyle-d
110
+ "D100", # undocumented-public-module
111
+ "D101", # undocumented-public-class
112
+ "D102", # undocumented-public-method
113
+ "D103", # undocumented-public-function
114
+ "D104", # undocumented-public-package
115
+ "D105", # undocumented-magic-method
116
+ "D106", # undocumented-public-nested-class
117
+ "D200", # unnecessary-multiline-docstring
118
+ "D202", # blank-line-after-function
119
+ "D205", # missing-blank-line-after-summary
120
+ "D208", # over-indentation
121
+ "D209", # new-line-after-last-paragraph
122
+ "D210", # surrounding-whitespace
123
+ "D214", # overindented-section
124
+ "D215", # overindented-section-underline
125
+ "D301", # escape-sequence-in-docstring
126
+ "D400", # missing-trailing-period
127
+ "D401", # non-imperative-mood
128
+ "D403", # first-word-uncapitalized
129
+ "D404", # docstring-starts-with-this
130
+ "D405", # non-capitalized-section-name
131
+ "D406", # missing-new-line-after-section-name
132
+ "D407", # missing-dashed-underline-after-section
133
+ "D409", # mismatched-section-underline-length
134
+ "D410", # no-blank-line-after-section
135
+ "D411", # no-blank-line-before-section
136
+ "D412", # blank-lines-between-header-and-content
137
+ "D414", # empty-docstring-section
138
+ "D419", # empty-docstring
139
+
140
+ # "E" - pycodestyle, see https://docs.astral.sh/ruff/rules/#pycodestyle-e-w
141
+ "E402", # module-import-not-at-top-of-file
142
+ "E711", # none-comparison
143
+ "E712", # true-false-comparison
144
+ "E713", # not-in-test
145
+ "E721", # type-comparison
146
+ "E722", # bare-except
147
+ "E731", # lambda-assignment
148
+ "E741", # ambiguous-variable-name
149
+ "E743", # ambiguous-function-name
150
+
151
+ # "F" - pyflakes, see https://docs.astral.sh/ruff/rules/#pyflakes-f
152
+ "F401", # unused-import
153
+ "F523", # string-dot-format-extra-positional-arguments
154
+ "F541", # f-string-missing-placeholders
155
+ "F811", # redefined-while-unused
156
+ "F821", # undefined-name
157
+ "F841", # unused-variable
158
+
159
+ # "N" - pep8-naming, see https://docs.astral.sh/ruff/rules/#pep8-naming-n
160
+ "N801", # invalid-class-name
161
+ "N802", # invalid-function-name
162
+ "N803", # invalid-argument-name
163
+ "N806", # non-lowercase-variable-in-function
164
+ "N812", # lowercase-imported-as-non-lowercase
165
+ "N813", # camelcase-imported-as-lowercase
166
+ "N815", # mixed-case-variable-in-class-scope
167
+ "N816", # mixed-case-variable-in-global-scope
168
+ "N817", # camelcase-imported-as-acronym
169
+ "N818", # error-suffix-on-exception-name
170
+ "N999", # invalid-module-name
171
+
172
+ # "PTH" - flake8-use-pathlib, https://docs.astral.sh/ruff/rules/#flake8-use-pathlib-pth
173
+ "PTH100", # os-path-abspath
174
+ "PTH101", # os-chmod
175
+ "PTH102", # os-mkdir
176
+ "PTH103", # os-makedirs
177
+ "PTH104", # os-rename
178
+ "PTH107", # os-remove
179
+ "PTH108", # os-unlink
180
+ "PTH110", # os-path-exists
181
+ "PTH111", # os-path-expanduser
182
+ "PTH112", # os-path-isdir
183
+ "PTH113", # os-path-isfile
184
+ "PTH116", # os-stat
185
+ "PTH118", # os-path-join
186
+ "PTH119", # os-path-basename
187
+ "PTH120", # os-path-dirname
188
+ "PTH122", # os-path-splitext
189
+ "PTH123", # builtin-open
190
+ "PTH202", # os-path-getsize
191
+
192
+ # "TD" - flake8-todos, https://docs.astral.sh/ruff/rules/#flake8-todos-td
193
+ "TD001", # invalid-todo-tag
194
+ "TD002", # missing-todo-author
195
+ "TD003", # missing-todo-link
196
+ "TD004", # missing-todo-colon
197
+ "TD005", # missing-todo-description
198
+ "TD006", # invalid-todo-capitalization
199
+
200
+ # "W" - pycodestyle, see https://docs.astral.sh/ruff/rules/#pycodestyle-e-w
201
+ "W605" # invalid-escape-sequence
202
+ ]
203
+
204
+ [tool.ruff.lint.pydocstyle]
205
+ # Use Numpy-style docstrings.
206
+ convention = "numpy"
207
+
208
+ [tool.ruff.lint.isort]
209
+ force-sort-within-sections = true
210
+ known-first-party = ["doc", "src", "tests"]
211
+ combine-as-imports = true
212
+
213
+ [tool.ruff.lint.mccabe]
214
+ max-complexity = 10
215
+
216
+ [tool.codespell]
217
+ skip = '*.pyc,*.txt,*.gif,*.png,*.jpg,*.js,*.html,*.doctree,*.ttf,*.woff,*.woff2,*.eot,*.mp4,*.inv,*.pickle,*.ipynb,*.a3dcomp,flycheck*,./.git/*,./.hypothesis/*,*.yml,./doc/build/*,./doc/images/*,./dist/*,*~,.hypothesis*,./doc/source/examples/*,*cover,*.dat,*.mac,*.cdb,*.CDB,build,./factory/*,PKG-INFO,*.mypy_cache/*,./_unused/*,pyproject.toml'
218
+ ignore-words = "doc/styles/config/vocabularies/ANSYS/accept.txt"
219
+ ignore-words-list = "renabled, sie, mot"
220
+ enable-colors = true
221
+
222
+ [tool.coverage.run]
223
+ relative_files = true
224
+ source = ["pyedb"]
225
+
226
+ [tool.coverage.report]
227
+ show_missing = true
228
+
229
+ [tool.pytest.ini_options]
230
+ minversion = "7.1"
231
+ xfail_strict = false
232
+ filterwarnings = [
233
+ "ignore::DeprecationWarning",
234
+ ]
235
+ markers = [
236
+ "legacy: mark test as related to the legacy API.",
237
+ "grpc: mark test as related to the gRPC API.",
238
+ "unit: mark test as an unit test.",
239
+ "integration: mark test as an integration test.",
240
+ "system: mark test as a system test.",
241
+ "slow: mark test as slow.",
242
+ "no_licence: mark test that do not need a licence.",
243
+ ]
244
+ testpaths = "tests"
245
+ #addopts = "-ra --cov=src/pyedb --cov-report html:.cov/html --cov-report xml:.cov/xml --cov-report term -vv"
246
+
247
+ [tool.numpydoc_validation]
248
+ checks = [
249
+ "GL06", # Found unknown section
250
+ "GL07", # Sections are in the wrong order.
251
+ "GL08", # The object does not have a docstring
252
+ "GL09", # Deprecation warning should precede extended summary
253
+ "GL10", # reST directives {directives} must be followed by two colons
254
+ # Return
255
+ "RT04", # Return value description should start with a capital letter"
256
+ "RT05", # Return value description should finish with "."
257
+ # Summary
258
+ "SS01", # No summary found
259
+ "SS02", # Summary does not start with a capital letter
260
+ "SS03", # Summary does not end with a period
261
+ "SS04", # Summary contains heading whitespaces
262
+ "SS05", # Summary must start with infinitive verb, not third person
263
+ # Parameters
264
+ "PR10", # Parameter "{param_name}" requires a space before the colon
265
+ # separating the parameter name and type",
266
+ ]
@@ -37,7 +37,7 @@ deprecation_warning()
37
37
  #
38
38
 
39
39
  pyedb_path = os.path.dirname(__file__)
40
- __version__ = "0.56.0"
40
+ __version__ = "0.58.0"
41
41
  version = __version__
42
42
 
43
43
  #
@@ -36,6 +36,7 @@ from pyedb.configuration.cfg_s_parameter_models import CfgSParameters
36
36
  from pyedb.configuration.cfg_setup import CfgSetups
37
37
  from pyedb.configuration.cfg_spice_models import CfgSpiceModel
38
38
  from pyedb.configuration.cfg_stackup import CfgStackup
39
+ from pyedb.configuration.cfg_terminals import CfgTerminals
39
40
 
40
41
 
41
42
  class CfgData(object):
@@ -59,6 +60,8 @@ class CfgData(object):
59
60
 
60
61
  self.pin_groups = CfgPinGroups(self._pedb, pingroup_data=kwargs.get("pin_groups", []))
61
62
 
63
+ self.terminals = CfgTerminals.create(terminals=kwargs.get("terminals", []))
64
+
62
65
  self.ports = CfgPorts(self._pedb, ports_data=kwargs.get("ports", []))
63
66
 
64
67
  self.sources = CfgSources(self._pedb, sources_data=kwargs.get("sources", []))
@@ -35,6 +35,8 @@ class CfgPinGroups:
35
35
  layout_pin_groups = self._pedb.siwave.pin_groups
36
36
  for pg_name, pg_obj in layout_pin_groups.items():
37
37
  pins = list(pg_obj.pins.keys())
38
+ if len(pins) == 0: # pragma: no cover
39
+ continue
38
40
  refdes = list(pg_obj.pins.values())[0].component.name
39
41
  cfg_pg = CfgPinGroup(
40
42
  self._pedb,
@@ -0,0 +1,232 @@
1
+ from typing import List, Literal, Optional, Union
2
+
3
+ from pydantic import BaseModel
4
+
5
+
6
+ class CfgBase(BaseModel):
7
+ model_config = {
8
+ "populate_by_name": True,
9
+ "extra": "forbid",
10
+ }
11
+
12
+
13
+ class CfgTerminal(CfgBase):
14
+ name: str
15
+ impedance: Union[float, int, str]
16
+ is_circuit_port: bool
17
+ reference_terminal: Optional[str] = None
18
+ amplitude: Optional[Union[float, int, str]] = 1
19
+ phase: Optional[Union[float, int, str]] = 0
20
+ terminal_to_ground: Optional[Literal["kNoGround", "kNegative", "kPositive"]] = "kNoGround"
21
+ boundary_type: Literal[
22
+ "PortBoundary",
23
+ "PecBoundary",
24
+ "RlcBoundary",
25
+ "kCurrentSource",
26
+ "kVoltageSource",
27
+ "kNexximGround",
28
+ "kNexximPort",
29
+ "kDcTerminal",
30
+ "kVoltageProbe",
31
+ "InvalidBoundary",
32
+ ]
33
+ hfss_type: Literal["Wave", "Gap", None]
34
+
35
+
36
+ class CfgPadstackInstanceTerminal(CfgTerminal):
37
+ terminal_type: str = "padstack_instance"
38
+ padstack_instance: str
39
+ padstack_instance_id: Optional[int] = None
40
+ layer: Optional[Union[str, None]] = None
41
+
42
+
43
+ class CfgPinGroupTerminal(CfgTerminal):
44
+ terminal_type: str = "pin_group"
45
+ is_circuit_port: bool = True
46
+ pin_group: str
47
+
48
+
49
+ class CfgPointTerminal(CfgTerminal):
50
+ terminal_type: str = "point"
51
+ x: Union[float, int, str]
52
+ y: Union[float, int, str]
53
+ layer: str
54
+ net: str
55
+
56
+
57
+ class CfgEdgeTerminal(CfgTerminal):
58
+ terminal_type: str = "edge"
59
+ name: str
60
+ primitive: str
61
+ point_on_edge_x: Union[float, int, str]
62
+ point_on_edge_y: Union[float, int, str]
63
+ horizontal_extent_factor: Union[int, str]
64
+ vertical_extent_factor: Union[int, str]
65
+ pec_launch_width: Union[int, str]
66
+
67
+
68
+ class CfgBundleTerminal(CfgBase):
69
+ terminal_type: str = "bundle"
70
+ terminals: List[str]
71
+ name: str
72
+
73
+
74
+ class CfgTerminals(CfgBase):
75
+ terminals: List[
76
+ Union[
77
+ CfgPadstackInstanceTerminal, CfgPinGroupTerminal, CfgPointTerminal, CfgEdgeTerminal, CfgBundleTerminal, dict
78
+ ]
79
+ ]
80
+
81
+ @classmethod
82
+ def create(cls, terminals: List[dict]):
83
+ manager = cls(terminals=[])
84
+ for i in terminals:
85
+ terminal_type = i.pop("terminal_type")
86
+ if terminal_type == "padstack_instance":
87
+ manager.add_padstack_instance_terminal(**i)
88
+ elif terminal_type == "pin_group":
89
+ manager.add_pin_group_terminal(**i)
90
+ elif terminal_type == "point":
91
+ manager.add_point_terminal(**i)
92
+ elif terminal_type == "edge":
93
+ manager.add_edge_terminal(**i)
94
+ elif terminal_type == "bundle":
95
+ manager.add_bundle_terminal(**i)
96
+ else: # pragma: no cover
97
+ raise ValueError(f"Unknown terminal type: {terminal_type}")
98
+ return manager
99
+
100
+ def add_padstack_instance_terminal(
101
+ self,
102
+ padstack_instance,
103
+ name,
104
+ impedance,
105
+ is_circuit_port,
106
+ boundary_type,
107
+ hfss_type,
108
+ reference_terminal=None,
109
+ amplitude=1,
110
+ phase=0,
111
+ terminal_to_ground="kNoGround",
112
+ padstack_instance_id=None,
113
+ layer=None,
114
+ ):
115
+ terminal = CfgPadstackInstanceTerminal(
116
+ padstack_instance=padstack_instance,
117
+ name=name,
118
+ impedance=impedance,
119
+ is_circuit_port=is_circuit_port,
120
+ boundary_type=boundary_type,
121
+ reference_terminal=reference_terminal,
122
+ amplitude=amplitude,
123
+ phase=phase,
124
+ terminal_to_ground=terminal_to_ground,
125
+ layer=layer,
126
+ hfss_type=hfss_type,
127
+ padstack_instance_id=padstack_instance_id,
128
+ )
129
+ self.terminals.append(terminal)
130
+
131
+ def add_pin_group_terminal(
132
+ self,
133
+ pin_group,
134
+ name,
135
+ impedance,
136
+ boundary_type,
137
+ reference_terminal=None,
138
+ amplitude=1,
139
+ phase=0,
140
+ terminal_to_ground="kNoGround",
141
+ ):
142
+ terminal = CfgPinGroupTerminal(
143
+ pin_group=pin_group,
144
+ name=name,
145
+ impedance=impedance,
146
+ is_circuit_port=True,
147
+ boundary_type=boundary_type,
148
+ reference_terminal=reference_terminal,
149
+ amplitude=amplitude,
150
+ phase=phase,
151
+ terminal_to_ground=terminal_to_ground,
152
+ hfss_type=None,
153
+ )
154
+ self.terminals.append(terminal)
155
+
156
+ def add_point_terminal(
157
+ self,
158
+ x,
159
+ y,
160
+ layer,
161
+ name,
162
+ impedance,
163
+ boundary_type,
164
+ net,
165
+ reference_terminal=None,
166
+ amplitude=1,
167
+ phase=0,
168
+ terminal_to_ground="kNoGround",
169
+ ):
170
+ terminal = CfgPointTerminal(
171
+ x=x,
172
+ y=y,
173
+ layer=layer,
174
+ name=name,
175
+ impedance=impedance,
176
+ is_circuit_port=True,
177
+ boundary_type=boundary_type,
178
+ reference_terminal=reference_terminal,
179
+ amplitude=amplitude,
180
+ phase=phase,
181
+ net=net,
182
+ terminal_to_ground=terminal_to_ground,
183
+ hfss_type=None,
184
+ )
185
+ self.terminals.append(terminal)
186
+
187
+ def add_edge_terminal(
188
+ self,
189
+ name,
190
+ impedance,
191
+ is_circuit_port,
192
+ boundary_type,
193
+ primitive,
194
+ point_on_edge_x,
195
+ point_on_edge_y,
196
+ horizontal_extent_factor=6,
197
+ vertical_extent_factor=8,
198
+ pec_launch_width="0.02mm",
199
+ reference_terminal=None,
200
+ amplitude=1,
201
+ phase=0,
202
+ terminal_to_ground="kNoGround",
203
+ ):
204
+ terminal = CfgEdgeTerminal(
205
+ name=name,
206
+ impedance=impedance,
207
+ is_circuit_port=is_circuit_port,
208
+ boundary_type=boundary_type,
209
+ reference_terminal=reference_terminal,
210
+ amplitude=amplitude,
211
+ phase=phase,
212
+ terminal_to_ground=terminal_to_ground,
213
+ primitive=primitive,
214
+ point_on_edge_x=point_on_edge_x,
215
+ point_on_edge_y=point_on_edge_y,
216
+ horizontal_extent_factor=horizontal_extent_factor,
217
+ vertical_extent_factor=vertical_extent_factor,
218
+ pec_launch_width=pec_launch_width,
219
+ hfss_type="Wave",
220
+ )
221
+ self.terminals.append(terminal)
222
+
223
+ def add_bundle_terminal(
224
+ self,
225
+ terminals,
226
+ name,
227
+ ):
228
+ terminal = CfgBundleTerminal(
229
+ terminals=terminals,
230
+ name=name,
231
+ )
232
+ self.terminals.append(terminal)