ansys-edb-core 0.3.0.dev7__tar.gz → 0.3.0.dev8__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 (243) hide show
  1. ansys_edb_core-0.3.0.dev8/.flake8 +7 -0
  2. ansys_edb_core-0.3.0.dev8/.github/CODEOWNERS +4 -0
  3. ansys_edb_core-0.3.0.dev8/.github/dependabot.yml +37 -0
  4. ansys_edb_core-0.3.0.dev8/.github/workflows/ci_cd.yml +241 -0
  5. ansys_edb_core-0.3.0.dev8/.github/workflows/template.yml +16 -0
  6. ansys_edb_core-0.3.0.dev8/.gitignore +173 -0
  7. ansys_edb_core-0.3.0.dev8/.pre-commit-config.yaml +68 -0
  8. ansys_edb_core-0.3.0.dev8/AUTHORS +12 -0
  9. ansys_edb_core-0.3.0.dev8/CMakeLists.txt +77 -0
  10. ansys_edb_core-0.3.0.dev8/CODE_OF_CONDUCT.md +65 -0
  11. ansys_edb_core-0.3.0.dev8/CONTRIBUTING.md +44 -0
  12. ansys_edb_core-0.3.0.dev8/CONTRIBUTORS.md +25 -0
  13. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/LICENSE +21 -21
  14. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/PKG-INFO +46 -26
  15. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/README.rst +83 -83
  16. ansys_edb_core-0.3.0.dev8/deps/IEDB_RPC_Services.h +19 -0
  17. ansys_edb_core-0.3.0.dev8/deps/rpc_executor.h +193 -0
  18. ansys_edb_core-0.3.0.dev8/deps/rpc_executor_bindings.cpp +123 -0
  19. ansys_edb_core-0.3.0.dev8/doc/.vale.ini +35 -0
  20. ansys_edb_core-0.3.0.dev8/doc/Makefile +31 -0
  21. ansys_edb_core-0.3.0.dev8/doc/make.bat +56 -0
  22. ansys_edb_core-0.3.0.dev8/doc/source/_static/README.md +1 -0
  23. ansys_edb_core-0.3.0.dev8/doc/source/_templates/README.md +1 -0
  24. ansys_edb_core-0.3.0.dev8/doc/source/_templates/sidebar-nav-bs.html +10 -0
  25. ansys_edb_core-0.3.0.dev8/doc/source/api/database.rst +15 -0
  26. ansys_edb_core-0.3.0.dev8/doc/source/api/definition.rst +58 -0
  27. ansys_edb_core-0.3.0.dev8/doc/source/api/geometry.rst +29 -0
  28. ansys_edb_core-0.3.0.dev8/doc/source/api/glossary.rst +130 -0
  29. ansys_edb_core-0.3.0.dev8/doc/source/api/hierarchy.rst +38 -0
  30. ansys_edb_core-0.3.0.dev8/doc/source/api/index.rst +30 -0
  31. ansys_edb_core-0.3.0.dev8/doc/source/api/layer.rst +31 -0
  32. ansys_edb_core-0.3.0.dev8/doc/source/api/layout.rst +25 -0
  33. ansys_edb_core-0.3.0.dev8/doc/source/api/layout_instance.rst +16 -0
  34. ansys_edb_core-0.3.0.dev8/doc/source/api/net.rst +15 -0
  35. ansys_edb_core-0.3.0.dev8/doc/source/api/primitive.rst +37 -0
  36. ansys_edb_core-0.3.0.dev8/doc/source/api/release_notes.rst +10 -0
  37. ansys_edb_core-0.3.0.dev8/doc/source/api/session.rst +17 -0
  38. ansys_edb_core-0.3.0.dev8/doc/source/api/simulation_setup.rst +98 -0
  39. ansys_edb_core-0.3.0.dev8/doc/source/api/terminal.rst +27 -0
  40. ansys_edb_core-0.3.0.dev8/doc/source/api/utility.rst +37 -0
  41. ansys_edb_core-0.3.0.dev8/doc/source/conf.py +130 -0
  42. ansys_edb_core-0.3.0.dev8/doc/source/contribute.rst +199 -0
  43. ansys_edb_core-0.3.0.dev8/doc/source/examples/index.rst +52 -0
  44. ansys_edb_core-0.3.0.dev8/doc/source/getting_started/index.rst +27 -0
  45. ansys_edb_core-0.3.0.dev8/doc/source/index.rst +23 -0
  46. ansys_edb_core-0.3.0.dev8/doc/source/user_guide/index.rst +9 -0
  47. ansys_edb_core-0.3.0.dev8/doc/styles/.gitignore +6 -0
  48. ansys_edb_core-0.3.0.dev8/doc/styles/config/vocabularies/ANSYS/accept.txt +16 -0
  49. ansys_edb_core-0.3.0.dev8/doc/styles/config/vocabularies/ANSYS/reject.txt +0 -0
  50. ansys_edb_core-0.3.0.dev8/notebooks/3d_comp_placement.ipynb +97 -0
  51. ansys_edb_core-0.3.0.dev8/notebooks/Cutout_region.ipynb +254 -0
  52. ansys_edb_core-0.3.0.dev8/notebooks/Define_and_assign_bondwire_profiles.ipynb +302 -0
  53. ansys_edb_core-0.3.0.dev8/notebooks/Move_geometry_from_existing_layer_to_new_layer.ipynb +181 -0
  54. ansys_edb_core-0.3.0.dev8/notebooks/PolygonOperations.ipynb +117 -0
  55. ansys_edb_core-0.3.0.dev8/notebooks/Remove_all_geometry_and_layers_below_L2.ipynb +267 -0
  56. ansys_edb_core-0.3.0.dev8/notebooks/assign_ds_model.aedb/edb.def +0 -0
  57. ansys_edb_core-0.3.0.dev8/notebooks/assign_ds_model.ipynb +140 -0
  58. ansys_edb_core-0.3.0.dev8/notebooks/change_capacitor_models.aedb/edb.def +0 -0
  59. ansys_edb_core-0.3.0.dev8/notebooks/change_capacitor_models.aedb/stride/model.index +2 -0
  60. ansys_edb_core-0.3.0.dev8/notebooks/change_capacitor_models.ipynb +140 -0
  61. ansys_edb_core-0.3.0.dev8/notebooks/fixtures/3d_comp_placement/3d_comp_placement.a3dcomp +507 -0
  62. ansys_edb_core-0.3.0.dev8/notebooks/helpers/example_setup.ipynb +350 -0
  63. ansys_edb_core-0.3.0.dev8/notebooks/helpers/example_teardown.ipynb +36 -0
  64. ansys_edb_core-0.3.0.dev8/notebooks/helpers/plot.ipynb +103 -0
  65. ansys_edb_core-0.3.0.dev8/notebooks/stackup_export.aedb/edb.def +0 -0
  66. ansys_edb_core-0.3.0.dev8/notebooks/stackup_export.ipynb +204 -0
  67. ansys_edb_core-0.3.0.dev8/notebooks/template.ipynb +37 -0
  68. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/pyproject.toml +82 -81
  69. ansys_edb_core-0.3.0.dev8/scripts/bootstrap.ps1 +242 -0
  70. ansys_edb_core-0.3.0.dev8/scripts/bootstrap.sh +145 -0
  71. ansys_edb_core-0.3.0.dev8/scripts/cleanipynb.py +64 -0
  72. ansys_edb_core-0.3.0.dev8/scripts/proto_parser/generate_rpc_info.py +111 -0
  73. ansys_edb_core-0.3.0.dev8/scripts/proto_parser/parse_protos.sh +76 -0
  74. ansys_edb_core-0.3.0.dev8/src/ansys/edb/core/__init__.py +17 -0
  75. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/database.py +405 -405
  76. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/__init__.py +1 -1
  77. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/bondwire_def.py +335 -335
  78. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/component_def.py +221 -221
  79. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/component_model.py +186 -186
  80. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/component_pin.py +80 -80
  81. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/component_property.py +86 -86
  82. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/dataset_def.py +100 -100
  83. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/debye_model.py +133 -133
  84. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/die_property.py +86 -86
  85. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/dielectric_material_model.py +31 -31
  86. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/djordjecvic_sarkar_model.py +83 -83
  87. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/ic_component_property.py +72 -72
  88. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/io_component_property.py +62 -62
  89. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/material_def.py +387 -387
  90. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/material_property_thermal_modifier.py +103 -103
  91. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/multipole_debye_model.py +62 -62
  92. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/package_def.py +246 -246
  93. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/padstack_def.py +105 -105
  94. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/padstack_def_data.py +454 -454
  95. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/port_property.py +83 -83
  96. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/rlc_component_property.py +35 -35
  97. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/solder_ball_property.py +136 -136
  98. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/definition/technology_def.py +128 -128
  99. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/edb_defs.py +41 -41
  100. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/geometry/__init__.py +1 -1
  101. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/geometry/arc_data.py +309 -309
  102. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/geometry/point3d_data.py +171 -171
  103. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/geometry/point_data.py +415 -346
  104. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/geometry/polygon_data.py +712 -669
  105. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/geometry/r_tree.py +319 -319
  106. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/geometry/triangle3d_data.py +51 -51
  107. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/__init__.py +1 -1
  108. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/cell_instance.py +166 -166
  109. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/component_group.py +124 -124
  110. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/group.py +123 -123
  111. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/hierarchy_obj.py +88 -88
  112. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/inst_array.py +118 -118
  113. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/layout_component.py +65 -65
  114. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/model.py +18 -18
  115. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/netlist_model.py +35 -35
  116. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/pin_group.py +121 -121
  117. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/pin_pair_model.py +70 -70
  118. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/sparameter_model.py +45 -45
  119. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/spice_model.py +87 -87
  120. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/structure3d.py +88 -88
  121. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/hierarchy/via_group.py +110 -110
  122. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/__init__.py +8 -8
  123. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/base.py +109 -109
  124. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/conn_obj.py +206 -206
  125. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/decorators.py +40 -40
  126. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/edb_logging.py +227 -227
  127. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/exceptions.py +47 -47
  128. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/factory.py +161 -161
  129. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/interceptors.py +252 -217
  130. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/layout_obj.py +105 -105
  131. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/messages.py +1506 -1436
  132. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/parser.py +515 -510
  133. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/rpc_info.py +1511 -1511
  134. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/rpc_info_utils.py +37 -37
  135. ansys_edb_core-0.3.0.dev8/src/ansys/edb/core/inner/rpc_response_map.py +1671 -0
  136. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/utils.py +80 -80
  137. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/inner/variable_server.py +240 -240
  138. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layer/__init__.py +1 -1
  139. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layer/layer.py +366 -366
  140. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layer/layer_collection.py +574 -574
  141. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layer/stackup_layer.py +338 -338
  142. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layer/via_layer.py +194 -194
  143. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout/__init__.py +1 -1
  144. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout/cell.py +518 -518
  145. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout/layout.py +583 -583
  146. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout/mcad_model.py +275 -275
  147. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout/voltage_regulator.py +332 -332
  148. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout_instance/__init__.py +1 -1
  149. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout_instance/layout_instance.py +208 -188
  150. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout_instance/layout_instance_context.py +87 -87
  151. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout_instance/layout_obj_instance.py +103 -103
  152. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout_instance/layout_obj_instance_2d_geometry.py +35 -35
  153. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout_instance/layout_obj_instance_3d_geometry.py +33 -33
  154. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/layout_instance/layout_obj_instance_geometry.py +58 -58
  155. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/net/__init__.py +1 -1
  156. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/net/differential_pair.py +127 -127
  157. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/net/extended_net.py +83 -83
  158. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/net/net.py +129 -129
  159. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/net/net_class.py +133 -133
  160. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/__init__.py +1 -1
  161. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/board_bend_def.py +111 -111
  162. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/bondwire.py +351 -351
  163. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/circle.py +159 -159
  164. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/padstack_instance.py +522 -462
  165. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/path.py +284 -284
  166. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/polygon.py +76 -76
  167. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/primitive.py +194 -194
  168. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/primitive_instance_collection.py +122 -122
  169. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/rectangle.py +264 -264
  170. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/primitive/text.py +104 -104
  171. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/session.py +807 -752
  172. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/__init__.py +1 -1
  173. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/adaptive_solutions.py +439 -439
  174. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/hfss_pi_simulation_settings.py +261 -261
  175. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/hfss_pi_simulation_setup.py +37 -37
  176. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/hfss_simulation_settings.py +463 -463
  177. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/hfss_simulation_setup.py +54 -54
  178. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/mesh_operation.py +280 -280
  179. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/q3d_simulation_settings.py +342 -342
  180. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/q3d_simulation_setup.py +37 -37
  181. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/raptor_x_simulation_settings.py +385 -385
  182. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/raptor_x_simulation_setup.py +31 -31
  183. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/simulation_settings.py +334 -334
  184. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/simulation_setup.py +488 -488
  185. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/siwave_dcir_simulation_settings.py +137 -137
  186. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/siwave_dcir_simulation_setup.py +33 -33
  187. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/siwave_psi_simulation_settings.py +364 -364
  188. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/siwave_psi_simulation_setup.py +39 -39
  189. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/siwave_simulation_settings.py +587 -587
  190. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/simulation_setup/siwave_simulation_setup.py +31 -31
  191. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/__init__.py +1 -1
  192. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/bundle_terminal.py +36 -36
  193. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/edge_terminal.py +170 -170
  194. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/padstack_instance_terminal.py +71 -71
  195. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/pin_group_terminal.py +60 -60
  196. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/point_terminal.py +69 -69
  197. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/terminal.py +330 -330
  198. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/terminal_instance.py +55 -55
  199. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/terminal/terminal_instance_terminal.py +51 -51
  200. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/typing/__init__.py +15 -15
  201. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/__init__.py +1 -1
  202. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/conversions.py +74 -74
  203. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/edb_error_manager.py +68 -68
  204. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/heat_sink.py +69 -69
  205. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/hfss_extent_info.py +164 -164
  206. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/io_manager.py +421 -421
  207. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/layer_map.py +109 -109
  208. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/material_property_thermal_modifier_params.py +97 -97
  209. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/port_post_processing_prop.py +124 -124
  210. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/rlc.py +123 -123
  211. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/temperature_settings.py +52 -52
  212. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/touchstone_export_settings.py +109 -109
  213. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/transform.py +178 -178
  214. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/transform3d.py +338 -338
  215. {ansys_edb_core-0.3.0.dev7 → ansys_edb_core-0.3.0.dev8}/src/ansys/edb/core/utility/value.py +351 -349
  216. ansys_edb_core-0.3.0.dev8/src/ansys_edb_core_preload.pth +1 -0
  217. ansys_edb_core-0.3.0.dev8/src/ansys_edb_core_preload.py +95 -0
  218. ansys_edb_core-0.3.0.dev8/tests/e2e/conftest.py +147 -0
  219. ansys_edb_core-0.3.0.dev8/tests/e2e/integration_tests/test_padstack.py +14 -0
  220. ansys_edb_core-0.3.0.dev8/tests/e2e/integration_tests/test_siwave_simulation_setup.py +37 -0
  221. ansys_edb_core-0.3.0.dev8/tests/e2e/integration_tests/test_spiral_inductor.py +423 -0
  222. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/io_performance_scratch.py +156 -0
  223. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/sim_setup_scratch.py +330 -0
  224. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/test_board_bend_def.py +68 -0
  225. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/test_component_property.py +130 -0
  226. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/test_power_module.py +69 -0
  227. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/test_rpc_executor.py +179 -0
  228. ansys_edb_core-0.3.0.dev8/tests/e2e/scratch/test_value.py +99 -0
  229. ansys_edb_core-0.3.0.dev8/tests/e2e/settings.py +19 -0
  230. ansys_edb_core-0.3.0.dev8/tests/e2e/unit_tests/test_cell.py +10 -0
  231. ansys_edb_core-0.3.0.dev8/tests/e2e/unit_tests/test_edge_terminal.py +38 -0
  232. ansys_edb_core-0.3.0.dev8/tests/e2e/unit_tests/test_layer_collection.py +24 -0
  233. ansys_edb_core-0.3.0.dev8/tests/e2e/unit_tests/test_session.py +30 -0
  234. ansys_edb_core-0.3.0.dev8/tests/mock/test_arc_data.py +151 -0
  235. ansys_edb_core-0.3.0.dev8/tests/mock/test_database.py +249 -0
  236. ansys_edb_core-0.3.0.dev8/tests/mock/test_metadata.py +14 -0
  237. ansys_edb_core-0.3.0.dev8/tests/mock/test_point_data.py +74 -0
  238. ansys_edb_core-0.3.0.dev8/tests/mock/test_terminals.py +224 -0
  239. ansys_edb_core-0.3.0.dev8/tests/mock/utils/__init__.py +0 -0
  240. ansys_edb_core-0.3.0.dev8/tests/mock/utils/fixtures.py +118 -0
  241. ansys_edb_core-0.3.0.dev8/tests/mock/utils/test_utils.py +108 -0
  242. ansys_edb_core-0.3.0.dev8/tox.ini +67 -0
  243. ansys_edb_core-0.3.0.dev7/src/ansys/edb/core/__init__.py +0 -8
