xcoll 0.5.11__py3-none-any.whl → 0.6.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 (333) hide show
  1. xcoll/__init__.py +5 -18
  2. xcoll/beam_elements/__init__.py +1 -0
  3. xcoll/beam_elements/absorber.py +12 -2
  4. xcoll/beam_elements/base.py +162 -62
  5. xcoll/beam_elements/blowup.py +1 -0
  6. xcoll/beam_elements/elements_src/black_absorber.h +57 -58
  7. xcoll/beam_elements/elements_src/black_crystal.h +49 -50
  8. xcoll/beam_elements/elements_src/everest_block.h +21 -11
  9. xcoll/beam_elements/elements_src/everest_collimator.h +100 -91
  10. xcoll/beam_elements/elements_src/everest_crystal.h +145 -140
  11. xcoll/beam_elements/elements_src/transparent_collimator.h +126 -0
  12. xcoll/beam_elements/elements_src/transparent_crystal.h +118 -0
  13. xcoll/beam_elements/everest.py +16 -5
  14. xcoll/beam_elements/monitor.py +1 -0
  15. xcoll/beam_elements/transparent.py +83 -0
  16. xcoll/colldb.py +15 -6
  17. xcoll/general.py +1 -1
  18. xcoll/headers/particle_states.py +51 -0
  19. xcoll/initial_distribution.py +129 -103
  20. xcoll/interaction_record/interaction_record.py +2 -1
  21. xcoll/interaction_record/interaction_types.py +2 -2
  22. xcoll/line_tools.py +163 -74
  23. xcoll/lossmap.py +519 -127
  24. xcoll/plot.py +109 -0
  25. xcoll/rf_sweep.py +6 -0
  26. xcoll/scattering_routines/engine.py +600 -0
  27. xcoll/scattering_routines/environment.py +297 -0
  28. xcoll/scattering_routines/everest/amorphous.h +95 -71
  29. xcoll/scattering_routines/everest/{channeling.h → channelling.h} +121 -112
  30. xcoll/scattering_routines/everest/constants.h +1 -1
  31. xcoll/scattering_routines/everest/crystal_parameters.h +9 -9
  32. xcoll/scattering_routines/everest/everest.h +8 -3
  33. xcoll/scattering_routines/everest/everest.py +2 -1
  34. xcoll/scattering_routines/everest/ionisation_loss.h +141 -0
  35. xcoll/scattering_routines/everest/jaw.h +19 -24
  36. xcoll/scattering_routines/everest/materials.py +2 -0
  37. xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +2 -2
  38. xcoll/scattering_routines/everest/nuclear_interaction.h +35 -19
  39. xcoll/scattering_routines/everest/properties.h +4 -73
  40. xcoll/xaux.py +73 -0
  41. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/METADATA +5 -5
  42. xcoll-0.6.0.dist-info/RECORD +135 -0
  43. xcoll/_manager.py +0 -22
  44. xcoll/headers/particle_states.h +0 -25
  45. xcoll/install.py +0 -35
  46. xcoll/scattering_routines/geant4/collimasim/.git +0 -1
  47. xcoll/scattering_routines/geant4/collimasim/.gitignore +0 -12
  48. xcoll/scattering_routines/geant4/collimasim/.gitmodules +0 -3
  49. xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +0 -26
  50. xcoll/scattering_routines/geant4/collimasim/README.md +0 -21
  51. xcoll/scattering_routines/geant4/collimasim/docs/Makefile +0 -20
  52. xcoll/scattering_routines/geant4/collimasim/docs/make.bat +0 -35
  53. xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +0 -10
  54. xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +0 -59
  55. xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +0 -26
  56. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +0 -37
  57. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +0 -19
  58. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +0 -65
  59. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +0 -73
  60. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +0 -1
  61. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +0 -9
  62. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +0 -386
  63. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -45
  64. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -8
  65. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +0 -16
  66. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +0 -8
  67. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +0 -3
  68. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +0 -19
  69. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +0 -969
  70. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +0 -84
  71. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +0 -48
  72. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +0 -16
  73. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +0 -103
  74. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +0 -45
  75. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +0 -151
  76. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +0 -3
  77. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +0 -297
  78. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +0 -29
  79. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +0 -6
  80. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +0 -180
  81. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +0 -23
  82. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +0 -192
  83. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +0 -11
  84. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +0 -81
  85. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +0 -93
  86. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +0 -310
  87. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +0 -109
  88. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +0 -43
  89. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +0 -171
  90. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +0 -251
  91. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +0 -305
  92. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +0 -1297
  93. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +0 -262
  94. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +0 -396
  95. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +0 -568
  96. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +0 -337
  97. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +0 -13
  98. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +0 -463
  99. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +0 -286
  100. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +0 -155
  101. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +0 -174
  102. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +0 -308
  103. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +0 -91
  104. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +0 -95
  105. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +0 -2050
  106. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +0 -542
  107. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +0 -8
  108. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +0 -648
  109. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +0 -381
  110. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +0 -343
  111. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +0 -48
  112. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +0 -105
  113. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +0 -72
  114. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  115. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  116. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +0 -427
  117. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  118. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +0 -427
  119. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +0 -130
  120. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +0 -96
  121. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +0 -8
  122. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +0 -548
  123. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +0 -605
  124. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +0 -144
  125. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +0 -1432
  126. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +0 -213
  127. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +0 -2
  128. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +0 -65
  129. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +0 -709
  130. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +0 -1021
  131. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +0 -104
  132. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +0 -346
  133. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +0 -467
  134. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +0 -978
  135. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +0 -55
  136. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +0 -606
  137. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +0 -284
  138. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +0 -163
  139. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +0 -121
  140. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +0 -193
  141. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +0 -275
  142. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +0 -1741
  143. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +0 -163
  144. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +0 -65
  145. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +0 -2497
  146. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +0 -1879
  147. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +0 -103
  148. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +0 -375
  149. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +0 -747
  150. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +0 -88
  151. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +0 -11
  152. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +0 -52
  153. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +0 -12
  154. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +0 -6
  155. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +0 -21
  156. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  157. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +0 -482
  158. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +0 -63
  159. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +0 -41
  160. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +0 -56
  161. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +0 -155
  162. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +0 -503
  163. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +0 -208
  164. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +0 -275
  165. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +0 -73
  166. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +0 -33
  167. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  168. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +0 -279
  169. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  170. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -143
  171. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +0 -85
  172. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +0 -179
  173. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +0 -151
  174. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +0 -91
  175. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +0 -85
  176. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +0 -19
  177. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +0 -12
  178. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +0 -26
  179. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +0 -25
  180. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +0 -216
  181. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +0 -163
  182. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +0 -286
  183. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +0 -536
  184. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +0 -107
  185. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +0 -248
  186. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +0 -227
  187. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +0 -202
  188. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +0 -84
  189. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +0 -210
  190. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +0 -550
  191. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +0 -473
  192. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -84
  193. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +0 -21
  194. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -28
  195. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -39
  196. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -46
  197. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +0 -6
  198. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -41
  199. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -35
  200. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -41
  201. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +0 -10
  202. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +0 -165
  203. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +0 -53
  204. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +0 -238
  205. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +0 -126
  206. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +0 -141
  207. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +0 -117
  208. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +0 -41
  209. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +0 -50
  210. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +0 -69
  211. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +0 -42
  212. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +0 -348
  213. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +0 -771
  214. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +0 -47
  215. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +0 -22
  216. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +0 -23
  217. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +0 -326
  218. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +0 -15
  219. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +0 -148
  220. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +0 -272
  221. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +0 -119
  222. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +0 -51
  223. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +0 -5
  224. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +0 -285
  225. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +0 -12
  226. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +0 -265
  227. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +0 -397
  228. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +0 -520
  229. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +0 -49
  230. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +0 -94
  231. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +0 -125
  232. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +0 -331
  233. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +0 -153
  234. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +0 -284
  235. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +0 -107
  236. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +0 -257
  237. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +0 -412
  238. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +0 -517
  239. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +0 -102
  240. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +0 -92
  241. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +0 -233
  242. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +0 -360
  243. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +0 -472
  244. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +0 -593
  245. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +0 -524
  246. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +0 -441
  247. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +0 -103
  248. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +0 -267
  249. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +0 -73
  250. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +0 -59
  251. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +0 -235
  252. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +0 -146
  253. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +0 -189
  254. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +0 -82
  255. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +0 -560
  256. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +0 -651
  257. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +0 -500
  258. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +0 -253
  259. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +0 -452
  260. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +0 -318
  261. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +0 -342
  262. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +0 -291
  263. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +0 -131
  264. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +0 -318
  265. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +0 -144
  266. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +0 -29
  267. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +0 -66
  268. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +0 -44
  269. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +0 -22
  270. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +0 -9
  271. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +0 -510
  272. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +0 -408
  273. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +0 -140
  274. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +0 -117
  275. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +0 -70
  276. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +0 -86
  277. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +0 -257
  278. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +0 -44
  279. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +0 -23
  280. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +0 -39
  281. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +0 -64
  282. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +0 -402
  283. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +0 -233
  284. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +0 -276
  285. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +0 -214
  286. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +0 -3
  287. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +0 -65
  288. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +0 -41
  289. xcoll/scattering_routines/geant4/collimasim/pyproject.toml +0 -8
  290. xcoll/scattering_routines/geant4/collimasim/setup.py +0 -144
  291. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +0 -403
  292. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +0 -100
  293. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +0 -763
  294. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +0 -118
  295. xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +0 -8
  296. xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +0 -63
  297. xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +0 -142
  298. xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +0 -556
  299. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +0 -6
  300. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +0 -24
  301. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +0 -1
  302. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +0 -1
  303. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +0 -1
  304. xcoll/scattering_routines/geant4/collimasim/tests/README.md +0 -25
  305. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +0 -25
  306. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +0 -18
  307. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +0 -68
  308. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +0 -15
  309. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +0 -110
  310. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +0 -7
  311. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +0 -3
  312. xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +0 -54
  313. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +0 -3
  314. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +0 -3
  315. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +0 -5
  316. xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +0 -51
  317. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +0 -65
  318. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +0 -59
  319. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +0 -102
  320. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +0 -75
  321. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +0 -74
  322. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +0 -84
  323. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +0 -159
  324. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +0 -99
  325. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +0 -78
  326. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +0 -88
  327. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +0 -80
  328. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +0 -97
  329. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +0 -96
  330. xcoll-0.5.11.dist-info/RECORD +0 -413
  331. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/LICENSE +0 -0
  332. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/NOTICE +0 -0
  333. {xcoll-0.5.11.dist-info → xcoll-0.6.0.dist-info}/WHEEL +0 -0
