pyedb 0.17.0__tar.gz → 0.18.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 (187) hide show
  1. {pyedb-0.17.0 → pyedb-0.18.0}/PKG-INFO +1 -1
  2. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/__init__.py +1 -1
  3. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb.py +90 -27
  4. {pyedb-0.17.0 → pyedb-0.18.0}/LICENSE +0 -0
  5. {pyedb-0.17.0 → pyedb-0.18.0}/README.md +0 -0
  6. {pyedb-0.17.0 → pyedb-0.18.0}/pyproject.toml +0 -0
  7. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/__init__.py +0 -0
  8. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_boundaries.py +0 -0
  9. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_common.py +0 -0
  10. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_components.py +0 -0
  11. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_data.py +0 -0
  12. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_general.py +0 -0
  13. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_nets.py +0 -0
  14. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_operations.py +0 -0
  15. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_package_definition.py +0 -0
  16. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_padstacks.py +0 -0
  17. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_pin_groups.py +0 -0
  18. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_ports_sources.py +0 -0
  19. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_s_parameter_models.py +0 -0
  20. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_setup.py +0 -0
  21. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_spice_models.py +0 -0
  22. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/cfg_stackup.py +0 -0
  23. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/configuration/configuration.py +0 -0
  24. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/__init__.py +0 -0
  25. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/application/Variables.py +0 -0
  26. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/application/__init__.py +0 -0
  27. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/clr_module.py +0 -0
  28. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/__init__.py +0 -0
  29. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/__init__.py +0 -0
  30. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/__init__.py +0 -0
  31. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/component.py +0 -0
  32. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/hierarchy_obj.py +0 -0
  33. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/model.py +0 -0
  34. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/netlist_model.py +0 -0
  35. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/pin_pair_model.py +0 -0
  36. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/s_parameter_model.py +0 -0
  37. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/hierarchy/spice_model.py +0 -0
  38. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/layout.py +0 -0
  39. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/layout_obj.py +0 -0
  40. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/primitive.py +0 -0
  41. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/terminal/__init__.py +0 -0
  42. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/terminal/bundle_terminal.py +0 -0
  43. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/terminal/edge_terminal.py +0 -0
  44. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/terminal/padstack_instance_terminal.py +0 -0
  45. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/terminal/pingroup_terminal.py +0 -0
  46. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/terminal/point_terminal.py +0 -0
  47. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/terminal/terminal.py +0 -0
  48. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/cell/voltage_regulator.py +0 -0
  49. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/components.py +0 -0
  50. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/definition/__init__.py +0 -0
  51. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/definition/component_def.py +0 -0
  52. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/definition/component_model.py +0 -0
  53. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/definition/definition_obj.py +0 -0
  54. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/definition/definitions.py +0 -0
  55. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/definition/package_def.py +0 -0
  56. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/dotnet/__init__.py +0 -0
  57. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/dotnet/database.py +0 -0
  58. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/dotnet/layout.py +0 -0
  59. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/dotnet/primitive.py +0 -0
  60. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/__init__.py +0 -0
  61. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/control_file.py +0 -0
  62. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/design_options.py +0 -0
  63. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/edbvalue.py +0 -0
  64. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/hfss_extent_info.py +0 -0
  65. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/hfss_pi_simulation_setup_data.py +0 -0
  66. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/layer_data.py +0 -0
  67. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/nets_data.py +0 -0
  68. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/padstacks_data.py +0 -0
  69. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/ports.py +0 -0
  70. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/primitives_data.py +0 -0
  71. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/raptor_x_simulation_setup_data.py +0 -0
  72. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/simulation_configuration.py +0 -0
  73. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/sources.py +0 -0
  74. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/utilities.py +0 -0
  75. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/edb_data/variables.py +0 -0
  76. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/general.py +0 -0
  77. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/geometry/__init__.py +0 -0
  78. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/geometry/point_data.py +0 -0
  79. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/geometry/polygon_data.py +0 -0
  80. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/hfss.py +0 -0
  81. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/layout.py +0 -0
  82. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/layout_validation.py +0 -0
  83. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/materials.py +0 -0
  84. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/net_class.py +0 -0
  85. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/nets.py +0 -0
  86. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/padstack.py +0 -0
  87. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/__init__.py +0 -0
  88. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/__init__.py +0 -0
  89. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/adaptive_frequency_data.py +0 -0
  90. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/mesh_operation.py +0 -0
  91. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/settings.py +0 -0
  92. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sim_setup_info.py +0 -0
  93. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/simulation_settings.py +0 -0
  94. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/siw_dc_ir_settings.py +0 -0
  95. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/data/sweep_data.py +0 -0
  96. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/__init__.py +0 -0
  97. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/sim_setup_data/io/siwave.py +0 -0
  98. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/siwave.py +0 -0
  99. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/stackup.py +0 -0
  100. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/utilities/__init__.py +0 -0
  101. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/utilities/heatsink.py +0 -0
  102. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/utilities/hfss_simulation_setup.py +0 -0
  103. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/utilities/obj_base.py +0 -0
  104. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/utilities/simulation_setup.py +0 -0
  105. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/dotnet/edb_core/utilities/siwave_simulation_setup.py +0 -0
  106. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/edb_logger.py +0 -0
  107. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/exceptions.py +0 -0
  108. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/__init__.py +0 -0
  109. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/constants.py +0 -0
  110. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/data_handlers.py +0 -0
  111. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/design_types.py +0 -0
  112. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/filesystem.py +0 -0
  113. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/general_methods.py +0 -0
  114. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/plot.py +0 -0
  115. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/process.py +0 -0
  116. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/generic/settings.py +0 -0
  117. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/__init__.py +0 -0
  118. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/bom/__init__.py +0 -0
  119. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/bom/bom.py +0 -0
  120. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/bom/bom_item.py +0 -0
  121. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/bom/characteristics.py +0 -0
  122. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/bom/refdes.py +0 -0
  123. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/__init__.py +0 -0
  124. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/color.py +0 -0
  125. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/content.py +0 -0
  126. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/dictionary_color.py +0 -0
  127. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/dictionary_fill.py +0 -0
  128. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/dictionary_line.py +0 -0
  129. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/entry_color.py +0 -0
  130. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/entry_line.py +0 -0
  131. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/fill.py +0 -0
  132. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/layer_ref.py +0 -0
  133. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/content/standard_geometries_dictionary.py +0 -0
  134. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/__init__.py +0 -0
  135. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/__init__.py +0 -0
  136. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/assembly_drawing.py +0 -0
  137. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/cad_data.py +0 -0
  138. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/component.py +0 -0
  139. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/drill.py +0 -0
  140. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/feature.py +0 -0
  141. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/layer.py +0 -0
  142. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/layer_feature.py +0 -0
  143. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/logical_net.py +0 -0
  144. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/outline.py +0 -0
  145. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/package.py +0 -0
  146. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_def.py +0 -0
  147. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_hole_def.py +0 -0
  148. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_instance.py +0 -0
  149. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/padstack_pad_def.py +0 -0
  150. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/path.py +0 -0
  151. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/phy_net.py +0 -0
  152. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/pin.py +0 -0
  153. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/polygon.py +0 -0
  154. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/profile.py +0 -0
  155. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/stackup.py +0 -0
  156. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_group.py +0 -0
  157. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/stackup_layer.py +0 -0
  158. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_data/step.py +0 -0
  159. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/cad_header.py +0 -0
  160. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/ecad.py +0 -0
  161. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ecad/spec.py +0 -0
  162. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/history_record.py +0 -0
  163. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/ipc2581.py +0 -0
  164. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/ipc2581/logistic_header.py +0 -0
  165. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/__init__.py +0 -0
  166. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/aedtlib_personalib_install.py +0 -0
  167. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/downloads.py +0 -0
  168. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/misc.py +0 -0
  169. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/pyedb.runtimeconfig.json +0 -0
  170. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/__init__.py +0 -0
  171. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/emc/__init__.py +0 -0
  172. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/emc/component_tags.py +0 -0
  173. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/emc/net_tags.py +0 -0
  174. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/emc/tag_library.py +0 -0
  175. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/emc/xml_generic.py +0 -0
  176. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/emc_rule_checker_settings.py +0 -0
  177. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/fd_xtalk_scan_config.py +0 -0
  178. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/impedance_scan_config.py +0 -0
  179. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/net.py +0 -0
  180. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/pins.py +0 -0
  181. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/scan_config.py +0 -0
  182. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/siw_feature_config/xtalk_scan/td_xtalk_config.py +0 -0
  183. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/misc/utilities.py +0 -0
  184. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/modeler/geometry_operators.py +0 -0
  185. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/siwave.py +0 -0
  186. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/siwave_core/icepak.py +0 -0
  187. {pyedb-0.17.0 → pyedb-0.18.0}/src/pyedb/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyedb
3
- Version: 0.17.0
3
+ Version: 0.18.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.17.0"
47
+ __version__ = "0.18.0"
48
48
  version = __version__
49
49
 
50
50
  #
@@ -1558,6 +1558,7 @@ class Edb(Database):
1558
1558
  reference_list=[],
1559
1559
  include_pingroups=True,
1560
1560
  pins_to_preserve=None,
1561
+ inlcude_voids_in_extents=False,
1561
1562
  ):
1562
1563
  if extent_type in [
1563
1564
  "Conforming",
@@ -1574,6 +1575,7 @@ class Edb(Database):
1574
1575
  smart_cut,
1575
1576
  reference_list,
1576
1577
  pins_to_preserve,
1578
+ inlcude_voids_in_extents=inlcude_voids_in_extents,
1577
1579
  )
1578
1580
  else:
1579
1581
  _poly = self.layout.expanded_extent(
@@ -1632,6 +1634,7 @@ class Edb(Database):
1632
1634
  smart_cutout=False,
1633
1635
  reference_list=[],
1634
1636
  pins_to_preserve=None,
1637
+ inlcude_voids_in_extents=False,
1635
1638
  ):
1636
1639
  names = []
1637
1640
  _polys = []
@@ -1649,7 +1652,7 @@ class Edb(Database):
1649
1652
 
1650
1653
  for prim in self.modeler.primitives:
1651
1654
  if prim is not None and prim.net_name in names:
1652
- _polys.append(prim.primitive_object.GetPolygonData())
1655
+ _polys.append(prim)
1653
1656
  if smart_cutout:
1654
1657
  objs_data = self._smart_cut(reference_list, expansion_size)
1655
1658
  _polys.extend(objs_data)
@@ -1658,9 +1661,33 @@ class Edb(Database):
1658
1661
  while k < 10:
1659
1662
  unite_polys = []
1660
1663
  for i in _polys:
1661
- obj_data = i.Expand(expansion_size, tolerance, round_corner, round_extension)
1664
+ if "PolygonData" not in str(i):
1665
+ obj_data = i.primitive_object.GetPolygonData().Expand(
1666
+ expansion_size, tolerance, round_corner, round_extension
1667
+ )
1668
+ else:
1669
+ obj_data = i.Expand(expansion_size, tolerance, round_corner, round_extension)
1662
1670
  if obj_data:
1663
- unite_polys.extend(list(obj_data))
1671
+ if not inlcude_voids_in_extents:
1672
+ unite_polys.extend(list(obj_data))
1673
+ else:
1674
+ voids_poly = []
1675
+ try:
1676
+ if i.HasVoids():
1677
+ area = i.area()
1678
+ for void in i.Voids:
1679
+ void_polydata = void.GetPolygonData()
1680
+ if void_polydata.Area() >= 0.05 * area:
1681
+ voids_poly.append(void_polydata)
1682
+ if voids_poly:
1683
+ obj_data = obj_data[0].Subtract(
1684
+ convert_py_list_to_net_list(list(obj_data)),
1685
+ convert_py_list_to_net_list(voids_poly),
1686
+ )
1687
+ except:
1688
+ pass
1689
+ finally:
1690
+ unite_polys.extend(list(obj_data))
1664
1691
  _poly_unite = self.edb_api.geometry.polygon_data.unite(unite_polys)
1665
1692
  if len(_poly_unite) == 1:
1666
1693
  self.logger.info("Correctly computed Extension at first iteration.")
@@ -1761,6 +1788,7 @@ class Edb(Database):
1761
1788
  preserve_components_with_model=False,
1762
1789
  simple_pad_check=True,
1763
1790
  keep_lines_as_path=False,
1791
+ include_voids_in_extents=False,
1764
1792
  ):