@@ -0,0 +1,7 @@
1
+ [flake8]
2
+ exclude = venv, __init__.py, doc/_build, .venv
3
+ select = W191, W291, W293, W391, E115, E117, E122, E124, E125, E225, E231, E301, E303, E501, F401, F403
4
+ count = True
5
+ max-complexity = 10
6
+ max-line-length = 120
7
+ statistics = True
@@ -0,0 +1,4 @@
1
+ # Global owners
2
+ * @drewm102
3
+ * @ansahershen
4
+ * @chenchienjacklin
@@ -0,0 +1,37 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "pip" # See documentation for possible values
4
+ directory: "/" # Location of package manifests
5
+ schedule:
6
+ interval: "daily"
7
+ cooldown:
8
+ default-days: 7
9
+ include:
10
+ - "*" # Include all dependencies in cooldown
11
+ exclude:
12
+ - "ansys-sphinx-theme"
13
+ assignees:
14
+ - "pyansys-ci-bot"
15
+ labels:
16
+ - "maintenance"
17
+ - "dependencies"
18
+ commit-message:
19
+ prefix: "BUILD(pip)"
20
+
21
+ - package-ecosystem: "github-actions"
22
+ directory: "/"
23
+ schedule:
24
+ interval: "daily"
25
+ cooldown:
26
+ default-days: 7
27
+ include:
28
+ - "*" # Include all dependencies in cooldown
29
+ exclude:
30
+ - "ansys/actions"
31
+ assignees:
32
+ - "pyansys-ci-bot"
33
+ labels:
34
+ - "maintenance"
35
+ - "dependencies"
36
+ commit-message:
37
+ prefix: "BUILD(actions)"
@@ -0,0 +1,241 @@
1
+ name: GitHub CI
2
+ on:
3
+ pull_request:
4
+ push:
5
+ tags:
6
+ - '*'
7
+ branches:
8
+ - release-*
9
+ - main
10
+ workflow_dispatch:
11
+
12
+ env:
13
+ PACKAGE_NAME: 'ansys-edb-core'
14
+ DOCUMENTATION_CNAME: 'edb.core.docs.pyansys.com'
15
+ MAIN_PYTHON_VERSION: '3.10'
16
+
17
+ concurrency:
18
+ group: ${{ github.workflow }}-${{ github.ref }}
19
+ cancel-in-progress: true
20
+
21
+ jobs:
22
+
23
+ doc-style:
24
+ name: Documentation Style Check
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - name: PyAnsys documentation style checks
28
+ uses: ansys/actions/doc-style@33399106dc8b62d83c8aad1fb2c333c8055df180 # v10.0.20
29
+ with:
30
+ token: ${{ secrets.GITHUB_TOKEN }}
31
+ fail-level: 'warning'
32
+
33
+ doc-build:
34
+ name: Documentation build
35
+ runs-on: ubuntu-latest
36
+ needs: [doc-style]
37
+ steps:
38
+ - name: Documentation build
39
+ uses: ansys/actions/doc-build@33399106dc8b62d83c8aad1fb2c333c8055df180 # v10.0.20
40
+ with:
41
+ python-version: ${{ env.MAIN_PYTHON_VERSION }}
42
+ use-python-cache: false
43
+ sphinxopts: '-j auto -w build_errors.txt -N -q'
44
+
45
+ smoke-tests:
46
+ name: Build and Smoke tests
47
+ runs-on: ${{ matrix.os }}
48
+ permissions:
49
+ attestations: write
50
+ contents: read
51
+ id-token: write
52
+ needs: [doc-style]
53
+ strategy:
54
+ fail-fast: false
55
+ matrix:
56
+ os: [windows-latest, ubuntu-latest]
57
+ python-version: ['3.10', '3.11', '3.12', '3.13']
58
+ steps:
59
+ - name: Build wheelhouse and perform smoke test
60
+ uses: ansys/actions/build-wheelhouse@33399106dc8b62d83c8aad1fb2c333c8055df180 # v10.0.20
61
+ with:
62
+ library-name: ${{ env.PACKAGE_NAME }}
63
+ operating-system: ${{ matrix.os }}
64
+ python-version: ${{ matrix.python-version }}
65
+ attest-provenance: true
66
+
67
+ tests:
68
+ name: Tests and coverage
69
+ needs: [smoke-tests]
70
+ runs-on: ${{ matrix.os }}
71
+ strategy:
72
+ matrix:
73
+ os: [windows-latest, ubuntu-latest]
74
+ python-version: ['3.10', '3.11', '3.12', '3.13']
75
+ fail-fast: false
76
+ steps:
77
+ - name: Install Git and checkout project
78
+ uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
79
+ - name: Setup Python
80
+ uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
81
+ with:
82
+ python-version: ${{ matrix.python-version }}
83
+ - name: Install dependencies
84
+ run: |
85
+ python -m pip install --upgrade .[tests]
86
+ python -m pip install --upgrade tox-gh-actions
87
+ - name: Test with tox
88
+ # Only the tox environment specified in the tox.ini gh-actions is run
89
+ run: tox -e test -- --ignore=tests/e2e
90
+
91
+ package:
92
+ name: Package library (Windows)
93
+ # Uses ansys/actions/build-library to produce the sdist and Windows platform
94
+ # wheel. The action hardcodes the artifact name to "${library-name}-artifacts"
95
+ # so only one job can use it per workflow run. The Linux wheel is produced by
96
+ # the separate package-linux job using explicit steps with a distinct artifact
97
+ # name, which the release job's pattern "${PACKAGE_NAME}-artifacts*" still
98
+ # matches.
99
+ runs-on: windows-latest
100
+ needs: [tests, doc-build]
101
+ permissions:
102
+ attestations: write
103
+ contents: read
104
+ id-token: write
105
+ steps:
106
+ - name: Build library source and wheel artifacts
107
+ uses: ansys/actions/build-library@33399106dc8b62d83c8aad1fb2c333c8055df180 # v10.0.20
108
+ with:
109
+ library-name: ${{ env.PACKAGE_NAME }}
110
+ python-version: ${{ env.MAIN_PYTHON_VERSION }}
111
+ attest-provenance: true
112
+
113
+ package-linux:
114
+ name: Package library (Linux manylinux)
115
+ # Produces manylinux_2_28_x86_64 platform wheels for all supported Python
116
+ # versions using cibuildwheel. The sdist is already produced by the Windows
117
+ # package job above. Uses a distinct artifact name to avoid the 409 Conflict
118
+ # that ansys/actions/build-library would cause (it hardcodes the artifact name
119
+ # to "${library-name}-artifacts" with no override).
120
+ #
121
+ # auditwheel repair is run with --exclude libstdc++.so.6 because rpc_executor.so
122
+ # relies on the .pth preload hook (ansys_edb_core_preload.py) to supply the
123
+ # AnsysEM-bundled libstdc++.so.6 at runtime. That library provides GLIBCXX up
124
+ # to 3.4.30, which covers every symbol rpc_executor.so needs. Letting
125
+ # auditwheel bundle a second copy would conflict with the preload mechanism and
126
+ # could cause the wrong libstdc++ to be used when libEDB_RPC_Services.so loads.
127
+ runs-on: ubuntu-latest
128
+ needs: [tests, doc-build]
129
+ permissions:
130
+ attestations: write
131
+ contents: read
132
+ id-token: write
133
+ steps:
134
+ - name: Install Git and checkout project
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
+ - name: Build manylinux wheels with cibuildwheel
150
+ uses: pypa/cibuildwheel@v2.22.0
151
+ env:
152
+ # Build CPython 3.10-3.13 on Linux x86_64 only.
153
+ CIBW_BUILD: "cp310-* cp311-* cp312-* cp313-*"
154
+ CIBW_ARCHS: "x86_64"
155
+ # manylinux_2_28 (AlmaLinux 8, GCC 8.5) is the oldest baseline whose
156
+ # system libstdc++ supports the __cxx11 ABI by default (GCC 5+).
157
+ # Combined with the explicit _GLIBCXX_USE_CXX11_ABI=1 flag in
158
+ # CMakeLists.txt this guarantees std::string layout compatibility with
159
+ # libEDB_RPC_Services.so, which was built with GCC 12.
160
+ CIBW_MANYLINUX_X86_64_IMAGE: "quay.io/pypa/manylinux_2_28_x86_64"
161
+ # Exclude libstdc++.so.6 from the repaired wheel — see job comment above.
162
+ CIBW_REPAIR_WHEEL_COMMAND_LINUX: >-
163
+ auditwheel repair --exclude libstdc++.so.6 -w {dest_dir} {wheel}
164
+ with:
165
+ output-dir: dist
166
+ - name: Check build health
167
+ run: pip install twine && python -m twine check dist/*
168
+ - name: Upload distribution artifacts to GitHub artifacts
169
+ uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
170
+ with:
171
+ name: ${{ env.PACKAGE_NAME }}-artifacts-linux
172
+ path: dist/
173
+ retention-days: 7
174
+ - name: Generate build provenance attestation
175
+ uses: actions/attest-build-provenance@db473fddc028af60658334401dc6fa3ffd8669fd # v2.3.0
176
+ with:
177
+ subject-path: dist/
178
+
179
+ release:
180
+ name: Release project
181
+ if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
182
+ needs: [package, package-linux]
183
+ runs-on: ubuntu-latest
184
+ # Specifying a GitHub environment is optional, but strongly encouraged
185
+ environment: release
186
+ permissions:
187
+ id-token: write
188
+ contents: write
189
+ steps:
190
+ - name: Download all library artifacts (Windows sdist+wheel and Linux wheel)
191
+ # Collects 'ansys-edb-core-artifacts' (Windows: sdist + win_amd64 wheel)
192
+ # and 'ansys-edb-core-artifacts-linux' (Linux: linux_x86_64 wheel only)
193
+ # into a single directory for PyPI upload.
194
+ uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
195
+ with:
196
+ pattern: ${{ env.PACKAGE_NAME }}-artifacts*
197
+ merge-multiple: true
198
+ path: ${{ env.PACKAGE_NAME }}-artifacts
199
+ - name: Release to PyPI using trusted publisher
200
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
201
+ with:
202
+ repository-url: "https://upload.pypi.org/legacy/"
203
+ print-hash: true
204
+ packages-dir: ${{ env.PACKAGE_NAME }}-artifacts
205
+ skip-existing: true
206
+ - name: Release to GitHub
207
+ uses: ansys/actions/release-github@33399106dc8b62d83c8aad1fb2c333c8055df180 # v10.0.20
208
+ with:
209
+ library-name: ${{ env.PACKAGE_NAME }}
210
+ token: ${{ secrets.GITHUB_TOKEN }}
211
+ add-artifact-attestation-notes: true
212
+
213
+ doc-deploy-dev:
214
+ name: "Deploy development documentation"
215
+ # Deploy development only when merging or pushing to the 'main' branch
216
+ if: github.event_name == 'push' && !contains(github.ref, 'refs/tags')
217
+ runs-on: ubuntu-latest
218
+ needs: [package, package-linux, tests, doc-build]
219
+ steps:
220
+ - uses: ansys/actions/doc-deploy-dev@33399106dc8b62d83c8aad1fb2c333c8055df180 # v10.0.20
221
+ with:
222
+ cname: ${{ env.DOCUMENTATION_CNAME }}
223
+ token: ${{ secrets.GITHUB_TOKEN }}
224
+ doc-artifact-name: documentation-html
225
+ bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
226
+ bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}
227
+
228
+ doc-deploy-stable:
229
+ name: "Deploy stable documentation"
230
+ # Deploy release documentation when creating a new tag
231
+ if: github.event_name == 'push' && contains(github.ref, 'refs/tags')
232
+ runs-on: ubuntu-latest
233
+ needs: release
234
+ steps:
235
+ - uses: ansys/actions/doc-deploy-stable@33399106dc8b62d83c8aad1fb2c333c8055df180 # v10.0.20
236
+ with:
237
+ cname: ${{ env.DOCUMENTATION_CNAME }}
238
+ token: ${{ secrets.GITHUB_TOKEN }}
239
+ doc-artifact-name: documentation-html
240
+ bot-user: ${{ secrets.PYANSYS_CI_BOT_USERNAME }}
241
+ bot-email: ${{ secrets.PYANSYS_CI_BOT_EMAIL }}
@@ -0,0 +1,16 @@
1
+ name: Template Validation
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, edited, synchronize]
6
+ branches:
7
+ - main
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ pr-title:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
15
+ - name: Run a PR title validation
16
+ run: grep -E "^(CI:|DOC:|REFACT:|FIX:|MAINT:|TEST:|FEATURE:)" <<< "${{ github.event.pull_request.title }}"
@@ -0,0 +1,173 @@
1
+ # Created by https://www.toptal.com/developers/gitignore/api/python
2
+ # Edit at https://www.toptal.com/developers/gitignore?templates=python
3
+
4
+ ### Python ###
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+
10
+ # C extensions
11
+ *.so
12
+
13
+ # Distribution / packaging
14
+ .Python
15
+ build/
16
+ develop-eggs/
17
+ dist/
18
+ .pyd-cache/
19
+ downloads/
20
+ eggs/
21
+ .eggs/
22
+ lib/
23
+ lib64/
24
+ parts/
25
+ sdist/
26
+ var/
27
+ wheels/
28
+ share/python-wheels/
29
+ *.egg-info/
30
+ .installed.cfg
31
+ *.egg
32
+ MANIFEST
33
+
34
+ # PyInstaller
35
+ # Usually these files are written by a python script from a template
36
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
37
+ *.manifest
38
+ *.spec
39
+
40
+ # Installer logs
41
+ pip-log.txt
42
+ pip-delete-this-directory.txt
43
+
44
+ # Unit test / coverage reports
45
+ htmlcov/
46
+ .tox/
47
+ .nox/
48
+ .coverage
49
+ .coverage.*
50
+ .cache
51
+ nosetests.xml
52
+ coverage.xml
53
+ *.cover
54
+ *.py,cover
55
+ .hypothesis/
56
+ .pytest_cache/
57
+ cover/
58
+ test-results.xml
59
+
60
+ # Translations
61
+ *.mo
62
+ *.pot
63
+
64
+ # Django stuff:
65
+ *.log
66
+ local_settings.py
67
+ db.sqlite3
68
+ db.sqlite3-journal
69
+
70
+ # Flask stuff:
71
+ instance/
72
+ .webassets-cache
73
+
74
+ # Scrapy stuff:
75
+ .scrapy
76
+
77
+ # Sphinx documentation
78
+ doc/_build/
79
+ doc/source/api/_autosummary
80
+
81
+ # PyBuilder
82
+ .pybuilder/
83
+ target/
84
+
85
+ # Jupyter Notebook
86
+ .ipynb_checkpoints
87
+ notebooks/results
88
+
89
+ # IPython
90
+ profile_default/
91
+ ipython_config.py
92
+
93
+ # proto stuff
94
+ *pb2.py
95
+ *pb2_grpc.py
96
+
97
+ # pyenv
98
+ # For a library or package, you might want to ignore these files since the code is
99
+ # intended to run in multiple environments; otherwise, check them in:
100
+ # .python-version
101
+
102
+ # pipenv
103
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
104
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
105
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
106
+ # install all needed dependencies.
107
+ #Pipfile.lock
108
+
109
+ # poetry
110
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
111
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
112
+ # commonly ignored for libraries.
113
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
114
+ #poetry.lock
115
+
116
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
117
+ __pypackages__/
118
+
119
+ # Celery stuff
120
+ celerybeat-schedule
121
+ celerybeat.pid
122
+
123
+ # SageMath parsed files
124
+ *.sage.py
125
+
126
+ # Environments
127
+ .env
128
+ .venv*
129
+ env/
130
+ venv/
131
+ ENV/
132
+ env.bak/
133
+ venv.bak/
134
+
135
+ # Spyder project settings
136
+ .spyderproject
137
+ .spyproject
138
+
139
+ # Rope project settings
140
+ .ropeproject
141
+
142
+ # mkdocs documentation
143
+ /site
144
+
145
+ # mypy
146
+ .mypy_cache/
147
+ .dmypy.json
148
+ dmypy.json
149
+
150
+ # Pyre type checker
151
+ .pyre/
152
+
153
+ # pytype static type analyzer
154
+ .pytype/
155
+
156
+ # Cython debug symbols
157
+ cython_debug/
158
+
159
+ # PyCharm
160
+ # JetBrains specific template is maintainted in a separate JetBrains.gitignore that can
161
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
162
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
163
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
164
+ #.idea/
165
+
166
+
167
+
168
+ # End of https://www.toptal.com/developers/gitignore/api/python
169
+
170
+ # Ansys EDB backups, etc.
171
+ **/*.aedb/**/*+
172
+ **/*.aedb/**/*.bak
173
+ **/*.aedb/**/*.tmp
@@ -0,0 +1,68 @@
1
+ repos:
2
+
3
+ - repo: https://github.com/psf/black
4
+ rev: 23.9.1 # IF VERSION CHANGES --> MODIFY "blacken-docs" MANUALLY AS WELL!!
5
+ hooks:
6
+ - id: black
7
+
8
+ - repo: https://github.com/adamchainz/blacken-docs
9
+ rev: 1.16.0
10
+ hooks:
11
+ - id: blacken-docs
12
+ additional_dependencies: [black==23.9.1]
13
+
14
+ - repo: https://github.com/pycqa/isort
15
+ rev: 5.12.0
16
+ hooks:
17
+ - id: isort
18
+
19
+ - repo: https://github.com/PyCQA/flake8
20
+ rev: 6.1.0
21
+ hooks:
22
+ - id: flake8
23
+
24
+ - repo: https://github.com/codespell-project/codespell
25
+ rev: v2.2.6
26
+ hooks:
27
+ - id: codespell
28
+ exclude: (?x)(^notebooks)
29
+ args: ["--ignore-words", "doc/styles/config/vocabularies/ANSYS/accept.txt"]
30
+
31
+ - repo: https://github.com/pycqa/pydocstyle
32
+ rev: 6.3.0
33
+ hooks:
34
+ - id: pydocstyle
35
+ additional_dependencies: [tomli]
36
+ exclude: "tests/"
37
+
38
+ - repo: https://github.com/pre-commit/pre-commit-hooks
39
+ rev: v4.5.0
40
+ hooks:
41
+ - id: check-merge-conflict
42
+ - id: debug-statements
43
+ - id: check-yaml
44
+ - id: trailing-whitespace
45
+ exclude: (?x)^(.*\.def)
46
+
47
+ # - repo: https://github.com/ansys/pre-commit-hooks
48
+ # rev: v0.2.2
49
+ # hooks:
50
+ # - id: add-license-headers
51
+ # args: ["--loc", "./"]
52
+
53
+ # FIXME: See if this local hooks could be replaced with using
54
+ # https://github.com/kynan/nbstripout
55
+ - repo: local
56
+ hooks:
57
+ - id: cleanipynb-helpers
58
+ name: cleanipynb-helpers
59
+ language: system
60
+ entry: python scripts/cleanipynb.py
61
+ files: notebooks/helpers/[^/]*\.ipynb$
62
+
63
+ - id: cleanipynb
64
+ name: cleanipynb
65
+ language: system
66
+ entry: python scripts/cleanipynb.py
67
+ args: [--leave-outputs]
68
+ files: notebooks/[^/]*\.ipynb$
@@ -0,0 +1,12 @@
1
+ # This is the list of PyEDB-Core significant contributors.
2
+ #
3
+ # This file does not necessarily list everyone who has contributed code.
4
+ #
5
+ # For contributions made under a Corporate CLA, the organization is
6
+ # added to this file.
7
+ #
8
+ # If you have contributed to the repository and want to be added to this file,
9
+ # submit a request.
10
+ #
11
+ #
12
+ ANSYS, Inc.
@@ -0,0 +1,77 @@
1
+ cmake_minimum_required(VERSION 3.15)
2
+
3
+ # ---------------------------------------------------------------------------
4
+ # Optional: install a pre-built extension instead of compiling from source.
5
+ # Set the PREBUILT_PYD environment variable (or pass -DPREBUILT_PYD=<path>)
6
+ # to the absolute path of a previously compiled rpc_executor .pyd file.
7
+ # bootstrap.ps1 sets this automatically when a cached build is available.
8
+ # Using LANGUAGES NONE avoids compiler detection entirely on cache hits.
9
+ # ---------------------------------------------------------------------------
10
+ if(NOT DEFINED PREBUILT_PYD)
11
+ set(PREBUILT_PYD "$ENV{PREBUILT_PYD}")
12
+ endif()
13
+ # Normalise to forward slashes so CMake does not misinterpret Windows
14
+ # backslashes as escape sequences (e.g. \a, \n) in the install() call.
15
+ if(PREBUILT_PYD)
16
+ file(TO_CMAKE_PATH "${PREBUILT_PYD}" PREBUILT_PYD)
17
+ endif()
18
+
19
+ # ---------------------------------------------------------------------------
20
+ # The .pth hook that pre-loads the AnsysEM libstdc++.so.6 before any other
21
+ # C extension can claim the system version. Both files are installed to the
22
+ # platlib root (site-packages) so that Python's site.py picks up the .pth
23
+ # file on every interpreter startup.
24
+ # ---------------------------------------------------------------------------
25
+ set(PRELOAD_PY "${CMAKE_CURRENT_SOURCE_DIR}/src/ansys_edb_core_preload.py")
26
+ set(PRELOAD_PTH "${CMAKE_CURRENT_SOURCE_DIR}/src/ansys_edb_core_preload.pth")
27
+
28
+ if(PREBUILT_PYD)
29
+ # bootstrap.ps1 / bootstrap.sh cache hit: install the cached extension
30
+ # directly without compiling. LANGUAGES NONE skips compiler detection.
31
+ project(rpc_executor LANGUAGES NONE)
32
+ message(STATUS "Cache hit: installing pre-built extension ${PREBUILT_PYD}")
33
+ install(FILES "${PREBUILT_PYD}" DESTINATION ansys/edb/core/)
34
+ install(FILES "${PRELOAD_PY}" "${PRELOAD_PTH}" DESTINATION ".")
35
+
36
+ elseif(WIN32)
37
+ # Windows: compile the pybind11 extension with the MSVC toolchain and
38
+ # define RPC_EXECUTOR_PLATFORM_WINDOWS so that rpc_executor.h selects
39
+ # the Windows code paths (HMODULE, LoadLibraryA, SetDllDirectoryA, etc.).
40
+ project(rpc_executor LANGUAGES CXX)
41
+ find_package(Python COMPONENTS Interpreter Development.Module REQUIRED)
42
+ find_package(pybind11 CONFIG REQUIRED)
43
+
44
+ pybind11_add_module(rpc_executor deps/rpc_executor_bindings.cpp)
45
+ target_include_directories(rpc_executor PRIVATE deps/)
46
+ target_compile_features(rpc_executor PRIVATE cxx_std_17)
47
+ target_compile_definitions(rpc_executor PRIVATE RPC_EXECUTOR_PLATFORM_WINDOWS)
48
+
49
+ install(TARGETS rpc_executor DESTINATION ansys/edb/core/)
50
+ install(FILES "${PRELOAD_PY}" "${PRELOAD_PTH}" DESTINATION ".")
51
+
52
+ else()
53
+ # Linux / macOS: compile with the system C++ toolchain.
54
+ # RPC_EXECUTOR_PLATFORM_WINDOWS is intentionally NOT defined, so
55
+ # rpc_executor.h uses the POSIX code paths (dlopen, dladdr, etc.).
56
+ project(rpc_executor LANGUAGES CXX)
57
+ find_package(Python COMPONENTS Interpreter Development.Module REQUIRED)
58
+ find_package(pybind11 CONFIG REQUIRED)
59
+
60
+ pybind11_add_module(rpc_executor deps/rpc_executor_bindings.cpp)
61
+ target_include_directories(rpc_executor PRIVATE deps/)
62
+ target_compile_features(rpc_executor PRIVATE cxx_std_17)
63
+ # Force the new (post-GCC-5) C++11 std::string ABI so that std::string
64
+ # objects cross the rpc_executor / libEDB_RPC_Services.so boundary with
65
+ # the same 32-byte layout. libEDB_RPC_Services.so is built with GCC 12
66
+ # and uses the __cxx11 ABI; without this flag an older system GCC or a
67
+ # Python interpreter built with _GLIBCXX_USE_CXX11_ABI=0 would produce
68
+ # mismatched 8-byte (old-ABI) strings, corrupting the stack on return.
69
+ target_compile_definitions(rpc_executor PRIVATE _GLIBCXX_USE_CXX11_ABI=1)
70
+ # CMAKE_DL_LIBS is '-ldl' on Linux (needed for dlopen/dlsym) and
71
+ # empty on platforms where those symbols are built in (e.g. macOS).
72
+ target_link_libraries(rpc_executor PRIVATE ${CMAKE_DL_LIBS})
73
+
74
+ install(TARGETS rpc_executor DESTINATION ansys/edb/core/)
75
+ install(FILES "${PRELOAD_PY}" "${PRELOAD_PTH}" DESTINATION ".")
76
+
77
+ endif()