xcoll 0.3.6__py3-none-any.whl → 0.5.0__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 (350) hide show
  1. xcoll/__init__.py +13 -4
  2. xcoll/beam_elements/__init__.py +14 -6
  3. xcoll/beam_elements/absorber.py +41 -7
  4. xcoll/beam_elements/base.py +1202 -247
  5. xcoll/beam_elements/blowup.py +198 -0
  6. xcoll/beam_elements/elements_src/black_absorber.h +136 -0
  7. xcoll/beam_elements/elements_src/black_crystal.h +129 -0
  8. xcoll/beam_elements/elements_src/blowup.h +42 -0
  9. xcoll/beam_elements/elements_src/emittance_monitor.h +109 -0
  10. xcoll/beam_elements/{collimators_src → elements_src}/everest_block.h +59 -30
  11. xcoll/beam_elements/elements_src/everest_collimator.h +237 -0
  12. xcoll/beam_elements/elements_src/everest_crystal.h +280 -0
  13. xcoll/beam_elements/everest.py +65 -119
  14. xcoll/beam_elements/monitor.py +428 -0
  15. xcoll/colldb.py +276 -747
  16. xcoll/general.py +5 -5
  17. xcoll/headers/checks.h +1 -1
  18. xcoll/headers/particle_states.h +2 -2
  19. xcoll/initial_distribution.py +207 -0
  20. xcoll/install.py +179 -0
  21. xcoll/interaction_record/__init__.py +1 -0
  22. xcoll/interaction_record/interaction_record.py +298 -0
  23. xcoll/interaction_record/interaction_record_src/interaction_record.h +98 -0
  24. xcoll/{impacts → interaction_record}/interaction_types.py +11 -4
  25. xcoll/line_tools.py +82 -0
  26. xcoll/lossmap.py +219 -0
  27. xcoll/manager.py +2 -937
  28. xcoll/rf_sweep.py +1 -1
  29. xcoll/scattering_routines/everest/amorphous.h +232 -0
  30. xcoll/scattering_routines/everest/channeling.h +240 -0
  31. xcoll/scattering_routines/everest/crystal_parameters.h +137 -0
  32. xcoll/scattering_routines/everest/everest.h +11 -30
  33. xcoll/scattering_routines/everest/everest.py +13 -10
  34. xcoll/scattering_routines/everest/jaw.h +28 -197
  35. xcoll/scattering_routines/everest/materials.py +37 -15
  36. xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +31 -10
  37. xcoll/scattering_routines/everest/nuclear_interaction.h +86 -0
  38. xcoll/scattering_routines/everest/properties.h +6 -1
  39. xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a +0 -0
  40. xcoll/scattering_routines/geant4/collimasim/.git +1 -0
  41. xcoll/scattering_routines/geant4/collimasim/.gitignore +12 -0
  42. xcoll/scattering_routines/geant4/collimasim/.gitmodules +3 -0
  43. xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +26 -0
  44. xcoll/scattering_routines/geant4/collimasim/README.md +21 -0
  45. xcoll/scattering_routines/geant4/collimasim/docs/Makefile +20 -0
  46. xcoll/scattering_routines/geant4/collimasim/docs/make.bat +35 -0
  47. xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +10 -0
  48. xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +59 -0
  49. xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +26 -0
  50. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +37 -0
  51. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +19 -0
  52. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +65 -0
  53. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +73 -0
  54. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +1 -0
  55. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +9 -0
  56. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +386 -0
  57. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +45 -0
  58. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
  59. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +16 -0
  60. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +8 -0
  61. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +3 -0
  62. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +19 -0
  63. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +969 -0
  64. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +84 -0
  65. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +48 -0
  66. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +16 -0
  67. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +103 -0
  68. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +45 -0
  69. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +151 -0
  70. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +3 -0
  71. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +297 -0
  72. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +29 -0
  73. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +6 -0
  74. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +180 -0
  75. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +23 -0
  76. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +192 -0
  77. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +11 -0
  78. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +81 -0
  79. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +93 -0
  80. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +310 -0
  81. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +109 -0
  82. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +43 -0
  83. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +171 -0
  84. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +251 -0
  85. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +305 -0
  86. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +1297 -0
  87. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +262 -0
  88. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +396 -0
  89. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +568 -0
  90. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +337 -0
  91. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +13 -0
  92. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +463 -0
  93. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +286 -0
  94. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
  95. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +174 -0
  96. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +308 -0
  97. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +91 -0
  98. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +95 -0
  99. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +2050 -0
  100. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +542 -0
  101. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +8 -0
  102. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +648 -0
  103. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +381 -0
  104. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +343 -0
  105. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +48 -0
  106. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +105 -0
  107. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +72 -0
  108. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  109. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  110. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
  111. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  112. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
  113. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +130 -0
  114. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +96 -0
  115. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +8 -0
  116. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +548 -0
  117. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +605 -0
  118. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +144 -0
  119. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +1432 -0
  120. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +213 -0
  121. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +2 -0
  122. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +65 -0
  123. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +709 -0
  124. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +1021 -0
  125. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +104 -0
  126. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +346 -0
  127. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +467 -0
  128. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +978 -0
  129. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +55 -0
  130. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +606 -0
  131. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +284 -0
  132. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +163 -0
  133. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +121 -0
  134. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +193 -0
  135. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +275 -0
  136. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +1741 -0
  137. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +163 -0
  138. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +65 -0
  139. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +2497 -0
  140. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +1879 -0
  141. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +103 -0
  142. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +375 -0
  143. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +747 -0
  144. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +88 -0
  145. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +11 -0
  146. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +52 -0
  147. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +12 -0
  148. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +6 -0
  149. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +21 -0
  150. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  151. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +482 -0
  152. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +63 -0
  153. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +41 -0
  154. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +56 -0
  155. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +155 -0
  156. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +503 -0
  157. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +208 -0
  158. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +275 -0
  159. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +73 -0
  160. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +33 -0
  161. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  162. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +279 -0
  163. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  164. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +143 -0
  165. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +85 -0
  166. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +179 -0
  167. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +151 -0
  168. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +91 -0
  169. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +85 -0
  170. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +19 -0
  171. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +12 -0
  172. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +26 -0
  173. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +25 -0
  174. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +216 -0
  175. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +163 -0
  176. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +286 -0
  177. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +536 -0
  178. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +107 -0
  179. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +248 -0
  180. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +227 -0
  181. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +202 -0
  182. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +84 -0
  183. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +210 -0
  184. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +550 -0
  185. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +473 -0
  186. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +84 -0
  187. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +21 -0
  188. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +28 -0
  189. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +39 -0
  190. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +46 -0
  191. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +6 -0
  192. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +41 -0
  193. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +35 -0
  194. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +41 -0
  195. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +10 -0
  196. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +165 -0
  197. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +53 -0
  198. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +238 -0
  199. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +126 -0
  200. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +141 -0
  201. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +117 -0
  202. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +41 -0
  203. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +50 -0
  204. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +69 -0
  205. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +42 -0
  206. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +348 -0
  207. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +771 -0
  208. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +47 -0
  209. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +22 -0
  210. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +23 -0
  211. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +326 -0
  212. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +15 -0
  213. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +148 -0
  214. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +272 -0
  215. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +119 -0
  216. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +51 -0
  217. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +5 -0
  218. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +285 -0
  219. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +12 -0
  220. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +265 -0
  221. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +397 -0
  222. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +520 -0
  223. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +49 -0
  224. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +94 -0
  225. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +125 -0
  226. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +331 -0
  227. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +153 -0
  228. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +284 -0
  229. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +107 -0
  230. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +257 -0
  231. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +412 -0
  232. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +517 -0
  233. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +102 -0
  234. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +92 -0
  235. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +233 -0
  236. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +360 -0
  237. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +472 -0
  238. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +593 -0
  239. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +524 -0
  240. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +441 -0
  241. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +103 -0
  242. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +267 -0
  243. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +73 -0
  244. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +59 -0
  245. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +235 -0
  246. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +146 -0
  247. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +189 -0
  248. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +82 -0
  249. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +560 -0
  250. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +651 -0
  251. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +500 -0
  252. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +253 -0
  253. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +452 -0
  254. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +318 -0
  255. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +342 -0
  256. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +291 -0
  257. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +131 -0
  258. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +318 -0
  259. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +144 -0
  260. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +29 -0
  261. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +66 -0
  262. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +44 -0
  263. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +22 -0
  264. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +9 -0
  265. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +510 -0
  266. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +408 -0
  267. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
  268. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +117 -0
  269. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +70 -0
  270. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +86 -0
  271. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +257 -0
  272. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +44 -0
  273. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +23 -0
  274. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +39 -0
  275. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +64 -0
  276. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +402 -0
  277. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +233 -0
  278. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +276 -0
  279. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +214 -0
  280. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +3 -0
  281. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +65 -0
  282. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +41 -0
  283. xcoll/scattering_routines/geant4/collimasim/pyproject.toml +8 -0
  284. xcoll/scattering_routines/geant4/collimasim/setup.py +144 -0
  285. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +403 -0
  286. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +100 -0
  287. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +763 -0
  288. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +118 -0
  289. xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +8 -0
  290. xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +63 -0
  291. xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +142 -0
  292. xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +556 -0
  293. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +6 -0
  294. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +24 -0
  295. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +1 -0
  296. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +1 -0
  297. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +1 -0
  298. xcoll/scattering_routines/geant4/collimasim/tests/README.md +25 -0
  299. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +25 -0
  300. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +18 -0
  301. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +68 -0
  302. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +15 -0
  303. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +110 -0
  304. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +7 -0
  305. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +3 -0
  306. xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +54 -0
  307. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +3 -0
  308. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +3 -0
  309. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +5 -0
  310. xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +51 -0
  311. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +65 -0
  312. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +59 -0
  313. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +102 -0
  314. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +75 -0
  315. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +74 -0
  316. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +84 -0
  317. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +159 -0
  318. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +99 -0
  319. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +78 -0
  320. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +88 -0
  321. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +80 -0
  322. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +97 -0
  323. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +96 -0
  324. xcoll/scattering_routines/geometry/__init__.py +6 -0
  325. xcoll/scattering_routines/geometry/collimator_geometry.h +218 -0
  326. xcoll/scattering_routines/geometry/crystal_geometry.h +153 -0
  327. xcoll/scattering_routines/geometry/geometry.py +26 -0
  328. xcoll/scattering_routines/geometry/get_s.h +92 -0
  329. xcoll/scattering_routines/geometry/methods.h +111 -0
  330. xcoll/scattering_routines/geometry/objects.h +154 -0
  331. xcoll/scattering_routines/geometry/rotation.h +23 -0
  332. xcoll/scattering_routines/geometry/segments.h +226 -0
  333. xcoll/scattering_routines/geometry/sort.h +184 -0
  334. {xcoll-0.3.6.dist-info → xcoll-0.5.0.dist-info}/METADATA +1 -1
  335. xcoll-0.5.0.dist-info/RECORD +413 -0
  336. xcoll/beam_elements/collimators_src/absorber.h +0 -141
  337. xcoll/beam_elements/collimators_src/everest_collimator.h +0 -142
  338. xcoll/beam_elements/collimators_src/everest_crystal.h +0 -115
  339. xcoll/collimator_settings.py +0 -457
  340. xcoll/impacts/__init__.py +0 -1
  341. xcoll/impacts/impacts.py +0 -102
  342. xcoll/impacts/impacts_src/impacts.h +0 -99
  343. xcoll/scattering_routines/everest/crystal.h +0 -1302
  344. xcoll/scattering_routines/everest/scatter.h +0 -169
  345. xcoll/scattering_routines/everest/scatter_crystal.h +0 -260
  346. xcoll/scattering_routines/fluka/build_fluka_input.py +0 -58
  347. xcoll-0.3.6.dist-info/RECORD +0 -111
  348. {xcoll-0.3.6.dist-info → xcoll-0.5.0.dist-info}/LICENSE +0 -0
  349. {xcoll-0.3.6.dist-info → xcoll-0.5.0.dist-info}/NOTICE +0 -0
  350. {xcoll-0.3.6.dist-info → xcoll-0.5.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,969 @@
1
+ name: CI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ pull_request:
6
+ push:
7
+ branches:
8
+ - master
9
+ - stable
10
+ - v*
11
+
12
+ concurrency:
13
+ group: test-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ # This is the "main" test suite, which tests a large number of different
18
+ # versions of default compilers and Python versions in GitHub Actions.
19
+ standard:
20
+ strategy:
21
+ fail-fast: false
22
+ matrix:
23
+ runs-on: [ubuntu-latest, windows-latest, macos-latest]
24
+ python:
25
+ - 2.7
26
+ - 3.5
27
+ - 3.6
28
+ - 3.9
29
+ - 3.10-dev
30
+ - pypy2
31
+ - pypy3
32
+
33
+ # Items in here will either be added to the build matrix (if not
34
+ # present), or add new keys to an existing matrix element if all the
35
+ # existing keys match.
36
+ #
37
+ # We support three optional keys: args (both build), args1 (first
38
+ # build), and args2 (second build).
39
+ include:
40
+ # Just add a key
41
+ - runs-on: ubuntu-latest
42
+ python: 3.6
43
+ args: >
44
+ -DPYBIND11_FINDPYTHON=ON
45
+ - runs-on: windows-latest
46
+ python: 3.6
47
+ args: >
48
+ -DPYBIND11_FINDPYTHON=ON
49
+
50
+ # These items will be removed from the build matrix, keys must match.
51
+ exclude:
52
+ # Currently 32bit only, and we build 64bit
53
+ - runs-on: windows-latest
54
+ python: pypy2
55
+ - runs-on: windows-latest
56
+ python: pypy3
57
+
58
+ # TODO: PyPy2 7.3.3 segfaults, while 7.3.2 was fine.
59
+ - runs-on: ubuntu-latest
60
+ python: pypy2
61
+
62
+ name: "🐍 ${{ matrix.python }} • ${{ matrix.runs-on }} • x64 ${{ matrix.args }}"
63
+ runs-on: ${{ matrix.runs-on }}
64
+
65
+ steps:
66
+ - uses: actions/checkout@v2
67
+
68
+ - name: Setup Python ${{ matrix.python }}
69
+ uses: actions/setup-python@v2
70
+ with:
71
+ python-version: ${{ matrix.python }}
72
+
73
+ - name: Setup Boost (Linux)
74
+ if: runner.os == 'Linux'
75
+ run: sudo apt-get install libboost-dev
76
+
77
+ - name: Setup Boost (macOS)
78
+ if: runner.os == 'macOS'
79
+ run: brew install boost
80
+
81
+ - name: Update CMake
82
+ uses: jwlawson/actions-setup-cmake@v1.11
83
+
84
+ - name: Cache wheels
85
+ if: runner.os == 'macOS'
86
+ uses: actions/cache@v2
87
+ with:
88
+ # This path is specific to macOS - we really only need it for PyPy NumPy wheels
89
+ # See https://github.com/actions/cache/blob/master/examples.md#python---pip
90
+ # for ways to do this more generally
91
+ path: ~/Library/Caches/pip
92
+ # Look to see if there is a cache hit for the corresponding requirements file
93
+ key: ${{ runner.os }}-pip-${{ matrix.python }}-x64-${{ hashFiles('tests/requirements.txt') }}
94
+
95
+ - name: Prepare env
96
+ run: python -m pip install -r tests/requirements.txt --prefer-binary
97
+
98
+ - name: Setup annotations on Linux
99
+ if: runner.os == 'Linux'
100
+ run: python -m pip install pytest-github-actions-annotate-failures
101
+
102
+ # First build - C++11 mode and inplace
103
+ - name: Configure C++11 ${{ matrix.args }}
104
+ run: >
105
+ cmake -S . -B .
106
+ -DPYBIND11_WERROR=ON
107
+ -DDOWNLOAD_CATCH=ON
108
+ -DDOWNLOAD_EIGEN=ON
109
+ -DCMAKE_CXX_STANDARD=11
110
+ ${{ matrix.args }}
111
+
112
+ - name: Build C++11
113
+ run: cmake --build . -j 2
114
+
115
+ - name: Python tests C++11
116
+ run: cmake --build . --target pytest -j 2
117
+
118
+ - name: C++11 tests
119
+ # TODO: Figure out how to load the DLL on Python 3.8+
120
+ if: "!(runner.os == 'Windows' && (matrix.python == 3.8 || matrix.python == 3.9 || matrix.python == '3.10-dev'))"
121
+ run: cmake --build . --target cpptest -j 2
122
+
123
+ - name: Interface test C++11
124
+ run: cmake --build . --target test_cmake_build
125
+
126
+ - name: Clean directory
127
+ run: git clean -fdx
128
+
129
+ # Second build - C++17 mode and in a build directory
130
+ - name: Configure ${{ matrix.args2 }}
131
+ run: >
132
+ cmake -S . -B build2
133
+ -DPYBIND11_WERROR=ON
134
+ -DDOWNLOAD_CATCH=ON
135
+ -DDOWNLOAD_EIGEN=ON
136
+ -DCMAKE_CXX_STANDARD=17
137
+ ${{ matrix.args }}
138
+ ${{ matrix.args2 }}
139
+
140
+ - name: Build
141
+ run: cmake --build build2 -j 2
142
+
143
+ - name: Python tests
144
+ run: cmake --build build2 --target pytest
145
+
146
+ - name: C++ tests
147
+ # TODO: Figure out how to load the DLL on Python 3.8+
148
+ if: "!(runner.os == 'Windows' && (matrix.python == 3.8 || matrix.python == 3.9 || matrix.python == '3.10-dev'))"
149
+ run: cmake --build build2 --target cpptest
150
+
151
+ # Third build - C++17 mode with unstable ABI
152
+ - name: Configure (unstable ABI)
153
+ run: >
154
+ cmake -S . -B build3
155
+ -DPYBIND11_WERROR=ON
156
+ -DDOWNLOAD_CATCH=ON
157
+ -DDOWNLOAD_EIGEN=ON
158
+ -DCMAKE_CXX_STANDARD=17
159
+ -DPYBIND11_INTERNALS_VERSION=10000000
160
+ "-DPYBIND11_TEST_OVERRIDE=test_call_policies.cpp;test_gil_scoped.cpp;test_thread.cpp"
161
+ ${{ matrix.args }}
162
+
163
+ - name: Build (unstable ABI)
164
+ run: cmake --build build3 -j 2
165
+
166
+ - name: Python tests (unstable ABI)
167
+ run: cmake --build build3 --target pytest
168
+
169
+ - name: Interface test
170
+ run: cmake --build build2 --target test_cmake_build
171
+
172
+ # Eventually Microsoft might have an action for setting up
173
+ # MSVC, but for now, this action works:
174
+ - name: Prepare compiler environment for Windows 🐍 2.7
175
+ if: matrix.python == 2.7 && runner.os == 'Windows'
176
+ uses: ilammy/msvc-dev-cmd@v1.10.0
177
+ with:
178
+ arch: x64
179
+
180
+ # This makes two environment variables available in the following step(s)
181
+ - name: Set Windows 🐍 2.7 environment variables
182
+ if: matrix.python == 2.7 && runner.os == 'Windows'
183
+ shell: bash
184
+ run: |
185
+ echo "DISTUTILS_USE_SDK=1" >> $GITHUB_ENV
186
+ echo "MSSdk=1" >> $GITHUB_ENV
187
+
188
+ # This makes sure the setup_helpers module can build packages using
189
+ # setuptools
190
+ - name: Setuptools helpers test
191
+ run: pytest tests/extra_setuptools
192
+
193
+
194
+ deadsnakes:
195
+ strategy:
196
+ fail-fast: false
197
+ matrix:
198
+ include:
199
+ - python-version: 3.9
200
+ python-debug: true
201
+ valgrind: true
202
+ - python-version: 3.10-dev
203
+ python-debug: false
204
+
205
+ name: "🐍 ${{ matrix.python-version }}${{ matrix.python-debug && '-dbg' || '' }} (deadsnakes)${{ matrix.valgrind && ' • Valgrind' || '' }} • x64"
206
+ runs-on: ubuntu-latest
207
+
208
+ steps:
209
+ - uses: actions/checkout@v2
210
+
211
+ - name: Setup Python ${{ matrix.python-version }} (deadsnakes)
212
+ uses: deadsnakes/action@v2.1.1
213
+ with:
214
+ python-version: ${{ matrix.python-version }}
215
+ debug: ${{ matrix.python-debug }}
216
+
217
+ - name: Update CMake
218
+ uses: jwlawson/actions-setup-cmake@v1.11
219
+
220
+ - name: Valgrind cache
221
+ if: matrix.valgrind
222
+ uses: actions/cache@v2
223
+ id: cache-valgrind
224
+ with:
225
+ path: valgrind
226
+ key: 3.16.1 # Valgrind version
227
+
228
+ - name: Compile Valgrind
229
+ if: matrix.valgrind && steps.cache-valgrind.outputs.cache-hit != 'true'
230
+ run: |
231
+ VALGRIND_VERSION=3.16.1
232
+ curl https://sourceware.org/pub/valgrind/valgrind-$VALGRIND_VERSION.tar.bz2 -o - | tar xj
233
+ mv valgrind-$VALGRIND_VERSION valgrind
234
+ cd valgrind
235
+ ./configure
236
+ make -j 2 > /dev/null
237
+
238
+ - name: Install Valgrind
239
+ if: matrix.valgrind
240
+ working-directory: valgrind
241
+ run: |
242
+ sudo make install
243
+ sudo apt-get update
244
+ sudo apt-get install libc6-dbg # Needed by Valgrind
245
+
246
+ - name: Prepare env
247
+ run: python -m pip install -r tests/requirements.txt --prefer-binary
248
+
249
+ - name: Configure
250
+ run: >
251
+ cmake -S . -B build
252
+ -DCMAKE_BUILD_TYPE=Debug
253
+ -DPYBIND11_WERROR=ON
254
+ -DDOWNLOAD_CATCH=ON
255
+ -DDOWNLOAD_EIGEN=ON
256
+ -DCMAKE_CXX_STANDARD=17
257
+
258
+ - name: Build
259
+ run: cmake --build build -j 2
260
+
261
+ - name: Python tests
262
+ run: cmake --build build --target pytest
263
+
264
+ - name: C++ tests
265
+ run: cmake --build build --target cpptest
266
+
267
+ - name: Run Valgrind on Python tests
268
+ if: matrix.valgrind
269
+ run: cmake --build build --target memcheck
270
+
271
+
272
+ # Testing on clang using the excellent silkeh clang docker images
273
+ clang:
274
+ runs-on: ubuntu-latest
275
+ strategy:
276
+ fail-fast: false
277
+ matrix:
278
+ clang:
279
+ - 3.6
280
+ - 3.7
281
+ - 3.9
282
+ - 7
283
+ - 9
284
+ - dev
285
+ std:
286
+ - 11
287
+ include:
288
+ - clang: 5
289
+ std: 14
290
+ - clang: 10
291
+ std: 20
292
+ - clang: 10
293
+ std: 17
294
+
295
+ name: "🐍 3 • Clang ${{ matrix.clang }} • C++${{ matrix.std }} • x64"
296
+ container: "silkeh/clang:${{ matrix.clang }}"
297
+
298
+ steps:
299
+ - uses: actions/checkout@v2
300
+
301
+ - name: Add wget and python3
302
+ run: apt-get update && apt-get install -y python3-dev python3-numpy python3-pytest libeigen3-dev
303
+
304
+ - name: Configure
305
+ shell: bash
306
+ run: >
307
+ cmake -S . -B build
308
+ -DPYBIND11_WERROR=ON
309
+ -DDOWNLOAD_CATCH=ON
310
+ -DCMAKE_CXX_STANDARD=${{ matrix.std }}
311
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
312
+
313
+ - name: Build
314
+ run: cmake --build build -j 2
315
+
316
+ - name: Python tests
317
+ run: cmake --build build --target pytest
318
+
319
+ - name: C++ tests
320
+ run: cmake --build build --target cpptest
321
+
322
+ - name: Interface test
323
+ run: cmake --build build --target test_cmake_build
324
+
325
+
326
+ # Testing NVCC; forces sources to behave like .cu files
327
+ cuda:
328
+ runs-on: ubuntu-latest
329
+ name: "🐍 3.8 • CUDA 11 • Ubuntu 20.04"
330
+ container: nvidia/cuda:11.0-devel-ubuntu20.04
331
+
332
+ steps:
333
+ - uses: actions/checkout@v2
334
+
335
+ # tzdata will try to ask for the timezone, so set the DEBIAN_FRONTEND
336
+ - name: Install 🐍 3
337
+ run: apt-get update && DEBIAN_FRONTEND="noninteractive" apt-get install -y cmake git python3-dev python3-pytest python3-numpy
338
+
339
+ - name: Configure
340
+ run: cmake -S . -B build -DPYBIND11_CUDA_TESTS=ON -DPYBIND11_WERROR=ON -DDOWNLOAD_CATCH=ON
341
+
342
+ - name: Build
343
+ run: cmake --build build -j2 --verbose
344
+
345
+ - name: Python tests
346
+ run: cmake --build build --target pytest
347
+
348
+
349
+ # TODO: Internal compiler error - report to NVidia
350
+ # # Testing CentOS 8 + PGI compilers
351
+ # centos-nvhpc8:
352
+ # runs-on: ubuntu-latest
353
+ # name: "🐍 3 • CentOS8 / PGI 20.11 • x64"
354
+ # container: centos:8
355
+ #
356
+ # steps:
357
+ # - uses: actions/checkout@v2
358
+ #
359
+ # - name: Add Python 3 and a few requirements
360
+ # run: yum update -y && yum install -y git python3-devel python3-numpy python3-pytest make environment-modules
361
+ #
362
+ # - name: Install CMake with pip
363
+ # run: |
364
+ # python3 -m pip install --upgrade pip
365
+ # python3 -m pip install cmake --prefer-binary
366
+ #
367
+ # - name: Install NVidia HPC SDK
368
+ # run: >
369
+ # yum -y install
370
+ # https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc-20-11-20.11-1.x86_64.rpm
371
+ # https://developer.download.nvidia.com/hpc-sdk/20.11/nvhpc-2020-20.11-1.x86_64.rpm
372
+ #
373
+ # - name: Configure
374
+ # shell: bash
375
+ # run: |
376
+ # source /etc/profile.d/modules.sh
377
+ # module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/20.11
378
+ # cmake -S . -B build -DDOWNLOAD_CATCH=ON -DCMAKE_CXX_STANDARD=14 -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
379
+ #
380
+ # - name: Build
381
+ # run: cmake --build build -j 2 --verbose
382
+ #
383
+ # - name: Python tests
384
+ # run: cmake --build build --target pytest
385
+ #
386
+ # - name: C++ tests
387
+ # run: cmake --build build --target cpptest
388
+ #
389
+ # - name: Interface test
390
+ # run: cmake --build build --target test_cmake_build
391
+
392
+
393
+ # Testing on CentOS 7 + PGI compilers, which seems to require more workarounds
394
+ centos-nvhpc7:
395
+ runs-on: ubuntu-latest
396
+ name: "🐍 3 • CentOS7 / PGI 20.9 • x64"
397
+ container: centos:7
398
+
399
+ steps:
400
+ - uses: actions/checkout@v2
401
+
402
+ - name: Add Python 3 and a few requirements
403
+ run: yum update -y && yum install -y epel-release && yum install -y git python3-devel make environment-modules cmake3
404
+
405
+ - name: Install NVidia HPC SDK
406
+ run: yum -y install https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-20-9-20.9-1.x86_64.rpm https://developer.download.nvidia.com/hpc-sdk/20.9/nvhpc-2020-20.9-1.x86_64.rpm
407
+
408
+ # On CentOS 7, we have to filter a few tests (compiler internal error)
409
+ # and allow deeper template recursion (not needed on CentOS 8 with a newer
410
+ # standard library). On some systems, you many need further workarounds:
411
+ # https://github.com/pybind/pybind11/pull/2475
412
+ - name: Configure
413
+ shell: bash
414
+ run: |
415
+ source /etc/profile.d/modules.sh
416
+ module load /opt/nvidia/hpc_sdk/modulefiles/nvhpc/20.9
417
+ cmake3 -S . -B build -DDOWNLOAD_CATCH=ON \
418
+ -DCMAKE_CXX_STANDARD=11 \
419
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)") \
420
+ -DCMAKE_CXX_FLAGS="-Wc,--pending_instantiations=0" \
421
+ -DPYBIND11_TEST_FILTER="test_smart_ptr.cpp;test_virtual_functions.cpp"
422
+
423
+ # Building before installing Pip should produce a warning but not an error
424
+ - name: Build
425
+ run: cmake3 --build build -j 2 --verbose
426
+
427
+ - name: Install CMake with pip
428
+ run: |
429
+ python3 -m pip install --upgrade pip
430
+ python3 -m pip install pytest
431
+
432
+ - name: Python tests
433
+ run: cmake3 --build build --target pytest
434
+
435
+ - name: C++ tests
436
+ run: cmake3 --build build --target cpptest
437
+
438
+ - name: Interface test
439
+ run: cmake3 --build build --target test_cmake_build
440
+
441
+
442
+ # Testing on GCC using the GCC docker images (only recent images supported)
443
+ gcc:
444
+ runs-on: ubuntu-latest
445
+ strategy:
446
+ fail-fast: false
447
+ matrix:
448
+ gcc:
449
+ - 7
450
+ - latest
451
+ std:
452
+ - 11
453
+ include:
454
+ - gcc: 10
455
+ std: 20
456
+
457
+ name: "🐍 3 • GCC ${{ matrix.gcc }} • C++${{ matrix.std }}• x64"
458
+ container: "gcc:${{ matrix.gcc }}"
459
+
460
+ steps:
461
+ - uses: actions/checkout@v1
462
+
463
+ - name: Add Python 3
464
+ run: apt-get update; apt-get install -y python3-dev python3-numpy python3-pytest python3-pip libeigen3-dev
465
+
466
+ - name: Update pip
467
+ run: python3 -m pip install --upgrade pip
468
+
469
+ - name: Update CMake
470
+ uses: jwlawson/actions-setup-cmake@v1.11
471
+
472
+ - name: Configure
473
+ shell: bash
474
+ run: >
475
+ cmake -S . -B build
476
+ -DPYBIND11_WERROR=ON
477
+ -DDOWNLOAD_CATCH=ON
478
+ -DCMAKE_CXX_STANDARD=${{ matrix.std }}
479
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
480
+
481
+ - name: Build
482
+ run: cmake --build build -j 2
483
+
484
+ - name: Python tests
485
+ run: cmake --build build --target pytest
486
+
487
+ - name: C++ tests
488
+ run: cmake --build build --target cpptest
489
+
490
+ - name: Interface test
491
+ run: cmake --build build --target test_cmake_build
492
+
493
+
494
+ # Testing on ICC using the oneAPI apt repo
495
+ icc:
496
+ runs-on: ubuntu-20.04
497
+ strategy:
498
+ fail-fast: false
499
+
500
+ name: "🐍 3 • ICC latest • x64"
501
+
502
+ steps:
503
+ - uses: actions/checkout@v2
504
+
505
+ - name: Add apt repo
506
+ run: |
507
+ sudo apt-get update
508
+ sudo apt-get install -y wget build-essential pkg-config cmake ca-certificates gnupg
509
+ wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
510
+ sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
511
+ echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
512
+
513
+ - name: Add ICC & Python 3
514
+ run: sudo apt-get update; sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic cmake python3-dev python3-numpy python3-pytest python3-pip
515
+
516
+ - name: Update pip
517
+ run: |
518
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
519
+ python3 -m pip install --upgrade pip
520
+
521
+ - name: Install dependencies
522
+ run: |
523
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
524
+ python3 -m pip install -r tests/requirements.txt --prefer-binary
525
+
526
+ - name: Configure C++11
527
+ run: |
528
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
529
+ cmake -S . -B build-11 \
530
+ -DPYBIND11_WERROR=ON \
531
+ -DDOWNLOAD_CATCH=ON \
532
+ -DDOWNLOAD_EIGEN=OFF \
533
+ -DCMAKE_CXX_STANDARD=11 \
534
+ -DCMAKE_CXX_COMPILER=$(which icpc) \
535
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
536
+
537
+ - name: Build C++11
538
+ run: |
539
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
540
+ cmake --build build-11 -j 2 -v
541
+
542
+ - name: Python tests C++11
543
+ run: |
544
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
545
+ sudo service apport stop
546
+ cmake --build build-11 --target check
547
+
548
+ - name: C++ tests C++11
549
+ run: |
550
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
551
+ cmake --build build-11 --target cpptest
552
+
553
+ - name: Interface test C++11
554
+ run: |
555
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
556
+ cmake --build build-11 --target test_cmake_build
557
+
558
+ - name: Configure C++17
559
+ run: |
560
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
561
+ cmake -S . -B build-17 \
562
+ -DPYBIND11_WERROR=ON \
563
+ -DDOWNLOAD_CATCH=ON \
564
+ -DDOWNLOAD_EIGEN=OFF \
565
+ -DCMAKE_CXX_STANDARD=17 \
566
+ -DCMAKE_CXX_COMPILER=$(which icpc) \
567
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
568
+
569
+ - name: Build C++17
570
+ run: |
571
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
572
+ cmake --build build-17 -j 2 -v
573
+
574
+ - name: Python tests C++17
575
+ run: |
576
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
577
+ sudo service apport stop
578
+ cmake --build build-17 --target check
579
+
580
+ - name: C++ tests C++17
581
+ run: |
582
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
583
+ cmake --build build-17 --target cpptest
584
+
585
+ - name: Interface test C++17
586
+ run: |
587
+ set +e; source /opt/intel/oneapi/setvars.sh; set -e
588
+ cmake --build build-17 --target test_cmake_build
589
+
590
+
591
+ # Testing on CentOS (manylinux uses a centos base, and this is an easy way
592
+ # to get GCC 4.8, which is the manylinux1 compiler).
593
+ centos:
594
+ runs-on: ubuntu-latest
595
+ strategy:
596
+ fail-fast: false
597
+ matrix:
598
+ centos:
599
+ - 7 # GCC 4.8
600
+ - 8
601
+
602
+ name: "🐍 3 • CentOS ${{ matrix.centos }} • x64"
603
+ container: "centos:${{ matrix.centos }}"
604
+
605
+ steps:
606
+ - uses: actions/checkout@v2
607
+
608
+ - name: Add Python 3
609
+ run: yum update -y && yum install -y python3-devel gcc-c++ make git
610
+
611
+ - name: Update pip
612
+ run: python3 -m pip install --upgrade pip
613
+
614
+ - name: Install dependencies
615
+ run: python3 -m pip install cmake -r tests/requirements.txt --prefer-binary
616
+
617
+ - name: VAR_BUILD_TYPE 7
618
+ if: matrix.centos == 7
619
+ run: echo MinSizeRel > VAR_BUILD_TYPE
620
+
621
+ # Using Release to avoid segfault that appeared around 2021-06-04,
622
+ # apparently when the gcc version changed from 8.3 to 8.4.
623
+ - name: VAR_BUILD_TYPE 8
624
+ if: matrix.centos == 8
625
+ run: echo Release > VAR_BUILD_TYPE
626
+
627
+ # Temporally disabling EIGEN due to SSL issue in CentOS 7
628
+ - name: Configure
629
+ shell: bash
630
+ run: >
631
+ cmake -S . -B build
632
+ -DCMAKE_BUILD_TYPE=$(cat VAR_BUILD_TYPE)
633
+ -DPYBIND11_WERROR=ON
634
+ -DDOWNLOAD_CATCH=ON
635
+ -DDOWNLOAD_EIGEN=ON
636
+ -DCMAKE_CXX_STANDARD=11
637
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
638
+
639
+ - name: Build
640
+ run: cmake --build build -j 2
641
+
642
+ - name: Python tests
643
+ run: cmake --build build --target pytest
644
+
645
+ - name: C++ tests
646
+ run: cmake --build build --target cpptest
647
+
648
+ - name: Interface test
649
+ run: cmake --build build --target test_cmake_build
650
+
651
+
652
+ # This tests an "install" with the CMake tools
653
+ install-classic:
654
+ name: "🐍 3.5 • Debian • x86 • Install"
655
+ runs-on: ubuntu-latest
656
+ container: i386/debian:stretch
657
+
658
+ steps:
659
+ - uses: actions/checkout@v1
660
+
661
+ - name: Install requirements
662
+ run: |
663
+ apt-get update
664
+ apt-get install -y git make cmake g++ libeigen3-dev python3-dev python3-pip
665
+ pip3 install "pytest==3.1.*"
666
+
667
+ - name: Configure for install
668
+ run: >
669
+ cmake .
670
+ -DPYBIND11_INSTALL=1 -DPYBIND11_TEST=0
671
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
672
+
673
+ - name: Make and install
674
+ run: make install
675
+
676
+ - name: Copy tests to new directory
677
+ run: cp -a tests /pybind11-tests
678
+
679
+ - name: Make a new test directory
680
+ run: mkdir /build-tests
681
+
682
+ - name: Configure tests
683
+ run: >
684
+ cmake ../pybind11-tests
685
+ -DDOWNLOAD_CATCH=ON
686
+ -DPYBIND11_WERROR=ON
687
+ -DPYTHON_EXECUTABLE=$(python3 -c "import sys; print(sys.executable)")
688
+ working-directory: /build-tests
689
+
690
+ - name: Python tests
691
+ run: make pytest -j 2
692
+ working-directory: /build-tests
693
+
694
+
695
+ # This verifies that the documentation is not horribly broken, and does a
696
+ # basic sanity check on the SDist.
697
+ doxygen:
698
+ name: "Documentation build test"
699
+ runs-on: ubuntu-latest
700
+
701
+ steps:
702
+ - uses: actions/checkout@v2
703
+
704
+ - uses: actions/setup-python@v2
705
+
706
+ - name: Install Doxygen
707
+ run: sudo apt-get install -y doxygen librsvg2-bin # Changed to rsvg-convert in 20.04
708
+
709
+ - name: Install docs & setup requirements
710
+ run: python3 -m pip install -r docs/requirements.txt
711
+
712
+ - name: Build docs
713
+ run: python3 -m sphinx -W -b html docs docs/.build
714
+
715
+ - name: Make SDist
716
+ run: python3 setup.py sdist
717
+
718
+ - run: git status --ignored
719
+
720
+ - name: Check local include dir
721
+ run: >
722
+ ls pybind11;
723
+ python3 -c "import pybind11, pathlib; assert (a := pybind11.get_include()) == (b := str(pathlib.Path('include').resolve())), f'{a} != {b}'"
724
+
725
+ - name: Compare Dists (headers only)
726
+ working-directory: include
727
+ run: |
728
+ python3 -m pip install --user -U ../dist/*
729
+ installed=$(python3 -c "import pybind11; print(pybind11.get_include() + '/pybind11')")
730
+ diff -rq $installed ./pybind11
731
+
732
+ win32:
733
+ strategy:
734
+ fail-fast: false
735
+ matrix:
736
+ python:
737
+ - 3.5
738
+ - 3.6
739
+ - 3.7
740
+ - 3.8
741
+ - 3.9
742
+ - pypy3
743
+ # TODO: fix hang on pypy2
744
+
745
+ include:
746
+ - python: 3.9
747
+ args: -DCMAKE_CXX_STANDARD=20 -DDOWNLOAD_EIGEN=OFF
748
+ - python: 3.8
749
+ args: -DCMAKE_CXX_STANDARD=17
750
+
751
+ name: "🐍 ${{ matrix.python }} • MSVC 2019 • x86 ${{ matrix.args }}"
752
+ runs-on: windows-latest
753
+
754
+ steps:
755
+ - uses: actions/checkout@v2
756
+
757
+ - name: Setup Python ${{ matrix.python }}
758
+ uses: actions/setup-python@v2
759
+ with:
760
+ python-version: ${{ matrix.python }}
761
+ architecture: x86
762
+
763
+ - name: Update CMake
764
+ uses: jwlawson/actions-setup-cmake@v1.11
765
+
766
+ - name: Prepare MSVC
767
+ uses: ilammy/msvc-dev-cmd@v1.10.0
768
+ with:
769
+ arch: x86
770
+
771
+ - name: Prepare env
772
+ run: python -m pip install -r tests/requirements.txt --prefer-binary
773
+
774
+ # First build - C++11 mode and inplace
775
+ - name: Configure ${{ matrix.args }}
776
+ run: >
777
+ cmake -S . -B build
778
+ -G "Visual Studio 16 2019" -A Win32
779
+ -DPYBIND11_WERROR=ON
780
+ -DDOWNLOAD_CATCH=ON
781
+ -DDOWNLOAD_EIGEN=ON
782
+ ${{ matrix.args }}
783
+ - name: Build C++11
784
+ run: cmake --build build -j 2
785
+
786
+ - name: Python tests
787
+ run: cmake --build build -t pytest
788
+
789
+ win32-msvc2015:
790
+ name: "🐍 ${{ matrix.python }} • MSVC 2015 • x64"
791
+ runs-on: windows-latest
792
+ strategy:
793
+ fail-fast: false
794
+ matrix:
795
+ python:
796
+ - 2.7
797
+ - 3.6
798
+ - 3.7
799
+ # todo: check/cpptest does not support 3.8+ yet
800
+
801
+ steps:
802
+ - uses: actions/checkout@v2
803
+
804
+ - name: Setup 🐍 ${{ matrix.python }}
805
+ uses: actions/setup-python@v2
806
+ with:
807
+ python-version: ${{ matrix.python }}
808
+
809
+ - name: Update CMake
810
+ uses: jwlawson/actions-setup-cmake@v1.11
811
+
812
+ - name: Prepare MSVC
813
+ uses: ilammy/msvc-dev-cmd@v1.10.0
814
+ with:
815
+ toolset: 14.0
816
+
817
+ - name: Prepare env
818
+ run: python -m pip install -r tests/requirements.txt --prefer-binary
819
+
820
+ # First build - C++11 mode and inplace
821
+ - name: Configure
822
+ run: >
823
+ cmake -S . -B build
824
+ -G "Visual Studio 14 2015" -A x64
825
+ -DPYBIND11_WERROR=ON
826
+ -DDOWNLOAD_CATCH=ON
827
+ -DDOWNLOAD_EIGEN=ON
828
+
829
+ - name: Build C++14
830
+ run: cmake --build build -j 2
831
+
832
+ - name: Run all checks
833
+ run: cmake --build build -t check
834
+
835
+
836
+ win32-msvc2017:
837
+ name: "🐍 ${{ matrix.python }} • MSVC 2017 • x64"
838
+ runs-on: windows-2016
839
+ strategy:
840
+ fail-fast: false
841
+ matrix:
842
+ python:
843
+ - 2.7
844
+ - 3.5
845
+ - 3.7
846
+ std:
847
+ - 14
848
+
849
+ include:
850
+ - python: 2.7
851
+ std: 17
852
+ args: >
853
+ -DCMAKE_CXX_FLAGS="/permissive- /EHsc /GR"
854
+
855
+ steps:
856
+ - uses: actions/checkout@v2
857
+
858
+ - name: Setup 🐍 ${{ matrix.python }}
859
+ uses: actions/setup-python@v2
860
+ with:
861
+ python-version: ${{ matrix.python }}
862
+
863
+ - name: Update CMake
864
+ uses: jwlawson/actions-setup-cmake@v1.11
865
+
866
+ - name: Prepare env
867
+ run: python -m pip install -r tests/requirements.txt --prefer-binary
868
+
869
+ # First build - C++11 mode and inplace
870
+ - name: Configure
871
+ run: >
872
+ cmake -S . -B build
873
+ -G "Visual Studio 15 2017" -A x64
874
+ -DPYBIND11_WERROR=ON
875
+ -DDOWNLOAD_CATCH=ON
876
+ -DDOWNLOAD_EIGEN=ON
877
+ -DCMAKE_CXX_STANDARD=${{ matrix.std }}
878
+ ${{ matrix.args }}
879
+
880
+ - name: Build ${{ matrix.std }}
881
+ run: cmake --build build -j 2
882
+
883
+ - name: Run all checks
884
+ run: cmake --build build -t check
885
+
886
+ mingw:
887
+ name: "🐍 3 • windows-latest • ${{ matrix.sys }}"
888
+ runs-on: windows-latest
889
+ defaults:
890
+ run:
891
+ shell: msys2 {0}
892
+ strategy:
893
+ fail-fast: false
894
+ matrix:
895
+ include:
896
+ - { sys: mingw64, env: x86_64 }
897
+ - { sys: mingw32, env: i686 }
898
+ steps:
899
+ # Force version because of https://github.com/msys2/setup-msys2/issues/167
900
+ - uses: msys2/setup-msys2@v2.4.2
901
+ with:
902
+ msystem: ${{matrix.sys}}
903
+ install: >-
904
+ git
905
+ mingw-w64-${{matrix.env}}-gcc
906
+ mingw-w64-${{matrix.env}}-python-pip
907
+ mingw-w64-${{matrix.env}}-python-numpy
908
+ mingw-w64-${{matrix.env}}-python-scipy
909
+ mingw-w64-${{matrix.env}}-cmake
910
+ mingw-w64-${{matrix.env}}-make
911
+ mingw-w64-${{matrix.env}}-python-pytest
912
+ mingw-w64-${{matrix.env}}-eigen3
913
+ mingw-w64-${{matrix.env}}-boost
914
+ mingw-w64-${{matrix.env}}-catch
915
+
916
+ - uses: actions/checkout@v2
917
+
918
+ - name: Configure C++11
919
+ # LTO leads to many undefined reference like
920
+ # `pybind11::detail::function_call::function_call(pybind11::detail::function_call&&)
921
+ run: cmake -G "MinGW Makefiles" -DCMAKE_CXX_STANDARD=11 -S . -B build
922
+
923
+ - name: Build C++11
924
+ run: cmake --build build -j 2
925
+
926
+ - name: Python tests C++11
927
+ run: cmake --build build --target pytest -j 2
928
+
929
+ - name: C++11 tests
930
+ run: cmake --build build --target cpptest -j 2
931
+
932
+ - name: Interface test C++11
933
+ run: cmake --build build --target test_cmake_build
934
+
935
+ - name: Clean directory
936
+ run: git clean -fdx
937
+
938
+ - name: Configure C++14
939
+ run: cmake -G "MinGW Makefiles" -DCMAKE_CXX_STANDARD=14 -S . -B build2
940
+
941
+ - name: Build C++14
942
+ run: cmake --build build2 -j 2
943
+
944
+ - name: Python tests C++14
945
+ run: cmake --build build2 --target pytest -j 2
946
+
947
+ - name: C++14 tests
948
+ run: cmake --build build2 --target cpptest -j 2
949
+
950
+ - name: Interface test C++14
951
+ run: cmake --build build2 --target test_cmake_build
952
+
953
+ - name: Clean directory
954
+ run: git clean -fdx
955
+
956
+ - name: Configure C++17
957
+ run: cmake -G "MinGW Makefiles" -DCMAKE_CXX_STANDARD=17 -S . -B build3
958
+
959
+ - name: Build C++17
960
+ run: cmake --build build3 -j 2
961
+
962
+ - name: Python tests C++17
963
+ run: cmake --build build3 --target pytest -j 2
964
+
965
+ - name: C++17 tests
966
+ run: cmake --build build3 --target cpptest -j 2
967
+
968
+ - name: Interface test C++17
969
+ run: cmake --build build3 --target test_cmake_build