pyedb 0.52.0__tar.gz → 0.54.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 (299) hide show
  1. {pyedb-0.52.0 → pyedb-0.54.0}/PKG-INFO +15 -13
  2. {pyedb-0.52.0 → pyedb-0.54.0}/README.md +1 -0
  3. {pyedb-0.52.0 → pyedb-0.54.0}/pyproject.toml +12 -12
  4. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/__init__.py +1 -1
  5. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_common.py +12 -15
  6. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_data.py +2 -2
  7. pyedb-0.54.0/src/pyedb/configuration/cfg_modeler.py +202 -0
  8. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_ports_sources.py +6 -8
  9. pyedb-0.54.0/src/pyedb/configuration/cfg_stackup.py +103 -0
  10. pyedb-0.54.0/src/pyedb/configuration/configuration.py +563 -0
  11. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/model.py +1 -1
  12. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/layout.py +1 -1
  13. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/layout_obj.py +3 -3
  14. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/path.py +1 -1
  15. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/primitive.py +8 -8
  16. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/pingroup_terminal.py +1 -1
  17. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/point_terminal.py +1 -1
  18. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/terminal.py +24 -26
  19. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/components.py +33 -27
  20. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/component_def.py +3 -3
  21. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/component_model.py +1 -1
  22. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/package_def.py +1 -1
  23. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/dotnet/database.py +47 -38
  24. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/dotnet/primitive.py +16 -16
  25. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/hfss_extent_info.py +6 -6
  26. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/layer_data.py +17 -15
  27. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/padstacks_data.py +12 -12
  28. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/primitives_data.py +3 -3
  29. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/sources.py +6 -6
  30. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/variables.py +7 -3
  31. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/geometry/point_data.py +1 -1
  32. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/geometry/polygon_data.py +2 -4
  33. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/hfss.py +7 -7
  34. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/materials.py +2 -2
  35. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/modeler.py +8 -11
  36. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/nets.py +1 -1
  37. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/padstack.py +72 -1
  38. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/settings.py +24 -0
  39. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/io/siwave.py +26 -1
  40. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/siwave.py +19 -5
  41. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/stackup.py +80 -137
  42. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/heatsink.py +4 -4
  43. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/obj_base.py +1 -1
  44. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/simulation_setup.py +1 -1
  45. pyedb-0.54.0/src/pyedb/dotnet/database/utilities/siwave_cpa_simulation_setup.py +894 -0
  46. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/siwave_simulation_setup.py +15 -0
  47. pyedb-0.54.0/src/pyedb/dotnet/database/utilities/value.py +116 -0
  48. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/edb.py +58 -45
  49. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/design_types.py +39 -1
  50. pyedb-0.54.0/src/pyedb/generic/grpc_warnings.py +5 -0
  51. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/components.py +155 -98
  52. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/control_file.py +240 -193
  53. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/materials.py +23 -30
  54. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/package_def.py +15 -15
  55. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/padstack_def.py +51 -51
  56. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definitions.py +7 -5
  57. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/arc_data.py +7 -5
  58. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/point_3d_data.py +8 -7
  59. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/polygon_data.py +3 -2
  60. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/component.py +43 -38
  61. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/pin_pair_model.py +15 -14
  62. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/pingroup.py +9 -9
  63. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layers/stackup_layer.py +45 -44
  64. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout/layout.py +9 -8
  65. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout/voltage_regulator.py +7 -7
  66. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout_validation.py +13 -12
  67. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/modeler.py +156 -131
  68. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/nets.py +42 -31
  69. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/padstacks.py +270 -175
  70. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/ports/ports.py +5 -6
  71. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/bondwire.py +8 -7
  72. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/circle.py +4 -4
  73. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/padstack_instance.py +18 -18
  74. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/path.py +7 -7
  75. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/polygon.py +3 -3
  76. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/primitive.py +13 -17
  77. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/rectangle.py +13 -13
  78. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_general_settings.py +1 -1
  79. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_setup.py +10 -0
  80. pyedb-0.54.0/src/pyedb/grpc/database/simulation_setup/siwave_cpa_simulation_setup.py +961 -0
  81. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/siwave_simulation_setup.py +17 -1
  82. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/siwave.py +44 -24
  83. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/source_excitations.py +333 -229
  84. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/stackup.py +164 -147
  85. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/bundle_terminal.py +17 -7
  86. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/edge_terminal.py +10 -0
  87. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/padstack_instance_terminal.py +15 -4
  88. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/pingroup_terminal.py +11 -10
  89. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/point_terminal.py +4 -3
  90. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/terminal/terminal.py +9 -9
  91. pyedb-0.54.0/src/pyedb/grpc/database/utility/value.py +109 -0
  92. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/edb.py +129 -45
  93. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/edb_init.py +0 -7
  94. pyedb-0.54.0/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
  95. pyedb-0.54.0/src/pyedb/siwave_core/cpa/simulation_setup_data_model.py +132 -0
  96. pyedb-0.54.0/src/pyedb/siwave_core/product_properties.py +198 -0
  97. pyedb-0.52.0/src/pyedb/configuration/cfg_modeler.py +0 -273
  98. pyedb-0.52.0/src/pyedb/configuration/cfg_stackup.py +0 -290
  99. pyedb-0.52.0/src/pyedb/configuration/configuration.py +0 -461
  100. {pyedb-0.52.0 → pyedb-0.54.0}/LICENSE +0 -0
  101. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/common/__init__.py +0 -0
  102. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/common/nets.py +0 -0
  103. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/component_libraries/ansys_components.py +0 -0
  104. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/__init__.py +0 -0
  105. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_boundaries.py +0 -0
  106. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_components.py +0 -0
  107. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_general.py +0 -0
  108. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_nets.py +0 -0
  109. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_operations.py +0 -0
  110. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_package_definition.py +0 -0
  111. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_padstacks.py +0 -0
  112. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_pin_groups.py +0 -0
  113. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
  114. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_setup.py +0 -0
  115. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
  116. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/__init__.py +0 -0
  117. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/clr_module.py +0 -0
  118. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/Variables.py +0 -0
  119. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/__init__.py +0 -0
  120. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/__init__.py +0 -0
  121. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/connectable.py +0 -0
  122. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/__init__.py +0 -0
  123. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/component.py +0 -0
  124. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/hierarchy_obj.py +0 -0
  125. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/netlist_model.py +0 -0
  126. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/pin_pair_model.py +0 -0
  127. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/s_parameter_model.py +0 -0
  128. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/hierarchy/spice_model.py +0 -0
  129. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/__init__.py +0 -0
  130. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/primitive/bondwire.py +0 -0
  131. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/__init__.py +0 -0
  132. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/bundle_terminal.py +0 -0
  133. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/edge_terminal.py +0 -0
  134. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/terminal/padstack_instance_terminal.py +0 -0
  135. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/cell/voltage_regulator.py +0 -0
  136. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/__init__.py +0 -0
  137. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/definition_obj.py +0 -0
  138. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/definition/definitions.py +0 -0
  139. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/dotnet/__init__.py +0 -0
  140. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/__init__.py +0 -0
  141. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/control_file.py +0 -0
  142. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/design_options.py +0 -0
  143. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/edbvalue.py +0 -0
  144. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/nets_data.py +0 -0
  145. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/ports.py +0 -0
  146. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/raptor_x_simulation_setup_data.py +0 -0
  147. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/simulation_configuration.py +0 -0
  148. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/edb_data/utilities.py +0 -0
  149. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/general.py +0 -0
  150. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/geometry/__init__.py +0 -0
  151. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/layout_obj_instance.py +0 -0
  152. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/layout_validation.py +0 -0
  153. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/net_class.py +0 -0
  154. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/__init__.py +0 -0
  155. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/__init__.py +0 -0
  156. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  157. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/mesh_operation.py +0 -0
  158. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/sim_setup_info.py +0 -0
  159. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/simulation_settings.py +0 -0
  160. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
  161. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/data/sweep_data.py +0 -0
  162. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/sim_setup_data/io/__init__.py +0 -0
  163. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/__init__.py +0 -0
  164. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/dotnet/database/utilities/hfss_simulation_setup.py +0 -0
  165. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/edb_logger.py +0 -0
  166. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/exceptions.py +0 -0
  167. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/extensions/__init__.py +0 -0
  168. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/extensions/via_design_backend.py +0 -0
  169. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/__init__.py +0 -0
  170. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/constants.py +0 -0
  171. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/data_handlers.py +0 -0
  172. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/filesystem.py +0 -0
  173. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/general_methods.py +0 -0
  174. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/plot.py +0 -0
  175. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/process.py +0 -0
  176. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/generic/settings.py +0 -0
  177. {pyedb-0.52.0/src/pyedb/grpc/database → pyedb-0.54.0/src/pyedb/grpc}/__init__.py +0 -0
  178. {pyedb-0.52.0/src/pyedb/grpc/database/definition → pyedb-0.54.0/src/pyedb/grpc/database}/__init__.py +0 -0
  179. {pyedb-0.52.0/src/pyedb/grpc/database/geometry → pyedb-0.54.0/src/pyedb/grpc/database/definition}/__init__.py +0 -0
  180. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/component_def.py +0 -0
  181. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/component_model.py +0 -0
  182. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/component_pin.py +0 -0
  183. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/definition/n_port_component_model.py +0 -0
  184. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/general.py +0 -0
  185. {pyedb-0.52.0/src/pyedb/grpc/database/hierarchy → pyedb-0.54.0/src/pyedb/grpc/database/geometry}/__init__.py +0 -0
  186. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/geometry/point_data.py +0 -0
  187. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hfss.py +0 -0
  188. {pyedb-0.52.0/src/pyedb/grpc/database/layers → pyedb-0.54.0/src/pyedb/grpc/database/hierarchy}/__init__.py +0 -0
  189. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/model.py +0 -0
  190. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/netlist_model.py +0 -0
  191. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/s_parameter_model.py +0 -0
  192. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/hierarchy/spice_model.py +0 -0
  193. {pyedb-0.52.0/src/pyedb/grpc/database/layout → pyedb-0.54.0/src/pyedb/grpc/database/layers}/__init__.py +0 -0
  194. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layers/layer.py +0 -0
  195. {pyedb-0.52.0/src/pyedb/grpc/database/net → pyedb-0.54.0/src/pyedb/grpc/database/layout}/__init__.py +0 -0
  196. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/layout/cell.py +0 -0
  197. {pyedb-0.52.0/src/pyedb/grpc/database/ports → pyedb-0.54.0/src/pyedb/grpc/database/net}/__init__.py +0 -0
  198. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/differential_pair.py +0 -0
  199. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/extended_net.py +0 -0
  200. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/net.py +0 -0
  201. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/net/net_class.py +0 -0
  202. {pyedb-0.52.0/src/pyedb/grpc/database/simulation_setup → pyedb-0.54.0/src/pyedb/grpc/database/ports}/__init__.py +0 -0
  203. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/primitive/__init__.py +0 -0
  204. {pyedb-0.52.0/src/pyedb/grpc/database/terminal → pyedb-0.54.0/src/pyedb/grpc/database/simulation_setup}/__init__.py +0 -0
  205. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/adaptive_frequency.py +0 -0
  206. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_meshing_settings.py +0 -0
  207. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_advanced_settings.py +0 -0
  208. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_dcr_settings.py +0 -0
  209. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_settings_options.py +0 -0
  210. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_simulation_settings.py +0 -0
  211. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/hfss_solver_settings.py +0 -0
  212. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/mesh_operation.py +0 -0
  213. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_advanced_settings.py +0 -0
  214. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_general_settings.py +0 -0
  215. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_settings.py +0 -0
  216. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/raptor_x_simulation_setup.py +0 -0
  217. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/siwave_dcir_simulation_setup.py +0 -0
  218. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/simulation_setup/sweep_data.py +0 -0
  219. {pyedb-0.52.0/src/pyedb/ipc2581 → pyedb-0.54.0/src/pyedb/grpc/database/terminal}/__init__.py +0 -0
  220. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/__init__.py +0 -0
  221. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/constants.py +0 -0
  222. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/heat_sink.py +0 -0
  223. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/hfss_extent_info.py +0 -0
  224. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/layout_statistics.py +0 -0
  225. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/rlc.py +0 -0
  226. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/sources.py +0 -0
  227. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/sweep_data_distribution.py +0 -0
  228. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/database/utility/xml_control_file.py +0 -0
  229. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/grpc/rpc_session.py +0 -0
  230. {pyedb-0.52.0/src/pyedb/ipc2581/bom → pyedb-0.54.0/src/pyedb/ipc2581}/__init__.py +0 -0
  231. {pyedb-0.52.0/src/pyedb/ipc2581/content → pyedb-0.54.0/src/pyedb/ipc2581/bom}/__init__.py +0 -0
  232. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
  233. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
  234. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
  235. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
  236. {pyedb-0.52.0/src/pyedb/ipc2581/ecad → pyedb-0.54.0/src/pyedb/ipc2581/content}/__init__.py +0 -0
  237. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/color.py +0 -0
  238. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/content.py +0 -0
  239. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
  240. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
  241. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
  242. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
  243. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
  244. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/fill.py +0 -0
  245. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
  246. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
  247. {pyedb-0.52.0/src/pyedb/ipc2581/ecad/cad_data → pyedb-0.54.0/src/pyedb/ipc2581/ecad}/__init__.py +0 -0
  248. {pyedb-0.52.0/src/pyedb/misc → pyedb-0.54.0/src/pyedb/ipc2581/ecad/cad_data}/__init__.py +0 -0
  249. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
  250. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
  251. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
  252. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
  253. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
  254. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
  255. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
  256. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
  257. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
  258. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
  259. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
  260. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
  261. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
  262. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
  263. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
  264. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
  265. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
  266. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
  267. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
  268. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
  269. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
  270. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
  271. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +0 -0
  272. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
  273. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
  274. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
  275. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/history_record.py +0 -0
  276. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
  277. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
  278. {pyedb-0.52.0/src/pyedb/misc/siw_feature_config → pyedb-0.54.0/src/pyedb/misc}/__init__.py +0 -0
  279. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
  280. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/downloads.py +0 -0
  281. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/misc.py +0 -0
  282. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
  283. {pyedb-0.52.0/src/pyedb/misc/siw_feature_config/emc → pyedb-0.54.0/src/pyedb/misc/siw_feature_config}/__init__.py +0 -0
  284. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
  285. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
  286. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
  287. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
  288. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
  289. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
  290. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
  291. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
  292. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
  293. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
  294. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
  295. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/misc/utilities.py +0 -0
  296. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/modeler/geometry_operators.py +0 -0
  297. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/siwave.py +0 -0
  298. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/siwave_core/icepak.py +0 -0
  299. {pyedb-0.52.0 → pyedb-0.54.0}/src/pyedb/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: pyedb
