xcoll 0.3.3__py3-none-any.whl → 0.3.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of xcoll might be problematic. Click here for more details.

Files changed (317) hide show
  1. xcoll/beam_elements/__init__.py +5 -0
  2. xcoll/beam_elements/absorber.py +2 -1
  3. xcoll/beam_elements/base.py +32 -17
  4. xcoll/beam_elements/collimators_src/absorber.h +5 -0
  5. xcoll/beam_elements/everest.py +14 -25
  6. xcoll/colldb.py +50 -27
  7. xcoll/general.py +1 -1
  8. xcoll/headers/checks.h +7 -1
  9. xcoll/impacts/impacts.py +2 -1
  10. xcoll/impacts/impacts_src/impacts.h +1 -6
  11. xcoll/manager.py +5 -5
  12. xcoll/rf_sweep.py +90 -19
  13. xcoll/scattering_routines/everest/__init__.py +5 -0
  14. xcoll/scattering_routines/everest/everest.py +1 -1
  15. xcoll/scattering_routines/fluka/build_fluka_input.py +58 -0
  16. xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a +0 -0
  17. xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.so +0 -0
  18. xcoll/scattering_routines/fluka/flukaio/src/Connection.d +68 -48
  19. xcoll/scattering_routines/fluka/flukaio/src/Connection.o +0 -0
  20. xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.d +46 -37
  21. xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.o +0 -0
  22. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.d +28 -25
  23. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.o +0 -0
  24. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.d +67 -47
  25. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.o +0 -0
  26. xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.d +39 -33
  27. xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.o +0 -0
  28. xcoll/scattering_routines/fluka/flukaio/src/NetIO.d +66 -47
  29. xcoll/scattering_routines/fluka/flukaio/src/NetIO.o +0 -0
  30. {xcoll-0.3.3.dist-info → xcoll-0.3.5.dist-info}/METADATA +3 -2
  31. xcoll-0.3.5.dist-info/NOTICE +2 -0
  32. xcoll-0.3.5.dist-info/RECORD +111 -0
  33. {xcoll-0.3.3.dist-info → xcoll-0.3.5.dist-info}/WHEEL +1 -1
  34. xcoll/beam_elements/collimators_src/base_block.h +0 -14
  35. xcoll/beam_elements/collimators_src/base_collimator.h +0 -14
  36. xcoll/beam_elements/collimators_src/invalid_collimator.h +0 -15
  37. xcoll/install_collimators.py +0 -180
  38. xcoll/scattering_routines/geant4/collimasim/.git +0 -1
  39. xcoll/scattering_routines/geant4/collimasim/.gitignore +0 -12
  40. xcoll/scattering_routines/geant4/collimasim/.gitmodules +0 -3
  41. xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +0 -26
  42. xcoll/scattering_routines/geant4/collimasim/README.md +0 -21
  43. xcoll/scattering_routines/geant4/collimasim/docs/Makefile +0 -20
  44. xcoll/scattering_routines/geant4/collimasim/docs/make.bat +0 -35
  45. xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +0 -10
  46. xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +0 -59
  47. xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +0 -26
  48. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +0 -37
  49. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +0 -19
  50. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +0 -65
  51. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +0 -73
  52. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +0 -1
  53. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +0 -9
  54. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +0 -386
  55. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -45
  56. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -8
  57. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +0 -16
  58. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +0 -8
  59. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +0 -3
  60. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +0 -19
  61. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +0 -969
  62. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +0 -84
  63. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +0 -48
  64. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +0 -16
  65. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +0 -103
  66. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +0 -45
  67. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +0 -151
  68. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +0 -3
  69. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +0 -297
  70. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +0 -29
  71. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +0 -6
  72. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +0 -180
  73. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +0 -23
  74. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +0 -192
  75. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +0 -11
  76. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +0 -81
  77. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +0 -93
  78. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +0 -310
  79. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +0 -109
  80. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +0 -43
  81. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +0 -171
  82. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +0 -251
  83. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +0 -305
  84. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +0 -1297
  85. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +0 -262
  86. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +0 -396
  87. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +0 -568
  88. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +0 -337
  89. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +0 -13
  90. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +0 -463
  91. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +0 -286
  92. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +0 -155
  93. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +0 -174
  94. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +0 -308
  95. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +0 -91
  96. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +0 -95
  97. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +0 -2050
  98. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +0 -542
  99. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +0 -8
  100. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +0 -648
  101. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +0 -381
  102. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +0 -343
  103. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +0 -48
  104. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +0 -105
  105. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +0 -72
  106. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  107. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  108. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +0 -427
  109. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  110. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +0 -427
  111. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +0 -130
  112. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +0 -96
  113. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +0 -8
  114. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +0 -548
  115. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +0 -605
  116. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +0 -144
  117. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +0 -1432
  118. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +0 -213
  119. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +0 -2
  120. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +0 -65
  121. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +0 -709
  122. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +0 -1021
  123. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +0 -104
  124. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +0 -346
  125. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +0 -467
  126. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +0 -978
  127. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +0 -55
  128. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +0 -606
  129. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +0 -284
  130. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +0 -163
  131. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +0 -121
  132. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +0 -193
  133. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +0 -275
  134. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +0 -1741
  135. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +0 -163
  136. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +0 -65
  137. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +0 -2497
  138. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +0 -1879
  139. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +0 -103
  140. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +0 -375
  141. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +0 -747
  142. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +0 -88
  143. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +0 -11
  144. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +0 -52
  145. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +0 -12
  146. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +0 -6
  147. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +0 -21
  148. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  149. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +0 -482
  150. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +0 -63
  151. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +0 -41
  152. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +0 -56
  153. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +0 -155
  154. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +0 -503
  155. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +0 -208
  156. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +0 -275
  157. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +0 -73
  158. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +0 -33
  159. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  160. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +0 -279
  161. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  162. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -143
  163. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +0 -85
  164. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +0 -179
  165. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +0 -151
  166. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +0 -91
  167. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +0 -85
  168. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +0 -19
  169. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +0 -12
  170. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +0 -26
  171. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +0 -25
  172. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +0 -216
  173. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +0 -163
  174. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +0 -286
  175. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +0 -536
  176. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +0 -107
  177. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +0 -248
  178. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +0 -227
  179. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +0 -202
  180. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +0 -84
  181. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +0 -210
  182. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +0 -550
  183. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +0 -473
  184. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -84
  185. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +0 -21
  186. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -28
  187. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -39
  188. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -46
  189. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +0 -6
  190. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -41
  191. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -35
  192. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -41
  193. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +0 -10
  194. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +0 -165
  195. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +0 -53
  196. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +0 -238
  197. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +0 -126
  198. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +0 -141
  199. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +0 -117
  200. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +0 -41
  201. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +0 -50
  202. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +0 -69
  203. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +0 -42
  204. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +0 -348
  205. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +0 -771
  206. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +0 -47
  207. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +0 -22
  208. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +0 -23
  209. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +0 -326
  210. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +0 -15
  211. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +0 -148
  212. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +0 -272
  213. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +0 -119
  214. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +0 -51
  215. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +0 -5
  216. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +0 -285
  217. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +0 -12
  218. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +0 -265
  219. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +0 -397
  220. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +0 -520
  221. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +0 -49
  222. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +0 -94
  223. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +0 -125
  224. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +0 -331
  225. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +0 -153
  226. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +0 -284
  227. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +0 -107
  228. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +0 -257
  229. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +0 -412
  230. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +0 -517
  231. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +0 -102
  232. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +0 -92
  233. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +0 -233
  234. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +0 -360
  235. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +0 -472
  236. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +0 -593
  237. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +0 -524
  238. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +0 -441
  239. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +0 -103
  240. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +0 -267
  241. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +0 -73
  242. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +0 -59
  243. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +0 -235
  244. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +0 -146
  245. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +0 -189
  246. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +0 -82
  247. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +0 -560
  248. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +0 -651
  249. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +0 -500
  250. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +0 -253
  251. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +0 -452
  252. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +0 -318
  253. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +0 -342
  254. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +0 -291
  255. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +0 -131
  256. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +0 -318
  257. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +0 -144
  258. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +0 -29
  259. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +0 -66
  260. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +0 -44
  261. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +0 -22
  262. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +0 -9
  263. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +0 -510
  264. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +0 -408
  265. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +0 -140
  266. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +0 -117
  267. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +0 -70
  268. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +0 -86
  269. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +0 -257
  270. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +0 -44
  271. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +0 -23
  272. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +0 -39
  273. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +0 -64
  274. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +0 -402
  275. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +0 -233
  276. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +0 -276
  277. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +0 -214
  278. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +0 -3
  279. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +0 -65
  280. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +0 -41
  281. xcoll/scattering_routines/geant4/collimasim/pyproject.toml +0 -8
  282. xcoll/scattering_routines/geant4/collimasim/setup.py +0 -144
  283. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +0 -403
  284. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +0 -100
  285. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +0 -662
  286. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +0 -110
  287. xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +0 -8
  288. xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +0 -63
  289. xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +0 -142
  290. xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +0 -475
  291. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +0 -6
  292. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +0 -20
  293. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +0 -1
  294. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +0 -1
  295. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +0 -1
  296. xcoll/scattering_routines/geant4/collimasim/tests/README.md +0 -25
  297. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +0 -18
  298. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +0 -68
  299. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +0 -15
  300. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +0 -110
  301. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +0 -7
  302. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +0 -3
  303. xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +0 -54
  304. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +0 -3
  305. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +0 -3
  306. xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +0 -51
  307. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +0 -65
  308. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +0 -59
  309. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +0 -102
  310. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +0 -75
  311. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +0 -74
  312. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +0 -84
  313. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +0 -159
  314. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +0 -80
  315. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +0 -97
  316. xcoll-0.3.3.dist-info/RECORD +0 -391
  317. {xcoll-0.3.3.dist-info → xcoll-0.3.5.dist-info}/LICENSE +0 -0
