pyedb 0.36.0__tar.gz → 0.37.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 (194) hide show
  1. {pyedb-0.36.0 → pyedb-0.37.0}/PKG-INFO +1 -1
  2. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/__init__.py +1 -1
  3. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_ports_sources.py +14 -10
  4. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/layout.py +22 -6
  5. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/nets_data.py +1 -1
  6. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/padstacks_data.py +54 -5
  7. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/geometry/polygon_data.py +5 -0
  8. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/modeler.py +1 -2
  9. {pyedb-0.36.0 → pyedb-0.37.0}/LICENSE +0 -0
  10. {pyedb-0.36.0 → pyedb-0.37.0}/README.md +0 -0
  11. {pyedb-0.36.0 → pyedb-0.37.0}/pyproject.toml +0 -0
  12. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/common/__init__.py +0 -0
  13. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/common/nets.py +0 -0
  14. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/component_libraries/ansys_components.py +0 -0
  15. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/__init__.py +0 -0
  16. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_boundaries.py +0 -0
  17. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_common.py +0 -0
  18. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_components.py +0 -0
  19. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_data.py +0 -0
  20. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_general.py +0 -0
  21. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_modeler.py +0 -0
  22. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_nets.py +0 -0
  23. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_operations.py +0 -0
  24. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_package_definition.py +0 -0
  25. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_padstacks.py +0 -0
  26. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_pin_groups.py +0 -0
  27. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
  28. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_setup.py +0 -0
  29. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
  30. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/cfg_stackup.py +0 -0
  31. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/configuration/configuration.py +0 -0
  32. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/__init__.py +0 -0
  33. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/application/Variables.py +0 -0
  34. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/application/__init__.py +0 -0
  35. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/clr_module.py +0 -0
  36. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb.py +0 -0
  37. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/__init__.py +0 -0
  38. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/__init__.py +0 -0
  39. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/connectable.py +0 -0
  40. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
  41. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/component.py +0 -0
  42. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +0 -0
  43. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/model.py +0 -0
  44. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py +0 -0
  45. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py +0 -0
  46. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/s_parameter_model.py +0 -0
  47. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py +0 -0
  48. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/layout_obj.py +0 -0
  49. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/primitive/__init__.py +0 -0
  50. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/primitive/bondwire.py +0 -0
  51. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/primitive/path.py +0 -0
  52. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/primitive/primitive.py +0 -0
  53. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/terminal/__init__.py +0 -0
  54. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py +0 -0
  55. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py +0 -0
  56. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +0 -0
  57. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +0 -0
  58. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +0 -0
  59. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/terminal/terminal.py +0 -0
  60. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/cell/voltage_regulator.py +0 -0
  61. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/components.py +0 -0
  62. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/definition/__init__.py +0 -0
  63. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/definition/component_def.py +0 -0
  64. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/definition/component_model.py +0 -0
  65. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/definition/definition_obj.py +0 -0
  66. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/definition/definitions.py +0 -0
  67. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/definition/package_def.py +0 -0
  68. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
  69. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/dotnet/database.py +0 -0
  70. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/dotnet/primitive.py +0 -0
  71. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
  72. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/control_file.py +0 -0
  73. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/design_options.py +0 -0
  74. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/edbvalue.py +0 -0
  75. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +0 -0
  76. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/layer_data.py +0 -0
  77. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/ports.py +0 -0
  78. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/primitives_data.py +0 -0
  79. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +0 -0
  80. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +0 -0
  81. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/sources.py +0 -0
  82. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/utilities.py +0 -0
  83. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/edb_data/variables.py +0 -0
  84. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/general.py +0 -0
  85. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/geometry/__init__.py +0 -0
  86. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/geometry/point_data.py +0 -0
  87. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/hfss.py +0 -0
  88. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/layout_obj_instance.py +0 -0
  89. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/layout_validation.py +0 -0
  90. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/materials.py +0 -0
  91. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/net_class.py +0 -0
  92. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/nets.py +0 -0
  93. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/padstack.py +0 -0
  94. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/__init__.py +0 -0
  95. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/__init__.py +0 -0
  96. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  97. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py +0 -0
  98. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/settings.py +0 -0
  99. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py +0 -0
  100. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py +0 -0
  101. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
  102. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +0 -0
  103. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py +0 -0
  104. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py +0 -0
  105. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/siwave.py +0 -0
  106. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/stackup.py +0 -0
  107. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/utilities/__init__.py +0 -0
  108. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/utilities/heatsink.py +0 -0
  109. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py +0 -0
  110. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/utilities/obj_base.py +0 -0
  111. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py +0 -0
  112. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py +0 -0
  113. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/edb_logger.py +0 -0
  114. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/exceptions.py +0 -0
  115. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/__init__.py +0 -0
  116. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/constants.py +0 -0
  117. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/data_handlers.py +0 -0
  118. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/design_types.py +0 -0
  119. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/filesystem.py +0 -0
  120. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/general_methods.py +0 -0
  121. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/plot.py +0 -0
  122. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/process.py +0 -0
  123. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/generic/settings.py +0 -0
  124. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/__init__.py +0 -0
  125. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/bom/__init__.py +0 -0
  126. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
  127. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
  128. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
  129. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
  130. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/__init__.py +0 -0
  131. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/color.py +0 -0
  132. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/content.py +0 -0
  133. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
  134. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
  135. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
  136. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
  137. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
  138. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/fill.py +0 -0
  139. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
  140. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
  141. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/__init__.py +0 -0
  142. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
  143. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
  144. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
  145. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
  146. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
  147. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
  148. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
  149. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
  150. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
  151. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
  152. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
  153. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
  154. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
  155. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
  156. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
  157. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
  158. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
  159. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
  160. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
  161. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
  162. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
  163. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
  164. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
  165. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +0 -0
  166. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
  167. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
  168. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
  169. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/history_record.py +0 -0
  170. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
  171. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
  172. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/__init__.py +0 -0
  173. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
  174. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/downloads.py +0 -0
  175. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/misc.py +0 -0
  176. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
  177. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/__init__.py +0 -0
  178. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
  179. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
  180. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
  181. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
  182. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
  183. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
  184. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
  185. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
  186. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
  187. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
  188. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
  189. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
  190. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/misc/utilities.py +0 -0
  191. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/modeler/geometry_operators.py +0 -0
  192. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/siwave.py +0 -0
  193. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/siwave_core/icepak.py +0 -0
  194. {pyedb-0.36.0 → pyedb-0.37.0}/src/pyedb/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyedb
3
- Version: 0.36.0
3
+ Version: 0.37.0
4
4
  Summary: Higher-Level Pythonic Ansys Electronics Data Base
5
5
  Author-email: "ANSYS, Inc." <pyansys.core@ansys.com>
6
6
  Maintainer-email: PyEDB developers <simon.vandenbrouck@ansys.com>
@@ -44,7 +44,7 @@ deprecation_warning()
44
44
  #
45
45
 
46
46
  pyedb_path = os.path.dirname(__file__)
47
- __version__ = "0.36.0"
47
+ __version__ = "0.37.0"
48
48
  version = __version__
49
49
 
50
50
  #
@@ -33,6 +33,9 @@ class CfgTerminalInfo(CfgBase):
33
33
  self._pedb = pedb
34
34
  self.type = list(kwargs.keys())[0]
35
35
  self.value = kwargs[self.type]
36
+ self.contact_radius = kwargs.get("contact_radius", None)
37
+ self.num_of_contact = kwargs.get("num_of_contact", 1)
38
+ self.inline = kwargs.get("inline", False)
36
39
 
37
40
  def export_properties(self):
38
41
  return {self.type: self.value}
@@ -46,7 +49,6 @@ class CfgCoordianteTerminalInfo(CfgTerminalInfo):
46
49
  self.point_x = self.value["point"][0]
47
50
  self.point_y = self.value["point"][1]
48
51
  self.net = self.value["net"]
49
- self.contact_radius = self.value.get("contact_radius", None)
50
52
 
51
53
  def export_properties(self):