3
- Version: 0.52.0
3
+ Version: 0.54.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>
@@ -15,25 +15,26 @@ Classifier: Programming Language :: Python :: 3.8
15
15
  Classifier: Programming Language :: Python :: 3.9
16
16
  Classifier: Programming Language :: Python :: 3.10
17
17
  Classifier: Programming Language :: Python :: 3.11
18
+ License-File: LICENSE
18
19
  Requires-Dist: cffi>=1.16.0,<1.18; platform_system=='Linux'
19
20
  Requires-Dist: pywin32 >= 303;platform_system=='Windows'
20
21
  Requires-Dist: ansys-pythonnet >= 3.1.0rc4
21
22
  Requires-Dist: dotnetcore2 ==3.1.23;platform_system=='Linux'
22
23
  Requires-Dist: numpy>=1.20.0,<3
23
- Requires-Dist: pandas>=1.1.0,<2.3
24
- Requires-Dist: pydantic>=2.6.4,<2.11
24
+ Requires-Dist: pandas>=1.1.0,<2.4
25
+ Requires-Dist: pydantic>=2.6.4,<2.12
25
26
  Requires-Dist: Rtree >= 1.2.0
26
27
  Requires-Dist: toml == 0.10.2
27
28
  Requires-Dist: shapely
28
29
  Requires-Dist: scikit-rf
29
- Requires-Dist: ansys-edb-core>=0.2.0.dev0
30
- Requires-Dist: ansys-api-edb>=0.2.0.dev0
30
+ Requires-Dist: ansys-edb-core>=0.2.0
31
+ Requires-Dist: ansys-api-edb>=0.2.0
31
32
  Requires-Dist: psutil
32
33
  Requires-Dist: ansys-sphinx-theme>=1.0.0,<1.5 ; extra == "doc"
33
- Requires-Dist: imageio>=2.30.0,<2.37 ; extra == "doc"
34
+ Requires-Dist: imageio>=2.30.0,<2.38 ; extra == "doc"
34
35
  Requires-Dist: ipython>=8.13.0,<8.32 ; extra == "doc"
35
- Requires-Dist: jupyterlab>=4.0.0,<4.4 ; extra == "doc"
36
- Requires-Dist: jupytext>=1.16.0,<1.17 ; extra == "doc"
36
+ Requires-Dist: jupyterlab>=4.0.0,<4.5 ; extra == "doc"
37
+ Requires-Dist: jupytext>=1.16.0,<1.18 ; extra == "doc"
37
38
  Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "doc"
38
39
  Requires-Dist: nbsphinx>=0.9.0,<0.10 ; extra == "doc"
39
40
  Requires-Dist: nbconvert < 7.17 ; extra == "doc"
