ansys-edb-core 0.3.0.dev8__tar.gz → 0.3.0.dev9__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.
Files changed (242) hide show
  1. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/.github/workflows/ci_cd.yml +0 -13
  2. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/PKG-INFO +2 -3
  3. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/pyproject.toml +2 -3
  4. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/ic_component_property.py +2 -2
  5. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/io_component_property.py +1 -1
  6. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/package_def.py +2 -2
  7. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/geometry/polygon_data.py +5 -1
  8. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/rpc_response_map.py +3 -0
  9. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout/layout.py +10 -10
  10. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout_instance/layout_instance.py +7 -13
  11. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/primitive_instance_collection.py +9 -2
  12. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/session.py +11 -2
  13. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/io_manager.py +41 -2
  14. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/test_rpc_executor.py +0 -179
  15. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/.flake8 +0 -0
  16. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/.github/CODEOWNERS +0 -0
  17. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/.github/dependabot.yml +0 -0
  18. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/.github/workflows/template.yml +0 -0
  19. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/.gitignore +0 -0
  20. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/.pre-commit-config.yaml +0 -0
  21. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/AUTHORS +0 -0
  22. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/CMakeLists.txt +0 -0
  23. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/CODE_OF_CONDUCT.md +0 -0
  24. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/CONTRIBUTING.md +0 -0
  25. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/CONTRIBUTORS.md +0 -0
  26. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/LICENSE +0 -0
  27. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/README.rst +0 -0
  28. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/deps/IEDB_RPC_Services.h +0 -0
  29. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/deps/rpc_executor.h +0 -0
  30. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/deps/rpc_executor_bindings.cpp +0 -0
  31. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/.vale.ini +0 -0
  32. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/Makefile +0 -0
  33. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/make.bat +0 -0
  34. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/_static/README.md +0 -0
  35. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/_templates/README.md +0 -0
  36. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/_templates/sidebar-nav-bs.html +0 -0
  37. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/database.rst +0 -0
  38. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/definition.rst +0 -0
  39. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/geometry.rst +0 -0
  40. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/glossary.rst +0 -0
  41. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/hierarchy.rst +0 -0
  42. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/index.rst +0 -0
  43. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/layer.rst +0 -0
  44. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/layout.rst +0 -0
  45. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/layout_instance.rst +0 -0
  46. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/net.rst +0 -0
  47. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/primitive.rst +0 -0
  48. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/release_notes.rst +0 -0
  49. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/session.rst +0 -0
  50. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/simulation_setup.rst +0 -0
  51. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/terminal.rst +0 -0
  52. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/api/utility.rst +0 -0
  53. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/conf.py +0 -0
  54. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/contribute.rst +0 -0
  55. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/examples/index.rst +0 -0
  56. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/getting_started/index.rst +0 -0
  57. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/index.rst +0 -0
  58. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/source/user_guide/index.rst +0 -0
  59. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/styles/.gitignore +0 -0
  60. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/styles/config/vocabularies/ANSYS/accept.txt +0 -0
  61. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/doc/styles/config/vocabularies/ANSYS/reject.txt +0 -0
  62. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/3d_comp_placement.ipynb +0 -0
  63. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/Cutout_region.ipynb +0 -0
  64. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/Define_and_assign_bondwire_profiles.ipynb +0 -0
  65. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/Move_geometry_from_existing_layer_to_new_layer.ipynb +0 -0
  66. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/PolygonOperations.ipynb +0 -0
  67. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/Remove_all_geometry_and_layers_below_L2.ipynb +0 -0
  68. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/assign_ds_model.aedb/edb.def +0 -0
  69. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/assign_ds_model.ipynb +0 -0
  70. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/change_capacitor_models.aedb/edb.def +0 -0
  71. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/change_capacitor_models.aedb/stride/model.index +0 -0
  72. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/change_capacitor_models.ipynb +0 -0
  73. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/fixtures/3d_comp_placement/3d_comp_placement.a3dcomp +0 -0
  74. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/helpers/example_setup.ipynb +0 -0
  75. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/helpers/example_teardown.ipynb +0 -0
  76. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/helpers/plot.ipynb +0 -0
  77. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/stackup_export.aedb/edb.def +0 -0
  78. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/stackup_export.ipynb +0 -0
  79. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/notebooks/template.ipynb +0 -0
  80. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/scripts/bootstrap.ps1 +0 -0
  81. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/scripts/bootstrap.sh +0 -0
  82. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/scripts/cleanipynb.py +0 -0
  83. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/scripts/proto_parser/generate_rpc_info.py +0 -0
  84. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/scripts/proto_parser/parse_protos.sh +0 -0
  85. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/__init__.py +0 -0
  86. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/database.py +0 -0
  87. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/__init__.py +0 -0
  88. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/bondwire_def.py +0 -0
  89. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/component_def.py +0 -0
  90. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/component_model.py +0 -0
  91. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/component_pin.py +0 -0
  92. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/component_property.py +0 -0
  93. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/dataset_def.py +0 -0
  94. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/debye_model.py +0 -0
  95. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/die_property.py +0 -0
  96. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/dielectric_material_model.py +0 -0
  97. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/djordjecvic_sarkar_model.py +0 -0
  98. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/material_def.py +0 -0
  99. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/material_property_thermal_modifier.py +0 -0
  100. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/multipole_debye_model.py +0 -0
  101. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/padstack_def.py +0 -0
  102. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/padstack_def_data.py +0 -0
  103. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/port_property.py +0 -0
  104. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/rlc_component_property.py +0 -0
  105. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/solder_ball_property.py +0 -0
  106. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/definition/technology_def.py +0 -0
  107. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/edb_defs.py +0 -0
  108. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/geometry/__init__.py +0 -0
  109. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/geometry/arc_data.py +0 -0
  110. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/geometry/point3d_data.py +0 -0
  111. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/geometry/point_data.py +0 -0
  112. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/geometry/r_tree.py +0 -0
  113. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/geometry/triangle3d_data.py +0 -0
  114. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/__init__.py +0 -0
  115. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/cell_instance.py +0 -0
  116. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/component_group.py +0 -0
  117. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/group.py +0 -0
  118. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/hierarchy_obj.py +0 -0
  119. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/inst_array.py +0 -0
  120. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/layout_component.py +0 -0
  121. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/model.py +0 -0
  122. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/netlist_model.py +0 -0
  123. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/pin_group.py +0 -0
  124. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/pin_pair_model.py +0 -0
  125. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/sparameter_model.py +0 -0
  126. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/spice_model.py +0 -0
  127. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/structure3d.py +0 -0
  128. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/hierarchy/via_group.py +0 -0
  129. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/__init__.py +0 -0
  130. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/base.py +0 -0
  131. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/conn_obj.py +0 -0
  132. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/decorators.py +0 -0
  133. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/edb_logging.py +0 -0
  134. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/exceptions.py +0 -0
  135. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/factory.py +0 -0
  136. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/interceptors.py +0 -0
  137. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/layout_obj.py +0 -0
  138. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/messages.py +0 -0
  139. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/parser.py +0 -0
  140. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/rpc_info.py +0 -0
  141. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/rpc_info_utils.py +0 -0
  142. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/utils.py +0 -0
  143. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/inner/variable_server.py +0 -0
  144. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layer/__init__.py +0 -0
  145. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layer/layer.py +0 -0
  146. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layer/layer_collection.py +0 -0
  147. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layer/stackup_layer.py +0 -0
  148. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layer/via_layer.py +0 -0
  149. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout/__init__.py +0 -0
  150. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout/cell.py +0 -0
  151. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout/mcad_model.py +0 -0
  152. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout/voltage_regulator.py +0 -0
  153. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout_instance/__init__.py +0 -0
  154. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout_instance/layout_instance_context.py +0 -0
  155. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout_instance/layout_obj_instance.py +0 -0
  156. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout_instance/layout_obj_instance_2d_geometry.py +0 -0
  157. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout_instance/layout_obj_instance_3d_geometry.py +0 -0
  158. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/layout_instance/layout_obj_instance_geometry.py +0 -0
  159. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/net/__init__.py +0 -0
  160. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/net/differential_pair.py +0 -0
  161. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/net/extended_net.py +0 -0
  162. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/net/net.py +0 -0
  163. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/net/net_class.py +0 -0
  164. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/__init__.py +0 -0
  165. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/board_bend_def.py +0 -0
  166. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/bondwire.py +0 -0
  167. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/circle.py +0 -0
  168. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/padstack_instance.py +0 -0
  169. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/path.py +0 -0
  170. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/polygon.py +0 -0
  171. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/primitive.py +0 -0
  172. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/rectangle.py +0 -0
  173. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/primitive/text.py +0 -0
  174. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/__init__.py +0 -0
  175. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/adaptive_solutions.py +0 -0
  176. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/hfss_pi_simulation_settings.py +0 -0
  177. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/hfss_pi_simulation_setup.py +0 -0
  178. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/hfss_simulation_settings.py +0 -0
  179. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/hfss_simulation_setup.py +0 -0
  180. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/mesh_operation.py +0 -0
  181. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/q3d_simulation_settings.py +0 -0
  182. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/q3d_simulation_setup.py +0 -0
  183. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/raptor_x_simulation_settings.py +0 -0
  184. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/raptor_x_simulation_setup.py +0 -0
  185. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/simulation_settings.py +0 -0
  186. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/simulation_setup.py +0 -0
  187. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/siwave_dcir_simulation_settings.py +0 -0
  188. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/siwave_dcir_simulation_setup.py +0 -0
  189. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/siwave_psi_simulation_settings.py +0 -0
  190. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/siwave_psi_simulation_setup.py +0 -0
  191. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/siwave_simulation_settings.py +0 -0
  192. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/simulation_setup/siwave_simulation_setup.py +0 -0
  193. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/__init__.py +0 -0
  194. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/bundle_terminal.py +0 -0
  195. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/edge_terminal.py +0 -0
  196. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/padstack_instance_terminal.py +0 -0
  197. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/pin_group_terminal.py +0 -0
  198. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/point_terminal.py +0 -0
  199. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/terminal.py +0 -0
  200. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/terminal_instance.py +0 -0
  201. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/terminal/terminal_instance_terminal.py +0 -0
  202. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/typing/__init__.py +0 -0
  203. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/__init__.py +0 -0
  204. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/conversions.py +0 -0
  205. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/edb_error_manager.py +0 -0
  206. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/heat_sink.py +0 -0
  207. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/hfss_extent_info.py +0 -0
  208. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/layer_map.py +0 -0
  209. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/material_property_thermal_modifier_params.py +0 -0
  210. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/port_post_processing_prop.py +0 -0
  211. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/rlc.py +0 -0
  212. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/temperature_settings.py +0 -0
  213. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/touchstone_export_settings.py +0 -0
  214. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/transform.py +0 -0
  215. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/transform3d.py +0 -0
  216. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys/edb/core/utility/value.py +0 -0
  217. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys_edb_core_preload.pth +0 -0
  218. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/src/ansys_edb_core_preload.py +0 -0
  219. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/conftest.py +0 -0
  220. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/integration_tests/test_padstack.py +0 -0
  221. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/integration_tests/test_siwave_simulation_setup.py +0 -0
  222. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/integration_tests/test_spiral_inductor.py +0 -0
  223. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/scratch/io_performance_scratch.py +0 -0
  224. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/scratch/sim_setup_scratch.py +0 -0
  225. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/scratch/test_board_bend_def.py +0 -0
  226. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/scratch/test_component_property.py +0 -0
  227. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/scratch/test_power_module.py +0 -0
  228. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/scratch/test_value.py +0 -0
  229. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/settings.py +0 -0
  230. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/unit_tests/test_cell.py +0 -0
  231. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/unit_tests/test_edge_terminal.py +0 -0
  232. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/unit_tests/test_layer_collection.py +0 -0
  233. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/e2e/unit_tests/test_session.py +0 -0
  234. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/test_arc_data.py +0 -0
  235. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/test_database.py +0 -0
  236. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/test_metadata.py +0 -0
  237. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/test_point_data.py +0 -0
  238. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/test_terminals.py +0 -0
  239. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/utils/__init__.py +0 -0
  240. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/utils/fixtures.py +0 -0
  241. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tests/mock/utils/test_utils.py +0 -0
  242. {ansys_edb_core-0.3.0.dev8 → ansys_edb_core-0.3.0.dev9}/tox.ini +0 -0
@@ -133,19 +133,6 @@ jobs:
133
133
  steps:
134
134
  - name: Install Git and checkout project
135
135
  uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
136
- - name: Select manylinux image (fallback if quay is down)
137
- shell: bash
138
- run: |
139
- set -euo pipefail
140
- QUAY="quay.io/pypa/manylinux_2_28_x86_64"
141
- GHCR="ghcr.io/pypa/manylinux_2_28_x86_64"
142
- if docker pull "${QUAY}"; then
143
- echo "CIBW_MANYLINUX_X86_64_IMAGE=${QUAY}" >> "$GITHUB_ENV"
144
- else
145
- echo "Quay pull failed; trying GHCR mirror..."
146
- docker pull "${GHCR}"
147
- echo "CIBW_MANYLINUX_X86_64_IMAGE=${GHCR}" >> "$GITHUB_ENV"
148
- fi
149
136
  - name: Build manylinux wheels with cibuildwheel
150
137
  uses: pypa/cibuildwheel@v2.22.0
151
138
  env:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: ansys-edb-core
3
- Version: 0.3.0.dev8
3
+ Version: 0.3.0.dev9
4
4
  Summary: A python wrapper for Ansys Edb service
5
5
  Author-Email: "ANSYS, Inc." <pyansys.support@ansys.com>
6
6
  Maintainer-Email: PyAnsys developers <pyansys.maintainers@ansys.com>
@@ -40,10 +40,9 @@ Project-URL: Source, https://github.com/ansys/pyedb-core
40
40
  Project-URL: Homepage, https://github.com/ansys/pyedb-core
41
41
  Project-URL: Tracker, https://github.com/ansys/pyedb-core/issues
42
42
  Requires-Python: >=3.10
43
- Requires-Dist: ansys-api-edb==0.3.dev9
43
+ Requires-Dist: ansys-api-edb==0.3.dev10
44
44
  Requires-Dist: protobuf<5,>=3.19.3
45
45
  Requires-Dist: grpcio>=1.44.0
46
- Requires-Dist: Django>=4.2.16
47
46
  Requires-Dist: ansys-tools-common>=0.3.1
48
47
  Provides-Extra: notebook
49
48
  Requires-Dist: notebook; extra == "notebook"
@@ -5,7 +5,7 @@ build-backend = "scikit_build_core.build"
5
5
  [project]
6
6
  # Check https://flit.readthedocs.io/en/latest/pyproject_toml.html for all available sections
7
7
  name = "ansys-edb-core"
8
- version = "0.3.0.dev8"
8
+ version = "0.3.0.dev9"
9
9
  description = "A python wrapper for Ansys Edb service"