1765
1793
  """Create a cutout using an approach entirely based on PyAEDT.
1766
1794
  This method replaces all legacy cutout methods in PyAEDT.
@@ -1837,6 +1865,11 @@ class Edb(Database):
1837
1865
  This feature works only in Electronics Desktop (3D Layout).
1838
1866
  If the flag is set to ``True`` it can cause issues in SiWave once the Edb is imported.
1839
1867
  Default is ``False`` to generate PolygonData of cut lines.
1868
+ include_voids_in_extents : bool, optional
1869
+ Whether to compute and include voids in pyaedt extent before the cutout. Cutout time can be affected.
1870
+ It works only with Conforming cutout.
1871
+ Default is ``False`` to generate extent without voids.
1872
+
1840
1873
 
1841
1874
  Returns
1842
1875
  -------
@@ -1896,6 +1929,7 @@ class Edb(Database):
1896
1929
  use_pyaedt_extent_computing=use_pyaedt_extent_computing,
1897
1930
  check_terminals=check_terminals,
1898
1931
  include_pingroups=include_pingroups,
1932
+ inlcude_voids_in_extents=include_voids_in_extents,
1899
1933
  )
1900
1934
  else:
1901
1935
  legacy_path = self.edbpath
@@ -1929,6 +1963,7 @@ class Edb(Database):
1929
1963
  include_partial=include_partial_instances,
1930
1964
  simple_pad_check=simple_pad_check,
1931
1965
  keep_lines_as_path=keep_lines_as_path,
1966
+ inlcude_voids_in_extents=include_voids_in_extents,
1932
1967
  )
1933
1968
  if self.are_port_reference_terminals_connected():
1934
1969
  if output_aedb_path:
@@ -1969,6 +2004,7 @@ class Edb(Database):
1969
2004
  include_partial=include_partial_instances,
1970
2005
  simple_pad_check=simple_pad_check,
1971
2006
  keep_lines_as_path=keep_lines_as_path,
2007
+ inlcude_voids_in_extents=include_voids_in_extents,
1972
2008
  )
1973
2009
  if result and not open_cutout_at_end and self.edbpath != legacy_path:
1974
2010
  self.save_edb()
@@ -1990,6 +2026,7 @@ class Edb(Database):
1990
2026
  remove_single_pin_components=False,
1991
2027
  check_terminals=False,
1992
2028
  include_pingroups=True,
2029
+ inlcude_voids_in_extents=False,
1993
2030
  ):
1994
2031
  expansion_size = self.edb_value(expansion_size).ToDouble()
1995
2032
 
@@ -2010,8 +2047,14 @@ class Edb(Database):
2010
2047
  smart_cut=check_terminals,
2011
2048
  reference_list=reference_list,
2012
2049
  include_pingroups=include_pingroups,
2050
+ inlcude_voids_in_extents=inlcude_voids_in_extents,
2013
2051
  )
2014
-
2052
+ _poly1 = _poly.CreateFromArcs(_poly.GetArcData(), True)
2053
+ if inlcude_voids_in_extents:
2054
+ for hole in list(_poly.Holes):
2055
+ if hole.Area() >= 0.05 * _poly1.Area():
2056
+ _poly1.AddHole(hole)
2057
+ _poly = _poly1
2015
2058
  # Create new cutout cell/design
2016
2059
  included_nets_list = signal_list + reference_list
2017
2060
  included_nets = convert_py_list_to_net_list(
@@ -2172,6 +2215,7 @@ class Edb(Database):
2172
2215
  include_partial=False,
2173
2216
  simple_pad_check=True,
2174
2217
  keep_lines_as_path=False,
2218
+ inlcude_voids_in_extents=False,
2175
2219
  ):
2176
2220
  if is_ironpython: # pragma: no cover
2177
2221
  self.logger.error("Method working only in Cpython")
@@ -2269,11 +2313,18 @@ class Edb(Database):
2269
2313
  reference_list=reference_list,
2270
2314
  include_pingroups=include_pingroups,
2271
2315
  pins_to_preserve=pins_to_preserve,
2316
+ inlcude_voids_in_extents=inlcude_voids_in_extents,
2272
2317
  )
2273
2318
  if extent_type in ["Conforming", self.edb_api.geometry.extent_type.Conforming, 1]:
2274
2319
  if extent_defeature > 0:
2275
2320
  _poly = _poly.Defeature(extent_defeature)
2276
- _poly = _poly.CreateFromArcs(_poly.GetArcData(), True)
2321
+
2322
+ _poly1 = _poly.CreateFromArcs(_poly.GetArcData(), True)
2323
+ if inlcude_voids_in_extents:
2324
+ for hole in list(_poly.Holes):
2325
+ if hole.Area() >= 0.05 * _poly1.Area():
2326
+ _poly1.AddHole(hole)
2327
+ _poly = _poly1
2277
2328
  if not _poly or _poly.IsNull():
2278
2329
  self._logger.error("Failed to create Extent.")
2279
2330
  return []
@@ -2312,29 +2363,39 @@ class Edb(Database):
2312
2363
  pdata = prim_1.polygon_data.edb_api
2313
2364
  int_data = _poly.GetIntersectionType(pdata)
2314
2365
  if int_data == 2:
2315
- return
2366
+ if not inlcude_voids_in_extents:
2367
+ return
2368
+ skip = False
2369
+ for hole in list(_poly.Holes):
2370
+ if hole.GetIntersectionType(pdata) == 0:
2371
+ prims_to_delete.append(prim_1)
2372
+ return
2373
+ elif hole.GetIntersectionType(pdata) == 1:
2374
+ skip = True
2375
+ if skip:
2376
+ return
2316
2377
  elif int_data == 0:
2317
2378
  prims_to_delete.append(prim_1)
2318
- else:
2319
- list_poly = intersect(_poly, pdata)
2320
- if list_poly:
2321
- net = prim_1.net_name
2322
- voids = prim_1.voids
2323
- for p in list_poly:
2324
- if p.IsNull():
2325
- continue
2326
- # points = list(p.Points)
2327
- list_void = []
2328
- if voids:
2329
- voids_data = [void.polygon_data.edb_api for void in voids]
2330
- list_prims = subtract(p, voids_data)
2331
- for prim in list_prims:
2332
- if not prim.IsNull():
2333
- poly_to_create.append([prim, prim_1.layer.name, net, list_void])
2334
- else:
2335
- poly_to_create.append([p, prim_1.layer.name, net, list_void])
2379
+ return
2380
+ list_poly = intersect(_poly, pdata)
2381
+ if list_poly:
2382
+ net = prim_1.net_name
2383
+ voids = prim_1.voids
2384
+ for p in list_poly:
2385
+ if p.IsNull():
2386
+ continue
2387
+ # points = list(p.Points)
2388
+ list_void = []
2389
+ if voids:
2390
+ voids_data = [void.polygon_data.edb_api for void in voids]
2391
+ list_prims = subtract(p, voids_data)
2392
+ for prim in list_prims:
2393
+ if not prim.IsNull():
2394
+ poly_to_create.append([prim, prim_1.layer.name, net, list_void])
2395
+ else:
2396
+ poly_to_create.append([p, prim_1.layer.name, net, list_void])
2336
2397
 
2337
- prims_to_delete.append(prim_1)
2398
+ prims_to_delete.append(prim_1)
2338
2399
 
2339
2400
  def pins_clean(pinst):
2340
2401
  if not pinst.in_polygon(_poly, include_partial=include_partial, simple_check=simple_pad_check):
@@ -2350,7 +2411,9 @@ class Edb(Database):
2350
2411
  for pin in pins_to_delete:
2351
2412
  pin.delete()
2352
2413
 
2353
- self.logger.info_timer("Padstack Instances removal completed")
2414
+ self.logger.info_timer(
2415
+ "Padstack Instances removal completed. {} instances removed.".format(len(pins_to_delete))
2416
+ )
2354
2417
  self.logger.reset_timer()
2355
2418
 
2356
2419
  # with ThreadPoolExecutor(number_of_threads) as pool:
@@ -2369,7 +2432,7 @@ class Edb(Database):
2369
2432
  for prim in prims_to_delete:
2370
2433
  prim.delete()
2371
2434
 
2372
- self.logger.info_timer("Primitives cleanup completed")
2435
+ self.logger.info_timer("Primitives cleanup completed. {} primitives deleted.".format(len(prims_to_delete)))
2373
2436
  self.logger.reset_timer()
2374
2437
 
2375
2438
  i = 0
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