@@ -44,15 +45,15 @@ Requires-Dist: Sphinx>=7.1.0,<8.2 ; extra == "doc"
44
45
  Requires-Dist: sphinx-autobuild==2021.3.14 ; extra == "doc" and ( python_version == '3.8')
45
46
  Requires-Dist: sphinx-autobuild==2024.10.3 ; extra == "doc" and ( python_version > '3.8')
46
47
  Requires-Dist: sphinx-copybutton>=0.5.0,<0.6 ; extra == "doc"
47
- Requires-Dist: sphinx-gallery>=0.14.0,<0.19 ; extra == "doc"
48
+ Requires-Dist: sphinx-gallery>=0.14.0,<0.20 ; extra == "doc"
48
49
  Requires-Dist: sphinx_design>=0.4.0,<0.7 ; extra == "doc"
49
50
  Requires-Dist: shapely ; extra == "doc"
50
51
  Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "full"
51
52
  Requires-Dist: shapely ; extra == "full"
52
53
  Requires-Dist: matplotlib>=3.5.0,<3.11 ; extra == "tests"
53
- Requires-Dist: mock>=5.1.0,<5.2 ; extra == "tests"
54
- Requires-Dist: pytest>=7.4.0,<8.4 ; extra == "tests"
55
- Requires-Dist: pytest-cov>=4.0.0,<6.1 ; extra == "tests"
54
+ Requires-Dist: mock>=5.1.0,<5.3 ; extra == "tests"
55
+ Requires-Dist: pytest>=7.4.0,<8.5 ; extra == "tests"
56
+ Requires-Dist: pytest-cov>=4.0.0,<6.3 ; extra == "tests"
56
57
  Requires-Dist: pytest-xdist>=3.5.0,<3.7 ; extra == "tests"
57
58
  Requires-Dist: scikit-rf ; extra == "tests"
58
59
  Requires-Dist: shapely ; extra == "tests"
@@ -77,6 +78,7 @@ Provides-Extra: tests
77
78
  [![PyAnsys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC)](https://docs.pyansys.com/)
78
79
  [![PythonVersion](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
79
80
  [![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
81
+ [![DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/ansys/pyedb)
80
82
 
81
83
  ## What is PyEDB?
82
84
 
@@ -10,6 +10,7 @@
10
10
  [![PyAnsys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC)](https://docs.pyansys.com/)
11
11
  [![PythonVersion](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
12
12
  [![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
13
+ [![DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/ansys/pyedb)
13
14
 
14
15
  ## What is PyEDB?
15
16
 
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["flit_core >=3.2,<3.11"] # THIS SHOULD BE REVERTED TO '["flit_core >=3.2,<4"]'
2
+ requires = ["flit_core >=3.2,<3.13"] # THIS SHOULD BE REVERTED TO '["flit_core >=3.2,<4"]'
3
3
  build-backend = "flit_core.buildapi"
4
4
 
5
5
 
@@ -30,33 +30,33 @@ dependencies = [
30
30
  "ansys-pythonnet >= 3.1.0rc4",
31
31
  "dotnetcore2 ==3.1.23;platform_system=='Linux'",
32
32
  "numpy>=1.20.0,<3",
33
- "pandas>=1.1.0,<2.3",
34
- "pydantic>=2.6.4,<2.11",
33
+ "pandas>=1.1.0,<2.4",
34
+ "pydantic>=2.6.4,<2.12",
35
35
  "Rtree >= 1.2.0",
36
36
  "toml == 0.10.2",
37
37
  "shapely",
38
38
  "scikit-rf",
39
- "ansys-edb-core>=0.2.0.dev0",
40
- "ansys-api-edb>=0.2.0.dev0",
39
+ "ansys-edb-core>=0.2.0",
40
+ "ansys-api-edb>=0.2.0",
41
41
  "psutil",
42
42
  ]
43
43
 
44
44
  [project.optional-dependencies]
45
45
  tests = [
46
46
  "matplotlib>=3.5.0,<3.11",
47
- "mock>=5.1.0,<5.2",
48
- "pytest>=7.4.0,<8.4",
49
- "pytest-cov>=4.0.0,<6.1",
47
+ "mock>=5.1.0,<5.3",
48
+ "pytest>=7.4.0,<8.5",
49
+ "pytest-cov>=4.0.0,<6.3",
50
50
  "pytest-xdist>=3.5.0,<3.7",
51
51
  "scikit-rf",
52
52
  "shapely"
53
53
  ]
54
54
  doc = [
55
55
  "ansys-sphinx-theme>=1.0.0,<1.5",
56
- "imageio>=2.30.0,<2.37",
56
+ "imageio>=2.30.0,<2.38",
57
57
  "ipython>=8.13.0,<8.32",
58
- "jupyterlab>=4.0.0,<4.4",
59
- "jupytext>=1.16.0,<1.17",
58
+ "jupyterlab>=4.0.0,<4.5",
59
+ "jupytext>=1.16.0,<1.18",
60
60
  "matplotlib>=3.5.0,<3.11",
61
61
  "nbsphinx>=0.9.0,<0.10",
62
62
  "nbconvert < 7.17",
@@ -68,7 +68,7 @@ doc = [
68
68
  "sphinx-autobuild==2021.3.14; python_version == '3.8'",
69
69
  "sphinx-autobuild==2024.10.3; python_version > '3.8'",
70
70
  "sphinx-copybutton>=0.5.0,<0.6",
71
- "sphinx-gallery>=0.14.0,<0.19",
71
+ "sphinx-gallery>=0.14.0,<0.20",
72
72
  "sphinx_design>=0.4.0,<0.7",
73
73
  "shapely",
74
74
 
@@ -44,7 +44,7 @@ deprecation_warning()
44
44
  #
45
45
 
46
46
  pyedb_path = os.path.dirname(__file__)
47
- __version__ = "0.52.0"
47
+ __version__ = "0.54.0"
48
48
  version = __version__
49
49
 
50
50
  #
@@ -20,6 +20,10 @@
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 typing import List, Optional, Union
24
+
25
+ from pydantic import BaseModel
26
+
23
27
 
24
28
  class CfgBase:
25
29
  protected_attributes = ["pedb", "pyedb_obj", "api"]
@@ -41,21 +45,14 @@ class CfgBase:
41
45
  setattr(pedb_object, attr, value)
42
46
 
43
47
 
44
- class CfgVar:
45
- def __init__(self, **kwargs):
46
- self.name = kwargs["name"]
47
- self.value = kwargs["value"]
48
- self.description = kwargs.get("description", "")
48
+ class CfgVar(BaseModel):
49
+ name: str
50
+ value: Union[int, float, str]
51
+ description: Optional[str] = ""
49
52
 
50
53
 
51
- class CfgVariables:
52
- def __init__(self, pedb, data):
53
- self._pedb = pedb
54
- self.variables = [CfgVar(**i) for i in data]
54
+ class CfgVariables(BaseModel):
55
+ variables: List[CfgVar] = []
55
56
 
56
- def apply(self):
57
- for i in self.variables:
58
- if i.name.startswith("$"):
59
- self._pedb.add_project_variable(i.name, i.value)
60
- else:
61
- self._pedb.add_design_variable(i.name, i.value)
57
+ def add_variable(self, name, value, description=""):
58
+ self.variables.append(CfgVar(name=name, value=value, description=description))
@@ -63,7 +63,7 @@ class CfgData(object):
63
63
 
64
64
  self.setups = CfgSetups(self._pedb, setups_data=kwargs.get("setups", []))
65
65
 
66
- self.stackup = CfgStackup(self._pedb, data=kwargs.get("stackup", {}))
66
+ self.stackup = CfgStackup(**kwargs.get("stackup", {}))
67
67
 
68
68
  self.s_parameters = CfgSParameters(self._pedb, kwargs.get("s_parameters", []), self.general.s_parameter_library)
69
69
 
@@ -77,6 +77,6 @@ class CfgData(object):
77
77
 
78
78
  self.modeler = CfgModeler(self._pedb, data=kwargs.get("modeler", {}))
79
79
 
80
- self.variables = CfgVariables(self._pedb, data=kwargs.get("variables", []))
80
+ self.variables = CfgVariables(variables=kwargs.get("variables", []))
81
81
 
82
82
  self.probes = CfgProbes(self._pedb, data=kwargs.get("probes", []))
@@ -0,0 +1,202 @@
1
+ # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ from dataclasses import dataclass, field
24
+ from typing import Any, Dict, List, Optional, TypedDict, Union
25
+
26
+ from pyedb.configuration.cfg_components import CfgComponent
27
+ from pyedb.configuration.cfg_padstacks import CfgPadstackDefinition, CfgPadstackInstance
28
+
29
+
30
+ @dataclass
31
+ class CfgTrace:
32
+ name: str
33
+ layer: str
34
+ path: List[List[Union[float, str]]]
35
+ width: str
36
+ net_name: str
37
+ start_cap_style: str
38
+ end_cap_style: str
39
+ corner_style: str
40
+ incremental_path: List[List[Union[float, str]]]
41
+
42
+
43
+ @dataclass
44
+ class CfgPlane:
45
+ name: str = ""
46
+ layer: str = ""
47
+ net_name: str = ""
48
+ type: str = "rectangle"
49
+
50
+ # rectangle
51
+ lower_left_point: List[Union[float, str]] = field(default_factory=list)
52
+ upper_right_point: List[Union[float, str]] = field(default_factory=list)
53
+ corner_radius: Union[float, str] = 0
54
+ rotation: Union[float, str] = 0
55
+ voids: List[Any] = field(default_factory=list)
56
+
57
+ # polygon
58
+ points: List[List[float]] = field(default_factory=list)
59
+
60
+ # circle
61
+ radius: Union[float, str] = 0
62
+ position: List[float] = field(default_factory=lambda: [0, 0])
63
+
64
+
65
+ class PrimitivesToDeleteDict(TypedDict, total=False):
66
+ layer_name: List[str]
67
+ name: List[str]
68
+ net_name: List[str]
69
+
70
+
71
+ @dataclass
72
+ class CfgModeler:
73
+ """Manage configuration general settings."""
74
+
75
+ traces: List[CfgTrace] = field(default_factory=list)
76
+ planes: List[CfgPlane] = field(default_factory=list)
77
+
78
+ def __init__(self, pedb, data: Dict):
79
+ self._pedb = pedb
80
+ self.traces = []
81
+ self.planes = []
82
+
83
+ self.padstack_defs = [CfgPadstackDefinition(pedb, None, **i) for i in data.get("padstack_definitions", [])]
84
+ self.padstack_instances = [CfgPadstackInstance(pedb, None, **i) for i in data.get("padstack_instances", [])]
85
+
86
+ self.components = [CfgComponent(pedb, None, **i) for i in data.get("components", [])]
87
+ self.primitives_to_delete: PrimitivesToDeleteDict = data.get(
88
+ "primitives_to_delete", {"layer_name": [], "name": [], "net_name": []}
89
+ )
90
+
91
+ for trace_data in data.get("traces", []):
92
+ self.add_trace(**trace_data)
93
+
94
+ for plane_data in data.get("planes", []):
95
+ shape = plane_data.pop("type")
96
+ if shape == "rectangle":
97
+ self.add_rectangular_plane(**plane_data)
98
+ elif shape == "circle":
99
+ self.add_circular_plane(**plane_data)
100
+ elif shape == "polygon":
101
+ self.add_polygon_plane(**plane_data)
102
+
103
+ def add_trace(
104
+ self,
105
+ layer: str,
106
+ width: str,
107
+ name: str,
108
+ net_name: str = "",
109
+ start_cap_style: str = "round",
110
+ end_cap_style: str = "round",
111
+ corner_style: str = "sharp",
112
+ path: Optional[Any] = None,
113
+ incremental_path: Optional[Any] = None,
114
+ ):
115
+ """Add a trace from a dictionary of parameters."""
116
+
117
+ trace_obj = CfgTrace(
118
+ name,
119
+ layer,
120
+ path,
121
+ width,
122
+ net_name,
123
+ start_cap_style,
124
+ end_cap_style,
125
+ corner_style,
126
+ incremental_path,
127
+ )
128
+ self.traces.append(trace_obj)
129
+ return name
130
+
131
+ def add_rectangular_plane(
132
+ self,
133
+ layer: str,
134
+ name: str = "",
135
+ net_name: str = "",
136
+ lower_left_point: List[float] = "",
137
+ upper_right_point: List[float] = "",
138
+ corner_radius: float = 0,
139
+ rotation: float = 0,
140
+ voids: Optional[List[Any]] = "",
141
+ ):
142
+ plane_obj = CfgPlane(
143
+ name=name,
144
+ layer=layer,
145
+ net_name=net_name,
146
+ type="rectangle",
147
+ lower_left_point=lower_left_point,
148
+ upper_right_point=upper_right_point,
149
+ corner_radius=corner_radius,
150
+ rotation=rotation,
151
+ voids=voids,
152
+ )
153
+ self.planes.append(plane_obj)
154
+ return name
155
+
156
+ def add_circular_plane(
157
+ self,
158
+ layer: str,
159
+ name: str = "",
160
+ net_name: str = "",
161
+ corner_radius: float = 0,
162
+ rotation: float = 0,
163
+ voids: Optional[List[Any]] = "",
164
+ radius: Union[float, str] = 0,
165
+ position: List[Union[float, str]] = "",
166
+ ):
167
+ plane_obj = CfgPlane(
168
+ name=name,
169
+ layer=layer,
170
+ net_name=net_name,
171
+ type="circle",
172
+ corner_radius=corner_radius,
173
+ rotation=rotation,
174
+ voids=voids,
175
+ radius=radius,
176
+ position=position,
177
+ )
178
+ self.planes.append(plane_obj)
179
+ return name
180
+
181
+ def add_polygon_plane(
182
+ self,
183
+ layer: str,
184
+ name: str = "",
185
+ net_name: str = "",
186
+ corner_radius: float = 0,
187
+ rotation: float = 0,
188
+ voids: Optional[List[Any]] = "",
189
+ points: List[List[float]] = "",
190
+ ):
191
+ plane_obj = CfgPlane(
192
+ name=name,
193
+ layer=layer,
194
+ net_name=net_name,
195
+ type="polygon",
196
+ corner_radius=corner_radius,
197
+ rotation=rotation,
198
+ voids=voids,
199
+ points=points,
200
+ )
201
+ self.planes.append(plane_obj)
202
+ return name
@@ -58,7 +58,7 @@ class CfgTerminalInfo(CfgBase):
58
58
  self.contact_type = kwargs.get("contact_type", "default") # options are full, center, quad, inline
59
59
  contact_radius = "0.1mm" if kwargs.get("contact_radius") is None else kwargs.get("contact_radius")
60
60
 
61
- self.contact_radius = self._pedb.edb_value(contact_radius).ToDouble()
61
+ self.contact_radius = self._pedb.value(contact_radius)
62
62
  self.num_of_contact = kwargs.get("num_of_contact", 4)
63
63
  self.contact_expansion = kwargs.get("contact_expansion", 1)
64
64
 
@@ -678,11 +678,9 @@ class CfgEdgePort:
678
678
  def set_parameters_to_edb(self):
679
679
  point_on_edge = PointData(self._pedb, x=self.point_on_edge[0], y=self.point_on_edge[1])
680
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(
681
+ pos_edge = self._pedb.core.cell.terminal.PrimitiveEdge.Create(primitive._edb_object, point_on_edge._edb_object)
682
+ pos_edge = convert_py_list_to_net_list(pos_edge, self._pedb.core.cell.terminal.Edge)
683
+ edge_term = self._pedb.core.cell.terminal.EdgeTerminal.Create(
686
684
  primitive._edb_object.GetLayout(),
687
685
  primitive._edb_object.GetNet(),
688
686
  self.name,
@@ -755,9 +753,9 @@ class CfgDiffWavePort:
755
753
  pos_term = self.positive_port.set_parameters_to_edb()
756
754
  neg_term = self.negative_port.set_parameters_to_edb()
757
755
  edb_list = convert_py_list_to_net_list(
758
- [pos_term._edb_object, neg_term._edb_object], self._pedb.edb_api.cell.terminal.Terminal
756
+ [pos_term._edb_object, neg_term._edb_object], self._pedb.core.cell.terminal.Terminal
759
757
  )
760
- _edb_boundle_terminal = self._pedb.edb_api.cell.terminal.BundleTerminal.Create(edb_list)
758
+ _edb_boundle_terminal = self._pedb.core.cell.terminal.BundleTerminal.Create(edb_list)
761
759
  _edb_boundle_terminal.SetName(self.name)
762
760
  pos, neg = list(_edb_boundle_terminal.GetTerminals())
763
761
  pos.SetName(self.name + ":T1")
@@ -0,0 +1,103 @@
1
+ # Copyright (C) 2023 - 2024 ANSYS, Inc. and/or its affiliates.
2
+ # SPDX-License-Identifier: MIT
3
+ #
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ # of this software and associated documentation files (the "Software"), to deal
7
+ # in the Software without restriction, including without limitation the rights
8
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ # copies of the Software, and to permit persons to whom the Software is
10
+ # furnished to do so, subject to the following conditions:
11
+ #
12
+ # The above copyright notice and this permission notice shall be included in all
13
+ # copies or substantial portions of the Software.
14
+ #
15
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+ from typing import List, Optional, Union
23
+
24
+ from pydantic import BaseModel, Field
25
+
26
+
27
+ class CfgMaterialPropertyThermalModifier(BaseModel):
28
+ property_name: str
29
+ basic_quadratic_c1: float = 0
30
+ basic_quadratic_c2: float = 0
31
+ basic_quadratic_temperature_reference: float = 22
32
+ advanced_quadratic_lower_limit: float = -273.15
33
+ advanced_quadratic_upper_limit: float = 1000
34
+ advanced_quadratic_auto_calculate: bool = True
35
+ advanced_quadratic_lower_constant: float = 1
36
+ advanced_quadratic_upper_constant: float = 1
37
+
38
+
39
+ class MaterialProperties(BaseModel):
40
+ """Store material properties."""
41
+
42
+ conductivity: Optional[Union[str, float]] = None
43
+ dielectric_loss_tangent: Optional[Union[str, float]] = None
44
+ magnetic_loss_tangent: Optional[Union[str, float]] = None
45
+ mass_density: Optional[Union[str, float]] = None
46
+ permittivity: Optional[Union[str, float]] = None
47
+ permeability: Optional[Union[str, float]] = None
48
+ poisson_ratio: Optional[Union[str, float]] = None
49
+ specific_heat: Optional[Union[str, float]] = None
50
+ thermal_conductivity: Optional[Union[str, float]] = None
51
+ youngs_modulus: Optional[Union[str, float]] = None
52
+ thermal_expansion_coefficient: Optional[Union[str, float]] = None
53
+ dc_conductivity: Optional[Union[str, float]] = None
54
+ dc_permittivity: Optional[Union[str, float]] = None
55
+ dielectric_model_frequency: Optional[Union[str, float]] = None
56
+ loss_tangent_at_frequency: Optional[Union[str, float]] = None
57
+ permittivity_at_frequency: Optional[Union[str, float]] = None
58
+
59
+
60
+ class CfgMaterial(MaterialProperties):
61
+ name: str
62
+ thermal_modifiers: Optional[list[CfgMaterialPropertyThermalModifier]] = None
63
+
64
+
65
+ class RoughnessSideModel(BaseModel):
66
+ model: str
67
+ nodule_radius: Optional[str] = None # e.g., '0.1um'
68
+ surface_ratio: Optional[str] = None # e.g., '1'
69
+ roughness: Optional[str] = None # e.g., '2um' for non-huray
70
+
71
+
72
+ class RoughnessModel(BaseModel):
73
+ enabled: Optional[bool] = False
74
+ top: Optional[RoughnessSideModel] = None
75
+ bottom: Optional[RoughnessSideModel] = None
76
+ side: Optional[RoughnessSideModel] = None
77
+
78
+
79
+ class EtchingModel(BaseModel):
80
+ factor: Optional[Union[float, str]] = 0.5
81
+ etch_power_ground_nets: Optional[bool] = False
82
+ enabled: Optional[bool] = False
83
+
84
+
85
+ class CfgLayer(BaseModel):
86
+ name: Optional[str] = None
87
+ type: Optional[str] = None
88
+ material: Optional[str] = None
89
+ fill_material: Optional[str] = None
90
+ thickness: Optional[Union[float, str]] = None
91
+ roughness: Optional[RoughnessModel] = None
92
+ etching: Optional[EtchingModel] = None
93
+
94
+
95
+ class CfgStackup(BaseModel):
96
+ materials: List[CfgMaterial] = Field(default_factory=list)
97
+ layers: List[CfgLayer] = Field(default_factory=list)
98
+
99
+ def add_material(self, name, **kwargs):
100
+ self.materials.append(CfgMaterial(name=name, **kwargs))
101
+
102
+ def add_layer_at_bottom(self, name, **kwargs):
103
+ self.layers.append(CfgLayer(name=name, **kwargs))