10
10
  readme = "README.rst"
11
11
  requires-python = ">=3.10"
@@ -26,10 +26,9 @@ classifiers = [
26
26
 
27
27
 
28
28
  dependencies = [
29
- "ansys-api-edb==0.3.dev9",
29
+ "ansys-api-edb==0.3.dev10",
30
30
  "protobuf>=3.19.3,<5",
31
31
  "grpcio>=1.44.0",
32
- "Django>=4.2.16",
33
32
  "ansys-tools-common>=0.3.1"
34
33
  ]
35
34
 
@@ -4,8 +4,8 @@ from __future__ import annotations
4
4
  from typing import TYPE_CHECKING
5
5
 
6
6
  if TYPE_CHECKING:
7
- from src.ansys.edb.core.definition.die_property import DieProperty
8
- from src.ansys.edb.core.definition.solder_ball_property import SolderBallProperty
7
+ from ansys.edb.core.definition.die_property import DieProperty
8
+ from ansys.edb.core.definition.solder_ball_property import SolderBallProperty
9
9
 
10
10
  from ansys.api.edb.v1.ic_component_property_pb2_grpc import ICComponentPropertyServiceStub
11
11
  import google.protobuf.empty_pb2 as empty_pb2
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
5
5
 
6
6
  if TYPE_CHECKING:
7
7
  from ansys.edb.core.definition.port_property import PortProperty
8
- from src.ansys.edb.core.definition.solder_ball_property import SolderBallProperty
8
+ from ansys.edb.core.definition.solder_ball_property import SolderBallProperty
9
9
 
10
10
  from ansys.api.edb.v1.io_component_property_pb2_grpc import IOComponentPropertyServiceStub
11
11
  import google.protobuf.empty_pb2 as empty_pb2
@@ -6,8 +6,8 @@ from typing import TYPE_CHECKING, List
6
6
  if TYPE_CHECKING:
7
7
  from ansys.edb.core.typing import ValueLike
8
8
  from ansys.edb.core.database import Database
9
- from src.ansys.edb.core.geometry.polygon_data import PolygonData
10
- from src.ansys.edb.core.database import ProductIdType
9
+ from ansys.edb.core.geometry.polygon_data import PolygonData
10
+ from ansys.edb.core.database import ProductIdType
11
11
 
12
12
  from ansys.api.edb.v1 import package_def_pb2_grpc
13
13
 
@@ -18,6 +18,7 @@ from ansys.edb.core import session
18
18
  from ansys.edb.core.geometry.arc_data import ArcData
19
19
  from ansys.edb.core.inner import messages, parser
20
20
  from ansys.edb.core.inner.utils import client_stream_iterator
21
+ from ansys.edb.core.session import is_in_memory
21
22
  from ansys.edb.core.utility import conversions
22
23
 
23
24
 
@@ -438,7 +439,10 @@ class PolygonData:
438
439
  -------
439
440
  tuple of (.PointData, .PointData)
440
441
  """
441
- return cls.__stub.GetBBox(messages.polygon_data_list_message(polygons))
442
+ if is_in_memory():
443
+ return cls.__stub.GetBBox(messages.polygon_data_list_message(polygons))
444
+ else:
445
+ return cls.__stub.GetStreamedBBox(PolygonData._polygon_data_request_iterator(polygons))
442
446
 
443
447
  @parser.to_circle
444
448
  def bounding_circle(self) -> tuple[PointData, Value]:
@@ -736,6 +736,7 @@ rpc_response_map = {
736
736
  "GetLayoutObjInstanceInContext": EDBObjMessage,
737
737
  "GetConnectedObjects": EDBObjCollectionMessage,
738
738
  "StreamConnectedObjects": EDBObjCollectionMessage,
739
+ "StreamLayoutObjInstancesQueryUnary": LayoutObjInstancesQueryResultsMessage,
739
740
  },
740
741
  "ansys.api.edb.v1.LayoutInstanceContextService": {
741
742
  "GetLayout": EDBObjMessage,
@@ -1069,6 +1070,8 @@ rpc_response_map = {
1069
1070
  "SetPositions": Empty,
1070
1071
  "GetInstantiatedGeometry": PolygonDataListMessage,
1071
1072
  "Decompose": Empty,
1073
+ "CreateUnary": EDBObjMessage,
1074
+ "SetPositionsUnary": Empty,
1072
1075
  },
1073
1076
  "ansys.api.edb.v1.Q3DGeneralSettingsService": {
1074
1077
  "GetSolutionFrequency": StringValue,
@@ -11,16 +11,16 @@ if TYPE_CHECKING:
11
11
  from ansys.edb.core.utility.value import Value
12
12
 
13
13
  LayerListLike = Union[LayerLike, List[LayerLike]]
14
- from src.ansys.edb.core.hierarchy.cell_instance import CellInstance
15
- from src.ansys.edb.core.hierarchy.group import Group
16
- from src.ansys.edb.core.hierarchy.pin_group import PinGroup
17
- from src.ansys.edb.core.layout.voltage_regulator import VoltageRegulator
18
- from src.ansys.edb.core.layout_instance.layout_instance import LayoutInstance
19
- from src.ansys.edb.core.net.differential_pair import DifferentialPair
20
- from src.ansys.edb.core.net.extended_net import ExtendedNet
21
- from src.ansys.edb.core.net.net_class import NetClass
22
- from src.ansys.edb.core.primitive.padstack_instance import PadstackInstance
23
- from src.ansys.edb.core.terminal.terminal import Terminal
14
+ from ansys.edb.core.hierarchy.cell_instance import CellInstance
15
+ from ansys.edb.core.hierarchy.group import Group
16
+ from ansys.edb.core.hierarchy.pin_group import PinGroup
17
+ from ansys.edb.core.layout.voltage_regulator import VoltageRegulator
18
+ from ansys.edb.core.layout_instance.layout_instance import LayoutInstance
19
+ from ansys.edb.core.net.differential_pair import DifferentialPair
20
+ from ansys.edb.core.net.extended_net import ExtendedNet
21
+ from ansys.edb.core.net.net_class import NetClass
22
+ from ansys.edb.core.primitive.padstack_instance import PadstackInstance
23
+ from ansys.edb.core.terminal.terminal import Terminal
24
24
 
25
25
  from enum import Enum
26
26
 
@@ -20,7 +20,7 @@ from ansys.edb.core.inner.messages import (
20
20
  )
21
21
  from ansys.edb.core.inner.utils import client_stream_iterator
22
22
  from ansys.edb.core.layout_instance import layout_obj_instance
23
- from ansys.edb.core.session import LayoutInstanceServiceStub, StubAccessor, StubType
23
+ from ansys.edb.core.session import LayoutInstanceServiceStub, StubAccessor, StubType, is_in_memory
24
24
 
25
25
 
26
26
  class LayoutInstance(ObjBase):
@@ -98,28 +98,22 @@ class LayoutInstance(ObjBase):
98
98
  "layer_filter": to_msg_filter_list(layer_filter, layer_ref_message),
99
99
  "net_filter": to_msg_filter_list(net_filter, net_ref_message),
100
100
  }
101
- has_single_spatial_filter = spatial_filter is not None and not isinstance(
102
- spatial_filter, list
103
- )
104
- if has_single_spatial_filter:
105
- spatial_filter_msg_params = get_spatial_filter_msg_params(spatial_filter)
106
- lyt_inst_net_filter_lyr_filter_params[
107
- spatial_filter_msg_params[0]
108
- ] = spatial_filter_msg_params[1]
109
101
  requests = [
110
102
  layout_instance_pb2.LayoutObjInstancesQueryMessage(
111
103
  **lyt_inst_net_filter_lyr_filter_params
112
104
  )
113
105
  ]
114
106
  has_spatial_filter = spatial_filter is not None
115
- if has_spatial_filter and not has_single_spatial_filter:
107
+ if has_spatial_filter:
116
108
  for sf in utils.ensure_is_list(spatial_filter):
117
109
  requests.append(spatial_filter_to_msg(sf))
118
110
 
119
111
  all_hits = []
120
-
121
- if len(requests) == 1:
122
- for hit in self.__stub.QueryLayoutObjInstances(requests[0]).query_results:
112
+ if is_in_memory():
113
+ queries_msg = layout_instance_pb2.LayoutObjInstancesQueriesMessage(
114
+ queries=requests,
115
+ )
116
+ for hit in self.__stub.StreamLayoutObjInstancesQueryUnary(queries_msg).query_results:
123
117
  all_hits.append(hit)
124
118
  else:
125
119
  for hits_chunk in self.__stub.StreamLayoutObjInstancesQuery(
@@ -20,7 +20,7 @@ from ansys.edb.core.inner.layout_obj import LayoutObj
20
20
  import ansys.edb.core.inner.messages as messages
21
21
  from ansys.edb.core.inner.parser import msg_to_point_data, msg_to_polygon_data, to_polygon_data
22
22
  from ansys.edb.core.inner.utils import client_stream_iterator, stream_items_from_server
23
- from ansys.edb.core.session import StubAccessor, StubType
23
+ from ansys.edb.core.session import StubAccessor, StubType, is_in_memory
24
24
 
25
25
 
26
26
  class PrimitiveInstanceCollection(LayoutObj):
@@ -79,6 +79,9 @@ class PrimitiveInstanceCollection(LayoutObj):
79
79
  layer=messages.layer_ref_message(layer),
80
80
  geometry=messages.polygon_data_message(geometry),
81
81
  )
82
+ if is_in_memory():
83
+ chunk.points.points.extend(messages.point_message(pt) for pt in positions)
84
+ return PrimitiveInstanceCollection(cls.__stub.CreateUnary(chunk))
82
85
  return PrimitiveInstanceCollection(
83
86
  cls.__stub.Create(cls._point_request_iterator(positions, chunk))
84
87
  )
@@ -103,7 +106,11 @@ class PrimitiveInstanceCollection(LayoutObj):
103
106
  @positions.setter
104
107
  def positions(self, positions: List[PointData]):
105
108
  chunk = PrimitiveInstanceCollectionDataMessage(lyt_or_prim_inst_col=self.msg)
106
- self.__stub.SetPositions(self._point_request_iterator(positions, chunk))
109
+ if is_in_memory():
110
+ chunk.points.points.extend(messages.point_message(pt) for pt in positions)
111
+ self.__stub.SetPositionsUnary(chunk)
112
+ else:
113
+ self.__stub.SetPositions(self._point_request_iterator(positions, chunk))
107
114
 
108
115
  @property
109
116
  def instantiated_geometry(self) -> List[PolygonData]:
@@ -159,7 +159,6 @@ from ansys.api.edb.v1.solder_ball_property_pb2_grpc import SolderBallPropertySer
159
159
  from ansys.api.edb.v1.spice_model_pb2_grpc import SpiceModelServiceStub
160
160
  from ansys.api.edb.v1.stackup_layer_pb2_grpc import StackupLayerServiceStub
161
161
  from ansys.api.edb.v1.structure_3d_pb2_grpc import Structure3DServiceStub
162
- from ansys.api.edb.v1.technology_def_pb2_grpc import TechnologyDefServiceStub
163
162
  from ansys.api.edb.v1.term_inst_pb2_grpc import TerminalInstanceServiceStub
164
163
  from ansys.api.edb.v1.term_inst_term_pb2_grpc import TerminalInstanceTerminalServiceStub
165
164
  from ansys.api.edb.v1.term_pb2_grpc import TerminalServiceStub
@@ -473,7 +472,6 @@ class StubType(Enum):
473
472
  rectangle = RectangleServiceStub
474
473
  via_group = ViaGroupServiceStub
475
474
  circle = CircleServiceStub
476
- technology = TechnologyDefServiceStub
477
475
  text = TextServiceStub
478
476
  terminal = TerminalServiceStub
479
477
  terminal_instance = TerminalInstanceServiceStub
@@ -743,6 +741,17 @@ def get_variable_server_stub() -> VariableServerServiceStub:
743
741
  return StubAccessor(StubType.variable_server).__get__()
744
742
 
745
743
 
744
+ def is_in_memory() -> bool:
745
+ """Check if the active session is operating in in-memory mode.
746
+
747
+ Returns
748
+ -------
749
+ bool
750
+ ``True`` if the current session is an in-memory session, ``False`` otherwise.
751
+ """
752
+ return MOD.current_session is not None and MOD.current_session.in_memory
753
+
754
+
746
755
  def _ensure_session(
747
756
  ansys_em_root: str,
748
757
  port_num: int,
@@ -3,11 +3,13 @@ import abc
3
3
  from collections import defaultdict
4
4
  from contextlib import contextmanager
5
5
  from enum import Enum, Flag, auto
6
+ from importlib import import_module
7
+ import re
6
8
  from sys import modules
9
+ from typing import Any as AnyType
7
10
 
8
11
  from ansys.api.edb.v1.edb_messages_pb2 import EDBObjCollectionMessage, EDBObjMessage
9
12
  from ansys.api.edb.v1.io_manager_pb2 import BufferEntryMessage, BufferMessage
10
- from django.utils.module_loading import import_string
11
13
  from google.protobuf.any_pb2 import Any
12
14
  from google.protobuf.empty_pb2 import Empty
13
15
 
@@ -32,6 +34,43 @@ def _get_io_manager_stub():
32
34
  return StubAccessor(StubType.io_manager).__get__()
33
35
 
34
36
 
37
+ _DOTTED_NAME_PATTERN = re.compile(r"^[a-zA-Z_][a-zA-Z0-9_]*(\.([a-zA-Z_][a-zA-Z0-9_]*))+$")
38
+
39
+
40
+ def _import_attribute_from_module(dotted_path: str) -> AnyType:
41
+ """
42
+ Import a module attribute given its dotted path.
43
+
44
+ Modeled after Django's import_string function.
45
+
46
+ Parameters
47
+ ----------
48
+ dotted_path : str
49
+ The dotted path to the attribute to import.
50
+
51
+ Returns
52
+ -------
53
+ AnyType
54
+ The imported attribute.
55
+
56
+ Raises
57
+ ------
58
+ ImportError
59
+ If the module cannot be imported or the attribute does not exist.
60
+ """
61
+ if not _DOTTED_NAME_PATTERN.fullmatch(dotted_path):
62
+ raise ImportError(
63
+ f"Invalid dotted path: {dotted_path}: must be in the form "
64
+ "module[.submodules...].attribute with valid Python identifiers"
65
+ )
66
+ module_path, attribute_name = dotted_path.rsplit(".", 1)
67
+ module = import_module(module_path)
68
+ try:
69
+ return getattr(module, attribute_name)
70
+ except AttributeError as ex:
71
+ raise ImportError(f"Module '{module_path}' does not define '{attribute_name}'") from ex
72
+
73
+
35
74
  class _HijackedOutcome:
36
75
  def __init__(self, result):
37
76
  self._result = result
@@ -90,7 +129,7 @@ class _Cache(_IOOptimizer):
90
129
  + "_pb2"
91
130
  + msg_type_name[insertion_idx:]
92
131
  )
93
- msg_type = import_string(msg_class_path)
132
+ msg_type = _import_attribute_from_module(msg_class_path)
94
133
  self._msg_type_cache[msg_type_name] = msg_type
95
134
  msg = msg_type()
96
135
  any_module_msg.any.Unpack(msg)
@@ -1,179 +0,0 @@
1
- """Scratch tests for the rpc_executor C++ extension module.
2
-
3
- Run with::
4
-
5
- pytest tests/e2e/scratch/test_rpc_executor.py -v
6
-
7
- Tests that exercise the real EDB_RPC_Services library require the
8
- ``ANSYSEM_EDB_EXE_DIR`` environment variable to point to an Ansys EM install
9
- directory containing ``EDB_RPC_Services.dll`` (Windows) or
10
- ``libEDB_RPC_Services.so`` (Linux). Those tests are skipped automatically
11
- when the variable is unset.
12
-
13
- Tests that verify failure-mode behaviour (bad path, pre-initialize call) run
14
- unconditionally and do not need a real EDB install.
15
- """
16
-
17
- import sys
18
- #sys.path.append(r"/srv/dmiller/installations/ansys_inc/v261_02_02_2026/AnsysEM")
19
-
20
- import os
21
-
22
- import pytest
23
- import rpc_executor
24
-
25
- # ---------------------------------------------------------------------------
26
- # Helpers
27
- # ---------------------------------------------------------------------------
28
-
29
- EDB_EXE_DIR = os.environ.get("ANSYSEM_ROOT261")
30
-
31
- requires_install = pytest.mark.skipif(
32
- not EDB_EXE_DIR,
33
- reason="ANSYSEM_EDB_EXE_DIR not set — skipping tests that require a real EDB install",
34
- )
35
-
36
- # ---------------------------------------------------------------------------
37
- # Tests that do NOT need a real EDB install
38
- # ---------------------------------------------------------------------------
39
-
40
-
41
- def test_module_exposes_expected_callables():
42
- """The compiled extension must expose initialize() and execute_rpc()."""
43
- assert callable(rpc_executor.initialize)
44
- assert callable(rpc_executor.execute_rpc)
45
-
46
-
47
- def test_initialize_with_nonexistent_path_returns_false():
48
- """initialize() must return False for a path that does not exist."""
49
- result = rpc_executor.initialize("/does/not/exist/at/all")
50
- assert result is False, "Expected False for a non-existent directory"
51
-
52
-
53
- def test_initialize_with_empty_string_returns_false():
54
- """initialize() must return False for an empty path."""
55
- result = rpc_executor.initialize("")
56
- assert result is False, "Expected False for an empty directory path"
57
-
58
-
59
- def test_execute_rpc_before_initialize_raises_runtime_error():
60
- """execute_rpc() must raise RuntimeError when Initialize() was never called.
61
-
62
- This test is only meaningful when run in isolation before any successful
63
- initialize() call. When ANSYSEM_EDB_EXE_DIR is set, the @requires_install
64
- tests that run before this one will have already called initialize(), so
65
- g_plugin will be non-null and this test is skipped automatically.
66
- """
67
- if EDB_EXE_DIR:
68
- pytest.skip(
69
- "ANSYSEM_EDB_EXE_DIR is set; initialize() will have already been "
70
- "called by an earlier test — g_plugin is non-null. Run this test "
71
- "file in isolation (without ANSYSEM_EDB_EXE_DIR) to exercise the "
72
- "uninitialized guard."
73
- )
74
- with pytest.raises(RuntimeError, match="not initialized"):
75
- rpc_executor.execute_rpc("SomeService", "SomeMethod", b"")
76
-
77
-
78
- # ---------------------------------------------------------------------------
79
- # Tests that require a real EDB install
80
- # ---------------------------------------------------------------------------
81
-
82
-
83
- @requires_install
84
- def test_initialize_with_valid_dir_returns_true():
85
- """initialize() must return True for a valid Ansys EM install directory."""
86
- ok = rpc_executor.initialize(EDB_EXE_DIR)
87
- assert ok, f"rpc_executor.initialize({EDB_EXE_DIR!r}) returned False"
88
-
89
-
90
- @requires_install
91
- def test_initialize_is_noop_after_first_success():
92
- """After the first successful initialize(), further calls are a no-op.
93
-
94
- The second call uses a deliberately wrong path; if Initialize() re-ran it
95
- would return False. It must return True because g_plugin is already set.
96
- """
97
- rpc_executor.initialize(EDB_EXE_DIR)
98
- ok = rpc_executor.initialize("/does/not/exist")
99
- assert ok, "Second call to initialize() should be a no-op and return True"
100
-
101
-
102
- @requires_install
103
- def test_execute_rpc_returns_three_tuple():
104
- """execute_rpc() must return a (bool, bytes, str) 3-tuple."""
105
- rpc_executor.initialize(EDB_EXE_DIR)
106
- result = rpc_executor.execute_rpc("EDBServer", "GetVersion", b"")
107
- assert isinstance(result, tuple), "execute_rpc() did not return a tuple"
108
- assert len(result) == 3, f"Expected 3-tuple, got length {len(result)}"
109
- ok, response, error = result
110
- assert isinstance(ok, bool), f"result[0] should be bool, got {type(ok)}"
111
- assert isinstance(response, bytes), f"result[1] should be bytes, got {type(response)}"
112
- assert isinstance(error, str), f"result[2] should be str, got {type(error)}"
113
-
114
-
115
- @requires_install
116
- def test_execute_rpc_serialized_request_must_be_bytes():
117
- """execute_rpc() must reject a non-bytes serialized_request argument."""
118
- rpc_executor.initialize(EDB_EXE_DIR)
119
- with pytest.raises(TypeError):
120
- rpc_executor.execute_rpc("EDBServer", "GetVersion", "not-bytes")
121
-
122
- @requires_install
123
- def test_load_edb():
124
- from ansys.edb.core.session import launch_local_session
125
- import os
126
- from ansys.edb.core.database import Database
127
- launch_local_session(EDB_EXE_DIR)
128
- #db = Database.open(r"/srv/dmiller/installations/ansys_inc/v261_02_02_2026/AnsysEM/Examples/HFSS 3D Layout/Signal Integrity/Diff_Via.aedb", True)
129
-
130
-
131
- @requires_install
132
- def test_coexistence_with_cpp_extension_libraries():
133
- """Load numpy, scipy, pandas, grpc and protobuf (all C++-backed) alongside
134
- rpc_executor and then open an EDB database to confirm that the .pth preload
135
- hook correctly establishes a compatible libstdc++.so.6 before any of these
136
- extensions can claim the system version.
137
-
138
- Each library is exercised with a minimal but real operation so we can be
139
- confident its own C extension initialised properly, not just that the module
140
- object imported without error.
141
- """
142
- # --- numpy ------------------------------------------------------------------
143
- import numpy as np
144
- arr = np.array([1.0, 2.0, 3.0])
145
- assert np.sum(arr) == 6.0, "numpy sum failed"
146
- assert arr.dtype == np.float64
147
-
148
- # --- scipy ------------------------------------------------------------------
149
- import scipy
150
- from scipy.special import expit # logistic sigmoid — exercises Cython layer
151
- result = expit(0.0)
152
- assert abs(result - 0.5) < 1e-9, f"scipy.special.expit(0) = {result}, expected 0.5"
153
-
154
- # --- pandas -----------------------------------------------------------------
155
- import pandas as pd
156
- df = pd.DataFrame({"x": [1, 2, 3], "y": [4, 5, 6]})
157
- assert list(df.columns) == ["x", "y"]
158
- assert df["x"].sum() == 6
159
-
160
- # --- grpc (cygrpc Cython extension) ----------------------------------------
161
- import grpc
162
- channel = grpc.insecure_channel("localhost:1") # not connected, just creates object
163
- assert channel is not None
164
- channel.close()
165
-
166
- # --- protobuf (upb C extension) --------------------------------------------
167
- from google.protobuf import descriptor_pool
168
- pool = descriptor_pool.Default()
169
- assert pool is not None
170
-
171
- # --- EDB database open (the core integration check) -----------------------
172
- from ansys.edb.core.session import launch_local_session
173
- from ansys.edb.core.database import Database
174
- launch_local_session(EDB_EXE_DIR)
175
- db = Database.open(
176
- r"/srv/dmiller/installations/ansys_inc/v261_02_02_2026/AnsysEM/Examples/HFSS 3D Layout/Signal Integrity/Diff_Via.aedb",
177
- True,
178
- )
179
- assert db is not None, "Database.open returned None"