@@ -1,275 +0,0 @@
1
- #pragma once
2
- /*
3
- tests/constructor_stats.h -- framework for printing and tracking object
4
- instance lifetimes in example/test code.
5
-
6
- Copyright (c) 2016 Jason Rhinelander <jason@imaginary.ca>
7
-
8
- All rights reserved. Use of this source code is governed by a
9
- BSD-style license that can be found in the LICENSE file.
10
-
11
- This header provides a few useful tools for writing examples or tests that want to check and/or
12
- display object instance lifetimes. It requires that you include this header and add the following
13
- function calls to constructors:
14
-
15
- class MyClass {
16
- MyClass() { ...; print_default_created(this); }
17
- ~MyClass() { ...; print_destroyed(this); }
18
- MyClass(const MyClass &c) { ...; print_copy_created(this); }
19
- MyClass(MyClass &&c) { ...; print_move_created(this); }
20
- MyClass(int a, int b) { ...; print_created(this, a, b); }
21
- MyClass &operator=(const MyClass &c) { ...; print_copy_assigned(this); }
22
- MyClass &operator=(MyClass &&c) { ...; print_move_assigned(this); }
23
-
24
- ...
25
- }
26
-
27
- You can find various examples of these in several of the existing testing .cpp files. (Of course
28
- you don't need to add any of the above constructors/operators that you don't actually have, except
29
- for the destructor).
30
-
31
- Each of these will print an appropriate message such as:
32
-
33
- ### MyClass @ 0x2801910 created via default constructor
34
- ### MyClass @ 0x27fa780 created 100 200
35
- ### MyClass @ 0x2801910 destroyed
36
- ### MyClass @ 0x27fa780 destroyed
37
-
38
- You can also include extra arguments (such as the 100, 200 in the output above, coming from the
39
- value constructor) for all of the above methods which will be included in the output.
40
-
41
- For testing, each of these also keeps track the created instances and allows you to check how many
42
- of the various constructors have been invoked from the Python side via code such as:
43
-
44
- from pybind11_tests import ConstructorStats
45
- cstats = ConstructorStats.get(MyClass)
46
- print(cstats.alive())
47
- print(cstats.default_constructions)
48
-
49
- Note that `.alive()` should usually be the first thing you call as it invokes Python's garbage
50
- collector to actually destroy objects that aren't yet referenced.
51
-
52
- For everything except copy and move constructors and destructors, any extra values given to the
53
- print_...() function is stored in a class-specific values list which you can retrieve and inspect
54
- from the ConstructorStats instance `.values()` method.
55
-
56
- In some cases, when you need to track instances of a C++ class not registered with pybind11, you
57
- need to add a function returning the ConstructorStats for the C++ class; this can be done with:
58
-
59
- m.def("get_special_cstats", &ConstructorStats::get<SpecialClass>, py::return_value_policy::reference)
60
-
61
- Finally, you can suppress the output messages, but keep the constructor tracking (for
62
- inspection/testing in python) by using the functions with `print_` replaced with `track_` (e.g.
63
- `track_copy_created(this)`).
64
-
65
- */
66
-
67
- #include "pybind11_tests.h"
68
- #include <unordered_map>
69
- #include <list>
70
- #include <typeindex>
71
- #include <sstream>
72
-
73
- class ConstructorStats {
74
- protected:
75
- std::unordered_map<void*, int> _instances; // Need a map rather than set because members can shared address with parents
76
- std::list<std::string> _values; // Used to track values (e.g. of value constructors)
77
- public:
78
- int default_constructions = 0;
79
- int copy_constructions = 0;
80
- int move_constructions = 0;
81
- int copy_assignments = 0;
82
- int move_assignments = 0;
83
-
84
- void copy_created(void *inst) {
85
- created(inst);
86
- copy_constructions++;
87
- }
88
-
89
- void move_created(void *inst) {
90
- created(inst);
91
- move_constructions++;
92
- }
93
-
94
- void default_created(void *inst) {
95
- created(inst);
96
- default_constructions++;
97
- }
98
-
99
- void created(void *inst) {
100
- ++_instances[inst];
101
- }
102
-
103
- void destroyed(void *inst) {
104
- if (--_instances[inst] < 0)
105
- throw std::runtime_error("cstats.destroyed() called with unknown "
106
- "instance; potential double-destruction "
107
- "or a missing cstats.created()");
108
- }
109
-
110
- static void gc() {
111
- // Force garbage collection to ensure any pending destructors are invoked:
112
- #if defined(PYPY_VERSION)
113
- PyObject *globals = PyEval_GetGlobals();
114
- PyObject *result = PyRun_String(
115
- "import gc\n"
116
- "for i in range(2):"
117
- " gc.collect()\n",
118
- Py_file_input, globals, globals);
119
- if (result == nullptr)
120
- throw py::error_already_set();
121
- Py_DECREF(result);
122
- #else
123
- py::module_::import("gc").attr("collect")();
124
- #endif
125
- }
126
-
127
- int alive() {
128
- gc();
129
- int total = 0;
130
- for (const auto &p : _instances)
131
- if (p.second > 0)
132
- total += p.second;
133
- return total;
134
- }
135
-
136
- void value() {} // Recursion terminator
137
- // Takes one or more values, converts them to strings, then stores them.
138
- template <typename T, typename... Tmore> void value(const T &v, Tmore &&...args) {
139
- std::ostringstream oss;
140
- oss << v;
141
- _values.push_back(oss.str());
142
- value(std::forward<Tmore>(args)...);
143
- }
144
-
145
- // Move out stored values
146
- py::list values() {
147
- py::list l;
148
- for (const auto &v : _values) l.append(py::cast(v));
149
- _values.clear();
150
- return l;
151
- }
152
-
153
- // Gets constructor stats from a C++ type index
154
- static ConstructorStats& get(std::type_index type) {
155
- static std::unordered_map<std::type_index, ConstructorStats> all_cstats;
156
- return all_cstats[type];
157
- }
158
-
159
- // Gets constructor stats from a C++ type
160
- template <typename T> static ConstructorStats& get() {
161
- #if defined(PYPY_VERSION)
162
- gc();
163
- #endif
164
- return get(typeid(T));
165
- }
166
-
167
- // Gets constructor stats from a Python class
168
- static ConstructorStats& get(py::object class_) {
169
- auto &internals = py::detail::get_internals();
170
- const std::type_index *t1 = nullptr, *t2 = nullptr;
171
- try {
172
- auto *type_info = internals.registered_types_py.at((PyTypeObject *) class_.ptr()).at(0);
173
- for (auto &p : internals.registered_types_cpp) {
174
- if (p.second == type_info) {
175
- if (t1) {
176
- t2 = &p.first;
177
- break;
178
- }
179
- t1 = &p.first;
180
- }
181
- }
182
- }
183
- catch (const std::out_of_range&) {}
184
- if (!t1) throw std::runtime_error("Unknown class passed to ConstructorStats::get()");
185
- auto &cs1 = get(*t1);
186
- // If we have both a t1 and t2 match, one is probably the trampoline class; return whichever
187
- // has more constructions (typically one or the other will be 0)
188
- if (t2) {
189
- auto &cs2 = get(*t2);
190
- int cs1_total = cs1.default_constructions + cs1.copy_constructions + cs1.move_constructions + (int) cs1._values.size();
191
- int cs2_total = cs2.default_constructions + cs2.copy_constructions + cs2.move_constructions + (int) cs2._values.size();
192
- if (cs2_total > cs1_total) return cs2;
193
- }
194
- return cs1;
195
- }
196
- };
197
-
198
- // To track construction/destruction, you need to call these methods from the various
199
- // constructors/operators. The ones that take extra values record the given values in the
200
- // constructor stats values for later inspection.
201
- template <class T> void track_copy_created(T *inst) { ConstructorStats::get<T>().copy_created(inst); }
202
- template <class T> void track_move_created(T *inst) { ConstructorStats::get<T>().move_created(inst); }
203
- template <class T, typename... Values> void track_copy_assigned(T *, Values &&...values) {
204
- auto &cst = ConstructorStats::get<T>();
205
- cst.copy_assignments++;
206
- cst.value(std::forward<Values>(values)...);
207
- }
208
- template <class T, typename... Values> void track_move_assigned(T *, Values &&...values) {
209
- auto &cst = ConstructorStats::get<T>();
210
- cst.move_assignments++;
211
- cst.value(std::forward<Values>(values)...);
212
- }
213
- template <class T, typename... Values> void track_default_created(T *inst, Values &&...values) {
214
- auto &cst = ConstructorStats::get<T>();
215
- cst.default_created(inst);
216
- cst.value(std::forward<Values>(values)...);
217
- }
218
- template <class T, typename... Values> void track_created(T *inst, Values &&...values) {
219
- auto &cst = ConstructorStats::get<T>();
220
- cst.created(inst);
221
- cst.value(std::forward<Values>(values)...);
222
- }
223
- template <class T, typename... Values> void track_destroyed(T *inst) {
224
- ConstructorStats::get<T>().destroyed(inst);
225
- }
226
- template <class T, typename... Values> void track_values(T *, Values &&...values) {
227
- ConstructorStats::get<T>().value(std::forward<Values>(values)...);
228
- }
229
-
230
- /// Don't cast pointers to Python, print them as strings
231
- inline const char *format_ptrs(const char *p) { return p; }
232
- template <typename T>
233
- py::str format_ptrs(T *p) { return "{:#x}"_s.format(reinterpret_cast<std::uintptr_t>(p)); }
234
- template <typename T>
235
- auto format_ptrs(T &&x) -> decltype(std::forward<T>(x)) { return std::forward<T>(x); }
236
-
237
- template <class T, typename... Output>
238
- void print_constr_details(T *inst, const std::string &action, Output &&...output) {
239
- py::print("###", py::type_id<T>(), "@", format_ptrs(inst), action,
240
- format_ptrs(std::forward<Output>(output))...);
241
- }
242
-
243
- // Verbose versions of the above:
244
- template <class T, typename... Values> void print_copy_created(T *inst, Values &&...values) { // NB: this prints, but doesn't store, given values
245
- print_constr_details(inst, "created via copy constructor", values...);
246
- track_copy_created(inst);
247
- }
248
- template <class T, typename... Values> void print_move_created(T *inst, Values &&...values) { // NB: this prints, but doesn't store, given values
249
- print_constr_details(inst, "created via move constructor", values...);
250
- track_move_created(inst);
251
- }
252
- template <class T, typename... Values> void print_copy_assigned(T *inst, Values &&...values) {
253
- print_constr_details(inst, "assigned via copy assignment", values...);
254
- track_copy_assigned(inst, values...);
255
- }
256
- template <class T, typename... Values> void print_move_assigned(T *inst, Values &&...values) {
257
- print_constr_details(inst, "assigned via move assignment", values...);
258
- track_move_assigned(inst, values...);
259
- }
260
- template <class T, typename... Values> void print_default_created(T *inst, Values &&...values) {
261
- print_constr_details(inst, "created via default constructor", values...);
262
- track_default_created(inst, values...);
263
- }
264
- template <class T, typename... Values> void print_created(T *inst, Values &&...values) {
265
- print_constr_details(inst, "created", values...);
266
- track_created(inst, values...);
267
- }
268
- template <class T, typename... Values> void print_destroyed(T *inst, Values &&...values) { // Prints but doesn't store given values
269
- print_constr_details(inst, "destroyed", values...);
270
- track_destroyed(inst);
271
- }
272
- template <class T, typename... Values> void print_values(T *inst, Values &&...values) {
273
- print_constr_details(inst, ":", values...);
274
- track_values(inst, values...);
275
- }
@@ -1,73 +0,0 @@
1
- /*
2
- tests/cross_module_gil_utils.cpp -- tools for acquiring GIL from a different module
3
-
4
- Copyright (c) 2019 Google LLC
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 <pybind11/pybind11.h>
10
- #include <cstdint>
11
-
12
- // This file mimics a DSO that makes pybind11 calls but does not define a
13
- // PYBIND11_MODULE. The purpose is to test that such a DSO can create a
14
- // py::gil_scoped_acquire when the running thread is in a GIL-released state.
15
- //
16
- // Note that we define a Python module here for convenience, but in general
17
- // this need not be the case. The typical scenario would be a DSO that implements
18
- // shared logic used internally by multiple pybind11 modules.
19
-
20
- namespace {
21
-
22
- namespace py = pybind11;
23
- void gil_acquire() { py::gil_scoped_acquire gil; }
24
-
25
- constexpr char kModuleName[] = "cross_module_gil_utils";
26
-
27
- #if PY_MAJOR_VERSION >= 3
28
- struct PyModuleDef moduledef = {
29
- PyModuleDef_HEAD_INIT,
30
- kModuleName,
31
- NULL,
32
- 0,
33
- NULL,
34
- NULL,
35
- NULL,
36
- NULL,
37
- NULL
38
- };
39
- #else
40
- PyMethodDef module_methods[] = {
41
- {NULL, NULL, 0, NULL}
42
- };
43
- #endif
44
-
45
- } // namespace
46
-
47
- extern "C" PYBIND11_EXPORT
48
- #if PY_MAJOR_VERSION >= 3
49
- PyObject* PyInit_cross_module_gil_utils()
50
- #else
51
- void initcross_module_gil_utils()
52
- #endif
53
- {
54
-
55
- PyObject* m =
56
- #if PY_MAJOR_VERSION >= 3
57
- PyModule_Create(&moduledef);
58
- #else
59
- Py_InitModule(kModuleName, module_methods);
60
- #endif
61
-
62
- if (m != NULL) {
63
- static_assert(
64
- sizeof(&gil_acquire) == sizeof(void*),
65
- "Function pointer must have the same size as void*");
66
- PyModule_AddObject(m, "gil_acquire_funcaddr",
67
- PyLong_FromVoidPtr(reinterpret_cast<void*>(&gil_acquire)));
68
- }
69
-
70
- #if PY_MAJOR_VERSION >= 3
71
- return m;
72
- #endif
73
- }
@@ -1,33 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- import platform
3
- import sys
4
-
5
- import pytest
6
-
7
- LINUX = sys.platform.startswith("linux")
8
- MACOS = sys.platform.startswith("darwin")
9
- WIN = sys.platform.startswith("win32") or sys.platform.startswith("cygwin")
10
-
11
- CPYTHON = platform.python_implementation() == "CPython"
12
- PYPY = platform.python_implementation() == "PyPy"
13
-
14
- PY2 = sys.version_info.major == 2
15
-
16
- PY = sys.version_info
17
-
18
-
19
- def deprecated_call():
20
- """
21
- pytest.deprecated_call() seems broken in pytest<3.9.x; concretely, it
22
- doesn't work on CPython 3.8.0 with pytest==3.3.2 on Ubuntu 18.04 (#2922).
23
-
24
- This is a narrowed reimplementation of the following PR :(
25
- https://github.com/pytest-dev/pytest/pull/4104
26
- """
27
- # TODO: Remove this when testing requires pytest>=3.9.
28
- pieces = pytest.__version__.split(".")
29
- pytest_major_minor = (int(pieces[0]), int(pieces[1]))
30
- if pytest_major_minor < (3, 9):
31
- return pytest.warns((DeprecationWarning, PendingDeprecationWarning))
32
- else:
33
- return pytest.deprecated_call()
@@ -1,279 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- import contextlib
3
- import os
4
- import string
5
- import subprocess
6
- import sys
7
- import tarfile
8
- import zipfile
9
-
10
- # These tests must be run explicitly
11
- # They require CMake 3.15+ (--install)
12
-
13
- DIR = os.path.abspath(os.path.dirname(__file__))
14
- MAIN_DIR = os.path.dirname(os.path.dirname(DIR))
15
-
16
-
17
- main_headers = {
18
- "include/pybind11/attr.h",
19
- "include/pybind11/buffer_info.h",
20
- "include/pybind11/cast.h",
21
- "include/pybind11/chrono.h",
22
- "include/pybind11/common.h",
23
- "include/pybind11/complex.h",
24
- "include/pybind11/eigen.h",
25
- "include/pybind11/embed.h",
26
- "include/pybind11/eval.h",
27
- "include/pybind11/functional.h",
28
- "include/pybind11/gil.h",
29
- "include/pybind11/iostream.h",
30
- "include/pybind11/numpy.h",
31
- "include/pybind11/operators.h",
32
- "include/pybind11/options.h",
33
- "include/pybind11/pybind11.h",
34
- "include/pybind11/pytypes.h",
35
- "include/pybind11/stl.h",
36
- "include/pybind11/stl_bind.h",
37
- }
38
-
39
- detail_headers = {
40
- "include/pybind11/detail/class.h",
41
- "include/pybind11/detail/common.h",
42
- "include/pybind11/detail/descr.h",
43
- "include/pybind11/detail/init.h",
44
- "include/pybind11/detail/internals.h",
45
- "include/pybind11/detail/type_caster_base.h",
46
- "include/pybind11/detail/typeid.h",
47
- }
48
-
49
- stl_headers = {
50
- "include/pybind11/stl/filesystem.h",
51
- }
52
-
53
- cmake_files = {
54
- "share/cmake/pybind11/FindPythonLibsNew.cmake",
55
- "share/cmake/pybind11/pybind11Common.cmake",
56
- "share/cmake/pybind11/pybind11Config.cmake",
57
- "share/cmake/pybind11/pybind11ConfigVersion.cmake",
58
- "share/cmake/pybind11/pybind11NewTools.cmake",
59
- "share/cmake/pybind11/pybind11Targets.cmake",
60
- "share/cmake/pybind11/pybind11Tools.cmake",
61
- }
62
-
63
- py_files = {
64
- "__init__.py",
65
- "__main__.py",
66
- "_version.py",
67
- "_version.pyi",
68
- "commands.py",
69
- "py.typed",
70
- "setup_helpers.py",
71
- "setup_helpers.pyi",
72
- }
73
-
74
- headers = main_headers | detail_headers | stl_headers
75
- src_files = headers | cmake_files
76
- all_files = src_files | py_files
77
-
78
-
79
- sdist_files = {
80
- "pybind11",
81
- "pybind11/include",
82
- "pybind11/include/pybind11",
83
- "pybind11/include/pybind11/detail",
84
- "pybind11/include/pybind11/stl",
85
- "pybind11/share",
86
- "pybind11/share/cmake",
87
- "pybind11/share/cmake/pybind11",
88
- "pyproject.toml",
89
- "setup.cfg",
90
- "setup.py",
91
- "LICENSE",
92
- "MANIFEST.in",
93
- "README.rst",
94
- "PKG-INFO",
95
- }
96
-
97
- local_sdist_files = {
98
- ".egg-info",
99
- ".egg-info/PKG-INFO",
100
- ".egg-info/SOURCES.txt",
101
- ".egg-info/dependency_links.txt",
102
- ".egg-info/not-zip-safe",
103
- ".egg-info/top_level.txt",
104
- }
105
-
106
-
107
- def test_build_sdist(monkeypatch, tmpdir):
108
-
109
- monkeypatch.chdir(MAIN_DIR)
110
-
111
- out = subprocess.check_output(
112
- [
113
- sys.executable,
114
- "setup.py",
115
- "sdist",
116
- "--formats=tar",
117
- "--dist-dir",
118
- str(tmpdir),
119
- ]
120
- )
121
- if hasattr(out, "decode"):
122
- out = out.decode()
123
-
124
- (sdist,) = tmpdir.visit("*.tar")
125
-
126
- with tarfile.open(str(sdist)) as tar:
127
- start = tar.getnames()[0] + "/"
128
- version = start[9:-1]
129
- simpler = {n.split("/", 1)[-1] for n in tar.getnames()[1:]}
130
-
131
- with contextlib.closing(
132
- tar.extractfile(tar.getmember(start + "setup.py"))
133
- ) as f:
134
- setup_py = f.read()
135
-
136
- with contextlib.closing(
137
- tar.extractfile(tar.getmember(start + "pyproject.toml"))
138
- ) as f:
139
- pyproject_toml = f.read()
140
-
141
- with contextlib.closing(
142
- tar.extractfile(
143
- tar.getmember(
144
- start + "pybind11/share/cmake/pybind11/pybind11Config.cmake"
145
- )
146
- )
147
- ) as f:
148
- contents = f.read().decode("utf8")
149
- assert 'set(pybind11_INCLUDE_DIR "${PACKAGE_PREFIX_DIR}/include")' in contents
150
-
151
- files = {"pybind11/{}".format(n) for n in all_files}
152
- files |= sdist_files
153
- files |= {"pybind11{}".format(n) for n in local_sdist_files}
154
- files.add("pybind11.egg-info/entry_points.txt")
155
- files.add("pybind11.egg-info/requires.txt")
156
- assert simpler == files
157
-
158
- with open(os.path.join(MAIN_DIR, "tools", "setup_main.py.in"), "rb") as f:
159
- contents = (
160
- string.Template(f.read().decode())
161
- .substitute(version=version, extra_cmd="")
162
- .encode()
163
- )
164
- assert setup_py == contents
165
-
166
- with open(os.path.join(MAIN_DIR, "tools", "pyproject.toml"), "rb") as f:
167
- contents = f.read()
168
- assert pyproject_toml == contents
169
-
170
-
171
- def test_build_global_dist(monkeypatch, tmpdir):
172
-
173
- monkeypatch.chdir(MAIN_DIR)
174
- monkeypatch.setenv("PYBIND11_GLOBAL_SDIST", "1")
175
-
176
- out = subprocess.check_output(
177
- [
178
- sys.executable,
179
- "setup.py",
180
- "sdist",
181
- "--formats=tar",
182
- "--dist-dir",
183
- str(tmpdir),
184
- ]
185
- )
186
- if hasattr(out, "decode"):
187
- out = out.decode()
188
-
189
- (sdist,) = tmpdir.visit("*.tar")
190
-
191
- with tarfile.open(str(sdist)) as tar:
192
- start = tar.getnames()[0] + "/"
193
- version = start[16:-1]
194
- simpler = {n.split("/", 1)[-1] for n in tar.getnames()[1:]}
195
-
196
- with contextlib.closing(
197
- tar.extractfile(tar.getmember(start + "setup.py"))
198
- ) as f:
199
- setup_py = f.read()
200
-
201
- with contextlib.closing(
202
- tar.extractfile(tar.getmember(start + "pyproject.toml"))
203
- ) as f:
204
- pyproject_toml = f.read()
205
-
206
- files = {"pybind11/{}".format(n) for n in all_files}
207
- files |= sdist_files
208
- files |= {"pybind11_global{}".format(n) for n in local_sdist_files}
209
- assert simpler == files
210
-
211
- with open(os.path.join(MAIN_DIR, "tools", "setup_global.py.in"), "rb") as f:
212
- contents = (
213
- string.Template(f.read().decode())
214
- .substitute(version=version, extra_cmd="")
215
- .encode()
216
- )
217
- assert setup_py == contents
218
-
219
- with open(os.path.join(MAIN_DIR, "tools", "pyproject.toml"), "rb") as f:
220
- contents = f.read()
221
- assert pyproject_toml == contents
222
-
223
-
224
- def tests_build_wheel(monkeypatch, tmpdir):
225
- monkeypatch.chdir(MAIN_DIR)
226
-
227
- subprocess.check_output(
228
- [sys.executable, "-m", "pip", "wheel", ".", "-w", str(tmpdir)]
229
- )
230
-
231
- (wheel,) = tmpdir.visit("*.whl")
232
-
233
- files = {"pybind11/{}".format(n) for n in all_files}
234
- files |= {
235
- "dist-info/LICENSE",
236
- "dist-info/METADATA",
237
- "dist-info/RECORD",
238
- "dist-info/WHEEL",
239
- "dist-info/entry_points.txt",
240
- "dist-info/top_level.txt",
241
- }
242
-
243
- with zipfile.ZipFile(str(wheel)) as z:
244
- names = z.namelist()
245
-
246
- trimmed = {n for n in names if "dist-info" not in n}
247
- trimmed |= {
248
- "dist-info/{}".format(n.split("/", 1)[-1]) for n in names if "dist-info" in n
249
- }
250
- assert files == trimmed
251
-
252
-
253
- def tests_build_global_wheel(monkeypatch, tmpdir):
254
- monkeypatch.chdir(MAIN_DIR)
255
- monkeypatch.setenv("PYBIND11_GLOBAL_SDIST", "1")
256
-
257
- subprocess.check_output(
258
- [sys.executable, "-m", "pip", "wheel", ".", "-w", str(tmpdir)]
259
- )
260
-
261
- (wheel,) = tmpdir.visit("*.whl")
262
-
263
- files = {"data/data/{}".format(n) for n in src_files}
264
- files |= {"data/headers/{}".format(n[8:]) for n in headers}
265
- files |= {
266
- "dist-info/LICENSE",
267
- "dist-info/METADATA",
268
- "dist-info/WHEEL",
269
- "dist-info/top_level.txt",
270
- "dist-info/RECORD",
271
- }
272
-
273
- with zipfile.ZipFile(str(wheel)) as z:
274
- names = z.namelist()
275
-
276
- beginning = names[0].split("/", 1)[0].rsplit(".", 1)[0]
277
- trimmed = {n[len(beginning) + 1 :] for n in names}
278
-
279
- assert files == trimmed