@@ -1,285 +0,0 @@
1
- /*
2
- tests/test_custom-exceptions.cpp -- exception translation
3
-
4
- Copyright (c) 2016 Pim Schellart <P.Schellart@princeton.edu>
5
-
6
- All rights reserved. Use of this source code is governed by a
7
- BSD-style license that can be found in the LICENSE file.
8
- */
9
- #include "test_exceptions.h"
10
-
11
- #include "local_bindings.h"
12
-
13
- #include "pybind11_tests.h"
14
- #include <utility>
15
-
16
- // A type that should be raised as an exception in Python
17
- class MyException : public std::exception {
18
- public:
19
- explicit MyException(const char * m) : message{m} {}
20
- const char * what() const noexcept override {return message.c_str();}
21
- private:
22
- std::string message = "";
23
- };
24
-
25
- // A type that should be translated to a standard Python exception
26
- class MyException2 : public std::exception {
27
- public:
28
- explicit MyException2(const char * m) : message{m} {}
29
- const char * what() const noexcept override {return message.c_str();}
30
- private:
31
- std::string message = "";
32
- };
33
-
34
- // A type that is not derived from std::exception (and is thus unknown)
35
- class MyException3 {
36
- public:
37
- explicit MyException3(const char * m) : message{m} {}
38
- virtual const char * what() const noexcept {return message.c_str();}
39
- // Rule of 5 BEGIN: to preempt compiler warnings.
40
- MyException3(const MyException3&) = default;
41
- MyException3(MyException3&&) = default;
42
- MyException3& operator=(const MyException3&) = default;
43
- MyException3& operator=(MyException3&&) = default;
44
- virtual ~MyException3() = default;
45
- // Rule of 5 END.
46
- private:
47
- std::string message = "";
48
- };
49
-
50
- // A type that should be translated to MyException
51
- // and delegated to its exception translator
52
- class MyException4 : public std::exception {
53
- public:
54
- explicit MyException4(const char * m) : message{m} {}
55
- const char * what() const noexcept override {return message.c_str();}
56
- private:
57
- std::string message = "";
58
- };
59
-
60
-
61
- // Like the above, but declared via the helper function
62
- class MyException5 : public std::logic_error {
63
- public:
64
- explicit MyException5(const std::string &what) : std::logic_error(what) {}
65
- };
66
-
67
- // Inherits from MyException5
68
- class MyException5_1 : public MyException5 {
69
- using MyException5::MyException5;
70
- };
71
-
72
-
73
- // Exception that will be caught via the module local translator.
74
- class MyException6 : public std::exception {
75
- public:
76
- explicit MyException6(const char * m) : message{m} {}
77
- const char * what() const noexcept override {return message.c_str();}
78
- private:
79
- std::string message = "";
80
- };
81
-
82
-
83
- struct PythonCallInDestructor {
84
- explicit PythonCallInDestructor(const py::dict &d) : d(d) {}
85
- ~PythonCallInDestructor() { d["good"] = true; }
86
-
87
- py::dict d;
88
- };
89
-
90
-
91
-
92
- struct PythonAlreadySetInDestructor {
93
- explicit PythonAlreadySetInDestructor(const py::str &s) : s(s) {}
94
- ~PythonAlreadySetInDestructor() {
95
- py::dict foo;
96
- try {
97
- // Assign to a py::object to force read access of nonexistent dict entry
98
- py::object o = foo["bar"];
99
- }
100
- catch (py::error_already_set& ex) {
101
- ex.discard_as_unraisable(s);
102
- }
103
- }
104
-
105
- py::str s;
106
- };
107
-
108
-
109
- TEST_SUBMODULE(exceptions, m) {
110
- m.def("throw_std_exception", []() {
111
- throw std::runtime_error("This exception was intentionally thrown.");
112
- });
113
-
114
- // make a new custom exception and use it as a translation target
115
- static py::exception<MyException> ex(m, "MyException");
116
- py::register_exception_translator([](std::exception_ptr p) {
117
- try {
118
- if (p) std::rethrow_exception(p);
119
- } catch (const MyException &e) {
120
- // Set MyException as the active python error
121
- ex(e.what());
122
- }
123
- });
124
-
125
- // register new translator for MyException2
126
- // no need to store anything here because this type will
127
- // never by visible from Python
128
- py::register_exception_translator([](std::exception_ptr p) {
129
- try {
130
- if (p) std::rethrow_exception(p);
131
- } catch (const MyException2 &e) {
132
- // Translate this exception to a standard RuntimeError
133
- PyErr_SetString(PyExc_RuntimeError, e.what());
134
- }
135
- });
136
-
137
- // register new translator for MyException4
138
- // which will catch it and delegate to the previously registered
139
- // translator for MyException by throwing a new exception
140
- py::register_exception_translator([](std::exception_ptr p) {
141
- try {
142
- if (p) std::rethrow_exception(p);
143
- } catch (const MyException4 &e) {
144
- throw MyException(e.what());
145
- }
146
- });
147
-
148
- // A simple exception translation:
149
- auto ex5 = py::register_exception<MyException5>(m, "MyException5");
150
- // A slightly more complicated one that declares MyException5_1 as a subclass of MyException5
151
- py::register_exception<MyException5_1>(m, "MyException5_1", ex5.ptr());
152
-
153
- //py::register_local_exception<LocalSimpleException>(m, "LocalSimpleException")
154
-
155
- py::register_local_exception_translator([](std::exception_ptr p) {
156
- try {
157
- if (p) {
158
- std::rethrow_exception(p);
159
- }
160
- } catch (const MyException6 &e) {
161
- PyErr_SetString(PyExc_RuntimeError, e.what());
162
- }
163
- });
164
-
165
- m.def("throws1", []() { throw MyException("this error should go to a custom type"); });
166
- m.def("throws2", []() { throw MyException2("this error should go to a standard Python exception"); });
167
- m.def("throws3", []() { throw MyException3("this error cannot be translated"); });
168
- m.def("throws4", []() { throw MyException4("this error is rethrown"); });
169
- m.def("throws5", []() { throw MyException5("this is a helper-defined translated exception"); });
170
- m.def("throws5_1", []() { throw MyException5_1("MyException5 subclass"); });
171
- m.def("throws6", []() { throw MyException6("MyException6 only handled in this module"); });
172
- m.def("throws_logic_error", []() { throw std::logic_error("this error should fall through to the standard handler"); });
173
- m.def("throws_overflow_error", []() { throw std::overflow_error(""); });
174
- m.def("throws_local_error", []() { throw LocalException("never caught"); });
175
- m.def("throws_local_simple_error", []() { throw LocalSimpleException("this mod"); });
176
- m.def("exception_matches", []() {
177
- py::dict foo;
178
- try {
179
- // Assign to a py::object to force read access of nonexistent dict entry
180
- py::object o = foo["bar"];
181
- }
182
- catch (py::error_already_set& ex) {
183
- if (!ex.matches(PyExc_KeyError)) throw;
184
- return true;
185
- }
186
- return false;
187
- });
188
- m.def("exception_matches_base", []() {
189
- py::dict foo;
190
- try {
191
- // Assign to a py::object to force read access of nonexistent dict entry
192
- py::object o = foo["bar"];
193
- }
194
- catch (py::error_already_set &ex) {
195
- if (!ex.matches(PyExc_Exception)) throw;
196
- return true;
197
- }
198
- return false;
199
- });
200
- m.def("modulenotfound_exception_matches_base", []() {
201
- try {
202
- // On Python >= 3.6, this raises a ModuleNotFoundError, a subclass of ImportError
203
- py::module_::import("nonexistent");
204
- }
205
- catch (py::error_already_set &ex) {
206
- if (!ex.matches(PyExc_ImportError)) throw;
207
- return true;
208
- }
209
- return false;
210
- });
211
-
212
- m.def("throw_already_set", [](bool err) {
213
- if (err)
214
- PyErr_SetString(PyExc_ValueError, "foo");
215
- try {
216
- throw py::error_already_set();
217
- } catch (const std::runtime_error& e) {
218
- if ((err && e.what() != std::string("ValueError: foo")) ||
219
- (!err && e.what() != std::string("Unknown internal error occurred")))
220
- {
221
- PyErr_Clear();
222
- throw std::runtime_error("error message mismatch");
223
- }
224
- }
225
- PyErr_Clear();
226
- if (err)
227
- PyErr_SetString(PyExc_ValueError, "foo");
228
- throw py::error_already_set();
229
- });
230
-
231
- m.def("python_call_in_destructor", [](const py::dict &d) {
232
- bool retval = false;
233
- try {
234
- PythonCallInDestructor set_dict_in_destructor(d);
235
- PyErr_SetString(PyExc_ValueError, "foo");
236
- throw py::error_already_set();
237
- } catch (const py::error_already_set&) {
238
- retval = true;
239
- }
240
- return retval;
241
- });
242
-
243
- m.def("python_alreadyset_in_destructor", [](const py::str &s) {
244
- PythonAlreadySetInDestructor alreadyset_in_destructor(s);
245
- return true;
246
- });
247
-
248
- // test_nested_throws
249
- m.def("try_catch",
250
- [m](const py::object &exc_type, const py::function &f, const py::args &args) {
251
- try {
252
- f(*args);
253
- } catch (py::error_already_set &ex) {
254
- if (ex.matches(exc_type))
255
- py::print(ex.what());
256
- else
257
- throw;
258
- }
259
- });
260
-
261
- // Test repr that cannot be displayed
262
- m.def("simple_bool_passthrough", [](bool x) {return x;});
263
-
264
- m.def("throw_should_be_translated_to_key_error", []() { throw shared_exception(); });
265
-
266
- #if PY_VERSION_HEX >= 0x03030000
267
-
268
- m.def("raise_from", []() {
269
- PyErr_SetString(PyExc_ValueError, "inner");
270
- py::raise_from(PyExc_ValueError, "outer");
271
- throw py::error_already_set();
272
- });
273
-
274
- m.def("raise_from_already_set", []() {
275
- try {
276
- PyErr_SetString(PyExc_ValueError, "inner");
277
- throw py::error_already_set();
278
- } catch (py::error_already_set& e) {
279
- py::raise_from(e, PyExc_ValueError, "outer");
280
- throw py::error_already_set();
281
- }
282
- });
283
-
284
- #endif
285
- }
@@ -1,12 +0,0 @@
1
- #pragma once
2
- #include "pybind11_tests.h"
3
- #include <stdexcept>
4
-
5
- // shared exceptions for cross_module_tests
6
-
7
- class PYBIND11_EXPORT_EXCEPTION shared_exception : public pybind11::builtin_exception {
8
- public:
9
- using builtin_exception::builtin_exception;
10
- explicit shared_exception() : shared_exception("") {}
11
- void set_error() const override { PyErr_SetString(PyExc_RuntimeError, what()); }
12
- };
@@ -1,265 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- import sys
3
-
4
- import pytest
5
-
6
- import env # noqa: F401
7
- import pybind11_cross_module_tests as cm
8
- from pybind11_tests import exceptions as m
9
-
10
-
11
- def test_std_exception(msg):
12
- with pytest.raises(RuntimeError) as excinfo:
13
- m.throw_std_exception()
14
- assert msg(excinfo.value) == "This exception was intentionally thrown."
15
-
16
-
17
- def test_error_already_set(msg):
18
- with pytest.raises(RuntimeError) as excinfo:
19
- m.throw_already_set(False)
20
- assert msg(excinfo.value) == "Unknown internal error occurred"
21
-
22
- with pytest.raises(ValueError) as excinfo:
23
- m.throw_already_set(True)
24
- assert msg(excinfo.value) == "foo"
25
-
26
-
27
- @pytest.mark.skipif("env.PY2")
28
- def test_raise_from(msg):
29
- with pytest.raises(ValueError) as excinfo:
30
- m.raise_from()
31
- assert msg(excinfo.value) == "outer"
32
- assert msg(excinfo.value.__cause__) == "inner"
33
-
34
-
35
- @pytest.mark.skipif("env.PY2")
36
- def test_raise_from_already_set(msg):
37
- with pytest.raises(ValueError) as excinfo:
38
- m.raise_from_already_set()
39
- assert msg(excinfo.value) == "outer"
40
- assert msg(excinfo.value.__cause__) == "inner"
41
-
42
-
43
- def test_cross_module_exceptions(msg):
44
- with pytest.raises(RuntimeError) as excinfo:
45
- cm.raise_runtime_error()
46
- assert str(excinfo.value) == "My runtime error"
47
-
48
- with pytest.raises(ValueError) as excinfo:
49
- cm.raise_value_error()
50
- assert str(excinfo.value) == "My value error"
51
-
52
- with pytest.raises(ValueError) as excinfo:
53
- cm.throw_pybind_value_error()
54
- assert str(excinfo.value) == "pybind11 value error"
55
-
56
- with pytest.raises(TypeError) as excinfo:
57
- cm.throw_pybind_type_error()
58
- assert str(excinfo.value) == "pybind11 type error"
59
-
60
- with pytest.raises(StopIteration) as excinfo:
61
- cm.throw_stop_iteration()
62
-
63
- with pytest.raises(cm.LocalSimpleException) as excinfo:
64
- cm.throw_local_simple_error()
65
- assert msg(excinfo.value) == "external mod"
66
-
67
- with pytest.raises(KeyError) as excinfo:
68
- cm.throw_local_error()
69
- # KeyError is a repr of the key, so it has an extra set of quotes
70
- assert str(excinfo.value) == "'just local'"
71
-
72
-
73
- # TODO: FIXME
74
- @pytest.mark.xfail(
75
- "env.PYPY and env.MACOS",
76
- raises=RuntimeError,
77
- reason="Expected failure with PyPy and libc++ (Issue #2847 & PR #2999)",
78
- )
79
- def test_cross_module_exception_translator():
80
- with pytest.raises(KeyError):
81
- # translator registered in cross_module_tests
82
- m.throw_should_be_translated_to_key_error()
83
-
84
-
85
- def test_python_call_in_catch():
86
- d = {}
87
- assert m.python_call_in_destructor(d) is True
88
- assert d["good"] is True
89
-
90
-
91
- def ignore_pytest_unraisable_warning(f):
92
- unraisable = "PytestUnraisableExceptionWarning"
93
- if hasattr(pytest, unraisable): # Python >= 3.8 and pytest >= 6
94
- dec = pytest.mark.filterwarnings("ignore::pytest.{}".format(unraisable))
95
- return dec(f)
96
- else:
97
- return f
98
-
99
-
100
- @ignore_pytest_unraisable_warning
101
- def test_python_alreadyset_in_destructor(monkeypatch, capsys):
102
- hooked = False
103
- triggered = [False] # mutable, so Python 2.7 closure can modify it
104
-
105
- if hasattr(sys, "unraisablehook"): # Python 3.8+
106
- hooked = True
107
- # Don't take `sys.unraisablehook`, as that's overwritten by pytest
108
- default_hook = sys.__unraisablehook__
109
-
110
- def hook(unraisable_hook_args):
111
- exc_type, exc_value, exc_tb, err_msg, obj = unraisable_hook_args
112
- if obj == "already_set demo":
113
- triggered[0] = True
114
- default_hook(unraisable_hook_args)
115
- return
116
-
117
- # Use monkeypatch so pytest can apply and remove the patch as appropriate
118
- monkeypatch.setattr(sys, "unraisablehook", hook)
119
-
120
- assert m.python_alreadyset_in_destructor("already_set demo") is True
121
- if hooked:
122
- assert triggered[0] is True
123
-
124
- _, captured_stderr = capsys.readouterr()
125
- # Error message is different in Python 2 and 3, check for words that appear in both
126
- assert "ignored" in captured_stderr and "already_set demo" in captured_stderr
127
-
128
-
129
- def test_exception_matches():
130
- assert m.exception_matches()
131
- assert m.exception_matches_base()
132
- assert m.modulenotfound_exception_matches_base()
133
-
134
-
135
- def test_custom(msg):
136
- # Can we catch a MyException?
137
- with pytest.raises(m.MyException) as excinfo:
138
- m.throws1()
139
- assert msg(excinfo.value) == "this error should go to a custom type"
140
-
141
- # Can we translate to standard Python exceptions?
142
- with pytest.raises(RuntimeError) as excinfo:
143
- m.throws2()
144
- assert msg(excinfo.value) == "this error should go to a standard Python exception"
145
-
146
- # Can we handle unknown exceptions?
147
- with pytest.raises(RuntimeError) as excinfo:
148
- m.throws3()
149
- assert msg(excinfo.value) == "Caught an unknown exception!"
150
-
151
- # Can we delegate to another handler by rethrowing?
152
- with pytest.raises(m.MyException) as excinfo:
153
- m.throws4()
154
- assert msg(excinfo.value) == "this error is rethrown"
155
-
156
- # Can we fall-through to the default handler?
157
- with pytest.raises(RuntimeError) as excinfo:
158
- m.throws_logic_error()
159
- assert (
160
- msg(excinfo.value) == "this error should fall through to the standard handler"
161
- )
162
-
163
- # OverFlow error translation.
164
- with pytest.raises(OverflowError) as excinfo:
165
- m.throws_overflow_error()
166
-
167
- # Can we handle a helper-declared exception?
168
- with pytest.raises(m.MyException5) as excinfo:
169
- m.throws5()
170
- assert msg(excinfo.value) == "this is a helper-defined translated exception"
171
-
172
- # Exception subclassing:
173
- with pytest.raises(m.MyException5) as excinfo:
174
- m.throws5_1()
175
- assert msg(excinfo.value) == "MyException5 subclass"
176
- assert isinstance(excinfo.value, m.MyException5_1)
177
-
178
- with pytest.raises(m.MyException5_1) as excinfo:
179
- m.throws5_1()
180
- assert msg(excinfo.value) == "MyException5 subclass"
181
-
182
- with pytest.raises(m.MyException5) as excinfo:
183
- try:
184
- m.throws5()
185
- except m.MyException5_1:
186
- raise RuntimeError("Exception error: caught child from parent")
187
- assert msg(excinfo.value) == "this is a helper-defined translated exception"
188
-
189
-
190
- def test_nested_throws(capture):
191
- """Tests nested (e.g. C++ -> Python -> C++) exception handling"""
192
-
193
- def throw_myex():
194
- raise m.MyException("nested error")
195
-
196
- def throw_myex5():
197
- raise m.MyException5("nested error 5")
198
-
199
- # In the comments below, the exception is caught in the first step, thrown in the last step
200
-
201
- # C++ -> Python
202
- with capture:
203
- m.try_catch(m.MyException5, throw_myex5)
204
- assert str(capture).startswith("MyException5: nested error 5")
205
-
206
- # Python -> C++ -> Python
207
- with pytest.raises(m.MyException) as excinfo:
208
- m.try_catch(m.MyException5, throw_myex)
209
- assert str(excinfo.value) == "nested error"
210
-
211
- def pycatch(exctype, f, *args):
212
- try:
213
- f(*args)
214
- except m.MyException as e:
215
- print(e)
216
-
217
- # C++ -> Python -> C++ -> Python
218
- with capture:
219
- m.try_catch(
220
- m.MyException5,
221
- pycatch,
222
- m.MyException,
223
- m.try_catch,
224
- m.MyException,
225
- throw_myex5,
226
- )
227
- assert str(capture).startswith("MyException5: nested error 5")
228
-
229
- # C++ -> Python -> C++
230
- with capture:
231
- m.try_catch(m.MyException, pycatch, m.MyException5, m.throws4)
232
- assert capture == "this error is rethrown"
233
-
234
- # Python -> C++ -> Python -> C++
235
- with pytest.raises(m.MyException5) as excinfo:
236
- m.try_catch(m.MyException, pycatch, m.MyException, m.throws5)
237
- assert str(excinfo.value) == "this is a helper-defined translated exception"
238
-
239
-
240
- # This can often happen if you wrap a pybind11 class in a Python wrapper
241
- def test_invalid_repr():
242
- class MyRepr(object):
243
- def __repr__(self):
244
- raise AttributeError("Example error")
245
-
246
- with pytest.raises(TypeError):
247
- m.simple_bool_passthrough(MyRepr())
248
-
249
-
250
- def test_local_translator(msg):
251
- """Tests that a local translator works and that the local translator from
252
- the cross module is not applied"""
253
- with pytest.raises(RuntimeError) as excinfo:
254
- m.throws6()
255
- assert msg(excinfo.value) == "MyException6 only handled in this module"
256
-
257
- with pytest.raises(RuntimeError) as excinfo:
258
- m.throws_local_error()
259
- assert not isinstance(excinfo.value, KeyError)
260
- assert msg(excinfo.value) == "never caught"
261
-
262
- with pytest.raises(Exception) as excinfo:
263
- m.throws_local_simple_error()
264
- assert not isinstance(excinfo.value, cm.LocalSimpleException)
265
- assert msg(excinfo.value) == "this mod"