52
54
  return {"coordinates": {"layer": self.layer, "point": [self.point_x, self.point_y], "net": self.net}}
@@ -245,8 +247,6 @@ class CfgCircuitElement(CfgBase):
245
247
  point = [self.positive_terminal_info.point_x, self.positive_terminal_info.point_y]
246
248
  net_name = self.positive_terminal_info.net
247
249
  pos_coor_terminal[self.name] = self._pedb.get_point_terminal(self.name, net_name, point, layer)
248
- if self.positive_terminal_info.contact_radius:
249
- pos_coor_terminal[self.name].contact_radius = self.positive_terminal_info.contact_radius
250
250
 
251
251
  elif pos_type == "pin_group":
252
252
  if self.distributed:
@@ -406,20 +406,24 @@ class CfgSource(CfgCircuitElement):
406
406
  if self.equipotential:
407
407
  terms = [terminal, terminal.ref_terminal] if terminal.ref_terminal else [terminal]
408
408
  for t in terms:
409
+ if not t.is_reference_terminal:
410
+ radius = self.positive_terminal_info.contact_radius
411
+ num_of_contact = self.positive_terminal_info.num_of_contact
412
+ inline = self.positive_terminal_info.inline
413
+ else:
414
+ radius = self.negative_terminal_info.contact_radius
415
+ num_of_contact = self.negative_terminal_info.num_of_contact
416
+ inline = self.negative_terminal_info.inline
417
+
409
418
  pads = []
410
419
  if t.terminal_type == "PadstackInstanceTerminal":
411
420
  pads.append(t.reference_object)
412
- t._edb_object.dcir_equipotential_region = True
413
421
  elif t.terminal_type == "PinGroupTerminal":
414
422
  name = t._edb_object.GetPinGroup().GetName()
415
423
  pg = self._pedb.siwave.pin_groups[name]
416
424
  pads.extend([i for _, i in pg.pins.items()])
417
- elif t.terminal_type == "PointTerminal":
425
+ elif t.terminal_type == "PointTerminal" and radius:
418
426
  temp = [i for i in self._pedb.layout.terminals if i.name == t.name][0]
419
- if not temp.is_reference_terminal:
420
- radius = self.positive_terminal_info.contact_radius
421
- else:
422
- radius = self.negative_terminal_info.contact_radius
423
427
  if radius is not None:
424
428
  prim = self._pedb.modeler.create_circle(
425
429
  temp.layer.name, temp.location[0], temp.location[1], radius, temp.net_name
@@ -427,7 +431,7 @@ class CfgSource(CfgCircuitElement):
427
431
  prim.dcir_equipotential_region = True
428
432
 
429
433
  for i in pads:
430
- i._set_equipotential()
434
+ i._set_equipotential(contact_radius=radius, inline=inline, num_of_contact=num_of_contact)
431
435
 
432
436
  return circuit_elements
433
437
 
@@ -220,7 +220,7 @@ class Layout(ObjBase):
220
220
  -------
221
221
  """
222
222
 
223
- return [EDBNetsData(net, self._pedb) for net in self._edb_object.Nets]
223
+ return [EDBNetsData(net, self._pedb) for net in self._edb_object.Nets if net]
224
224
 
225
225
  @property
226
226
  def primitives(self):
@@ -230,7 +230,7 @@ class Layout(ObjBase):
230
230
  -------
231
231
  list of :class:`dotnet.edb_core.dotnet.primitive.PrimitiveDotNet` cast objects.
232
232
  """
233
- return [primitive_cast(self._pedb, p) for p in self._edb_object.Primitives]
233
+ return [primitive_cast(self._pedb, p) for p in self._edb_object.Primitives if p]
234
234
 
235
235
  @property
236
236
  def bondwires(self):
@@ -331,16 +331,32 @@ class Layout(ObjBase):
331
331
  obj = self._pedb._edb.Cell.Hierarchy.Component.FindByName(self._edb_object, value)
332
332
  return EDBComponent(self._pedb, obj) if obj is not None else None
333
333
 
334
- def find_primitive(self, layer_name: Union[str, list]) -> list:
334
+ def find_primitive(
335
+ self, layer_name: Union[str, list] = None, name: Union[str, list] = None, net_name: Union[str, list] = None
336
+ ) -> list:
335
337
  """Find a primitive objects by layer name.
336
338
 
337
339
  Parameters
338
340
  ----------
339
- layer_name : str, list
341
+ layer_name : str, list, optional
340
342
  Name of the layer.
343
+ name : str, list, optional
344
+ Name of the primitive
345
+ net_name : str, list, optional
346
+ Name of the primitive
341
347
  Returns
342
348
  -------
343
349
  list
344
350
  """
345
- layer_name = layer_name if isinstance(layer_name, list) else [layer_name]
346
- return [i for i in self.primitives if i.layer_name in layer_name]
351
+ if layer_name is not None:
352
+ layer_name = layer_name if isinstance(layer_name, list) else [layer_name]
353
+ if name is not None:
354
+ name = name if isinstance(name, list) else [name]
355
+ if net_name is not None:
356
+ net_name = net_name if isinstance(net_name, list) else [net_name]
357
+
358
+ prims = self.primitives
359
+ prims = [i for i in prims if i.aedt_name in name] if name is not None else prims
360
+ prims = [i for i in prims if i.layer_name in layer_name] if layer_name is not None else prims
361
+ prims = [i for i in prims if i.net_name in net_name] if net_name is not None else prims
362
+ return prims
@@ -59,7 +59,7 @@ class EDBNetsData(NetDotNet):
59
59
  """
60
60
  from pyedb.dotnet.edb_core.cell.layout import primitive_cast
61
61
 
62
- return [primitive_cast(self._app, i) for i in self.net_object.Primitives]
62
+ return [primitive_cast(self._app, i) for i in self.net_object.Primitives if i]
63
63
  # return [self._app.layout.find_object_by_id(i.GetId()) for i in self.net_object.Primitives]
64
64
 
65
65
  @property
@@ -24,6 +24,8 @@ from collections import OrderedDict
24
24
  import math
25
25
  import warnings
26
26
 
27
+ import numpy as np
28
+
27
29
  from pyedb.dotnet.clr_module import String
28
30
  from pyedb.dotnet.edb_core.cell.primitive.primitive import Primitive
29
31
  from pyedb.dotnet.edb_core.dotnet.database import PolygonDataDotNet
@@ -1247,10 +1249,50 @@ class EDBPadstackInstance(Primitive):
1247
1249
 
1248
1250
  return self._pedb.create_port(terminal, ref_terminal, is_circuit_port)
1249
1251
 
1250
- def _set_equipotential(self):
1252
+ def _set_equipotential(self, contact_radius=None, inline=False, num_of_contact=1):
1251
1253
  """Workaround solution. Remove when EDBAPI bug is fixed for dcir_equipotential_region."""
1252
1254
  pad = self.definition.pad_by_layer[self.start_layer]
1253
- if pad.shape.lower() == "circle":
1255
+
1256
+ pos_x, pos_y = self.position
1257
+ comp_rotation = self._pedb.edb_value(self.component.rotation).ToDouble() % 3.141592653589793
1258
+
1259
+ if contact_radius is not None:
1260
+ if num_of_contact == 1:
1261
+ prim = self._pedb.modeler.create_circle(pad.layer_name, pos_x, pos_y, contact_radius, self.net_name)
1262
+ prim.dcir_equipotential_region = True
1263
+ else:
1264
+ if pad.shape.lower() in ["rectangle", "oval"]:
1265
+ width, height = pad.parameters_values[0:2]
1266
+ radius = self._pedb.edb_value(contact_radius).ToDouble()
1267
+ else:
1268
+ return
1269
+
1270
+ if inline is False:
1271
+ x_offset = width / 2 - radius if comp_rotation == 0 else height / 2 - radius
1272
+ y_offset = height / 2 - radius if comp_rotation == 0 else width / 2 - radius
1273
+ positions = []
1274
+ for x, y in [[1, 1], [-1, 1], [1, -1], [-1, -1]]:
1275
+ positions.append([x_offset * x, y_offset * y])
1276
+ else:
1277
+ if width > height:
1278
+ offset = (width - radius * 2) / (num_of_contact - 1)
1279
+ else:
1280
+ offset = (height - radius * 2) / (num_of_contact - 1)
1281
+
1282
+ start_pos = (num_of_contact - 1) / 2
1283
+ offset = [offset * i for i in np.arange(start_pos * -1, start_pos + 1)]
1284
+
1285
+ if (width > height and comp_rotation == 0) or (width < height and comp_rotation != 0):
1286
+ positions = list(zip(offset, [0] * num_of_contact))
1287
+ else:
1288
+ positions = list(zip([0] * num_of_contact, offset))
1289
+
1290
+ for x, y in positions:
1291
+ prim = self._pedb.modeler.create_circle(pad.layer_name, pos_x + x, pos_y + y, radius, self.net_name)
1292
+ prim.dcir_equipotential_region = True
1293
+ return
1294
+
1295
+ elif pad.shape.lower() == "circle":
1254
1296
  ra = self._pedb.edb_value(pad.parameters_values[0] / 2)
1255
1297
  pos = self.position
1256
1298
  prim = self._pedb.modeler.create_circle(pad.layer_name, pos[0], pos[1], ra, self.net_name)
@@ -1265,9 +1307,16 @@ class EDBPadstackInstance(Primitive):
1265
1307
  center_point=self.position,
1266
1308
  rotation=self.component.rotation,
1267
1309
  )
1268
-
1310
+ elif pad.shape.lower() == "oval":
1311
+ width, height, _ = pad.parameters_values
1312
+ prim = self._pedb.modeler.create_circle(
1313
+ pad.layer_name, self.position[0], self.position[1], height / 2, self.net_name
1314
+ )
1269
1315
  elif pad.polygon_data:
1270
- prim = self._pedb.modeler.create_polygon(pad.polygon_data, self.start_layer, net_name=self.net_name)
1316
+ prim = self._pedb.modeler.create_polygon(
1317
+ pad.polygon_data._edb_object, self.start_layer, net_name=self.net_name
1318
+ )
1319
+ prim.move(self.position)
1271
1320
  else:
1272
1321
  return
1273
1322
  prim.dcir_equipotential_region = True
@@ -1579,7 +1628,7 @@ class EDBPadstackInstance(Primitive):
1579
1628
  layer_list = []
1580
1629
  start_layer_name = start_layer.GetName()
1581
1630
  stop_layer_name = stop_layer.GetName()
1582
- for layer_name in list(self._pedb.stackup.layers.keys()):
1631
+ for layer_name in list(self._pedb.stackup.signal_layers.keys()):
1583
1632
  if started:
1584
1633
  layer_list.append(layer_name)
1585
1634
  if layer_name == stop_layer_name or layer_name == start_layer_name:
@@ -19,6 +19,7 @@
19
19
  # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
+ from typing import Union
22
23
 
23
24
  from pyedb.dotnet.edb_core.general import convert_py_list_to_net_list
24
25
  from pyedb.dotnet.edb_core.geometry.point_data import PointData
@@ -128,3 +129,7 @@ class PolygonData:
128
129
  arcs = convert_py_list_to_net_list(arcs)
129
130
  poly = self._edb_object.CreateFromArcs(arcs, flag)
130
131
  return PolygonData(self._pedb, poly)
132
+
133
+ def point_in_polygon(self, x: Union[str, float], y: Union[str, float]) -> bool:
134
+ """Determines whether a point is inside the polygon."""
135
+ return self._edb_object.PointInPolygon(self._pedb.point_data(x, y))
@@ -661,8 +661,7 @@ class Modeler(object):
661
661
  else:
662
662
  polygonData = main_shape
663
663
  if not polygonData or polygonData.IsNull():
664
- self._logger.error("Failed to create main shape polygon data")
665
- return False
664
+ raise RuntimeError("Failed to create main shape polygon data")
666
665
  for void in voids:
667
666
  if isinstance(void, list):
668
667
  void = self.Shape("polygon", points=void)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes