xcoll 0.5.12__py3-none-any.whl → 0.6.1__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 (336) hide show
  1. xcoll/__init__.py +5 -18
  2. xcoll/__init__.py.orig +26 -0
  3. xcoll/beam_elements/__init__.py +1 -0
  4. xcoll/beam_elements/absorber.py +12 -2
  5. xcoll/beam_elements/base.py +162 -62
  6. xcoll/beam_elements/blowup.py +1 -0
  7. xcoll/beam_elements/elements_src/black_absorber.h +57 -58
  8. xcoll/beam_elements/elements_src/black_crystal.h +49 -50
  9. xcoll/beam_elements/elements_src/everest_block.h +21 -11
  10. xcoll/beam_elements/elements_src/everest_collimator.h +100 -91
  11. xcoll/beam_elements/elements_src/everest_crystal.h +145 -140
  12. xcoll/beam_elements/elements_src/transparent_collimator.h +126 -0
  13. xcoll/beam_elements/elements_src/transparent_crystal.h +118 -0
  14. xcoll/beam_elements/everest.py +16 -5
  15. xcoll/beam_elements/monitor.py +1 -0
  16. xcoll/beam_elements/transparent.py +83 -0
  17. xcoll/colldb.py +15 -6
  18. xcoll/general.py +1 -1
  19. xcoll/general.py.orig +20 -0
  20. xcoll/headers/particle_states.py +51 -0
  21. xcoll/initial_distribution.py +121 -91
  22. xcoll/initial_distribution.py.orig +256 -0
  23. xcoll/interaction_record/interaction_record.py +2 -1
  24. xcoll/interaction_record/interaction_types.py +2 -2
  25. xcoll/line_tools.py +163 -73
  26. xcoll/lossmap.py +519 -127
  27. xcoll/plot.py +109 -0
  28. xcoll/rf_sweep.py +6 -0
  29. xcoll/scattering_routines/engine.py +414 -217
  30. xcoll/scattering_routines/environment.py +297 -0
  31. xcoll/scattering_routines/everest/amorphous.h +95 -71
  32. xcoll/scattering_routines/everest/{channeling.h → channelling.h} +121 -112
  33. xcoll/scattering_routines/everest/constants.h +1 -1
  34. xcoll/scattering_routines/everest/crystal_parameters.h +9 -9
  35. xcoll/scattering_routines/everest/everest.h +8 -3
  36. xcoll/scattering_routines/everest/everest.py +2 -1
  37. xcoll/scattering_routines/everest/ionisation_loss.h +141 -0
  38. xcoll/scattering_routines/everest/jaw.h +19 -24
  39. xcoll/scattering_routines/everest/materials.py +2 -0
  40. xcoll/scattering_routines/everest/multiple_coulomb_scattering.h +2 -2
  41. xcoll/scattering_routines/everest/nuclear_interaction.h +35 -19
  42. xcoll/scattering_routines/everest/properties.h +3 -72
  43. xcoll/xaux.py +65 -109
  44. {xcoll-0.5.12.dist-info → xcoll-0.6.1.dist-info}/METADATA +5 -5
  45. xcoll-0.6.1.dist-info/RECORD +138 -0
  46. xcoll/_manager.py +0 -22
  47. xcoll/headers/particle_states.h +0 -25
  48. xcoll/install.py +0 -35
  49. xcoll/scattering_routines/geant4/collimasim/.git +0 -1
  50. xcoll/scattering_routines/geant4/collimasim/.gitignore +0 -12
  51. xcoll/scattering_routines/geant4/collimasim/.gitmodules +0 -3
  52. xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +0 -26
  53. xcoll/scattering_routines/geant4/collimasim/README.md +0 -21
  54. xcoll/scattering_routines/geant4/collimasim/docs/Makefile +0 -20
  55. xcoll/scattering_routines/geant4/collimasim/docs/make.bat +0 -35
  56. xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +0 -10
  57. xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +0 -59
  58. xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +0 -26
  59. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +0 -37
  60. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +0 -19
  61. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +0 -65
  62. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +0 -73
  63. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +0 -1
  64. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +0 -9
  65. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +0 -386
  66. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -45
  67. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -8
  68. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +0 -16
  69. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +0 -8
  70. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +0 -3
  71. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +0 -19
  72. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +0 -969
  73. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +0 -84
  74. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +0 -48
  75. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +0 -16
  76. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +0 -103
  77. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +0 -45
  78. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +0 -151
  79. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +0 -3
  80. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +0 -297
  81. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +0 -29
  82. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +0 -6
  83. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +0 -180
  84. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +0 -23
  85. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +0 -192
  86. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +0 -11
  87. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +0 -81
  88. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +0 -93
  89. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +0 -310
  90. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +0 -109
  91. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +0 -43
  92. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +0 -171
  93. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +0 -251
  94. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +0 -305
  95. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +0 -1297
  96. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +0 -262
  97. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +0 -396
  98. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +0 -568
  99. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +0 -337
  100. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +0 -13
  101. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +0 -463
  102. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +0 -286
  103. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +0 -155
  104. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +0 -174
  105. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +0 -308
  106. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +0 -91
  107. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +0 -95
  108. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +0 -2050
  109. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +0 -542
  110. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +0 -8
  111. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +0 -648
  112. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +0 -381
  113. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +0 -343
  114. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +0 -48
  115. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +0 -105
  116. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +0 -72
  117. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  118. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  119. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +0 -427
  120. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  121. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +0 -427
  122. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +0 -130
  123. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +0 -96
  124. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +0 -8
  125. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +0 -548
  126. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +0 -605
  127. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +0 -144
  128. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +0 -1432
  129. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +0 -213
  130. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +0 -2
  131. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +0 -65
  132. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +0 -709
  133. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +0 -1021
  134. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +0 -104
  135. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +0 -346
  136. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +0 -467
  137. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +0 -978
  138. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +0 -55
  139. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +0 -606
  140. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +0 -284
  141. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +0 -163
  142. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +0 -121
  143. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +0 -193
  144. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +0 -275
  145. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +0 -1741
  146. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +0 -163
  147. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +0 -65
  148. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +0 -2497
  149. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +0 -1879
  150. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +0 -103
  151. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +0 -375
  152. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +0 -747
  153. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +0 -88
  154. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +0 -11
  155. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +0 -52
  156. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +0 -12
  157. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +0 -6
  158. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +0 -21
  159. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  160. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +0 -482
  161. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +0 -63
  162. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +0 -41
  163. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +0 -56
  164. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +0 -155
  165. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +0 -503
  166. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +0 -208
  167. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +0 -275
  168. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +0 -73
  169. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +0 -33
  170. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  171. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +0 -279
  172. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  173. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -143
  174. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +0 -85
  175. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +0 -179
  176. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +0 -151
  177. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +0 -91
  178. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +0 -85
  179. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +0 -19
  180. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +0 -12
  181. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +0 -26
  182. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +0 -25
  183. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +0 -216
  184. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +0 -163
  185. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +0 -286
  186. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +0 -536
  187. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +0 -107
  188. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +0 -248
  189. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +0 -227
  190. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +0 -202
  191. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +0 -84
  192. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +0 -210
  193. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +0 -550
  194. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +0 -473
  195. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -84
  196. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +0 -21
  197. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -28
  198. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -39
  199. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -46
  200. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +0 -6
  201. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -41
  202. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -35
  203. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -41
  204. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +0 -10
  205. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +0 -165
  206. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +0 -53
  207. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +0 -238
  208. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +0 -126
  209. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +0 -141
  210. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +0 -117
  211. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +0 -41
  212. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +0 -50
  213. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +0 -69
  214. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +0 -42
  215. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +0 -348
  216. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +0 -771
  217. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +0 -47
  218. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +0 -22
  219. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +0 -23
  220. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +0 -326
  221. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +0 -15
  222. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +0 -148
  223. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +0 -272
  224. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +0 -119
  225. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +0 -51
  226. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +0 -5
  227. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +0 -285
  228. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +0 -12
  229. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +0 -265
  230. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +0 -397
  231. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +0 -520
  232. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +0 -49
  233. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +0 -94
  234. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +0 -125
  235. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +0 -331
  236. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +0 -153
  237. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +0 -284
  238. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +0 -107
  239. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +0 -257
  240. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +0 -412
  241. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +0 -517
  242. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +0 -102
  243. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +0 -92
  244. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +0 -233
  245. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +0 -360
  246. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +0 -472
  247. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +0 -593
  248. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +0 -524
  249. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +0 -441
  250. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +0 -103
  251. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +0 -267
  252. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +0 -73
  253. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +0 -59
  254. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +0 -235
  255. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +0 -146
  256. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +0 -189
  257. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +0 -82
  258. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +0 -560
  259. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +0 -651
  260. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +0 -500
  261. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +0 -253
  262. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +0 -452
  263. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +0 -318
  264. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +0 -342
  265. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +0 -291
  266. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +0 -131
  267. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +0 -318
  268. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +0 -144
  269. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +0 -29
  270. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +0 -66
  271. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +0 -44
  272. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +0 -22
  273. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +0 -9
  274. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +0 -510
  275. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +0 -408
  276. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +0 -140
  277. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +0 -117
  278. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +0 -70
  279. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +0 -86
  280. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +0 -257
  281. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +0 -44
  282. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +0 -23
  283. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +0 -39
  284. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +0 -64
  285. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +0 -402
  286. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +0 -233
  287. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +0 -276
  288. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +0 -214
  289. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +0 -3
  290. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +0 -65
  291. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +0 -41
  292. xcoll/scattering_routines/geant4/collimasim/pyproject.toml +0 -8
  293. xcoll/scattering_routines/geant4/collimasim/setup.py +0 -144
  294. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +0 -403
  295. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +0 -100
  296. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +0 -763
  297. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +0 -118
  298. xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +0 -8
  299. xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +0 -63
  300. xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +0 -142
  301. xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +0 -556
  302. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +0 -6
  303. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +0 -24
  304. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +0 -1
  305. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +0 -1
  306. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +0 -1
  307. xcoll/scattering_routines/geant4/collimasim/tests/README.md +0 -25
  308. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_forions.dat +0 -25
  309. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +0 -18
  310. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +0 -68
  311. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +0 -15
  312. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +0 -110
  313. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +0 -7
  314. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +0 -3
  315. xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +0 -54
  316. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +0 -3
  317. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +0 -3
  318. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_ions.gmad +0 -5
  319. xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +0 -51
  320. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +0 -65
  321. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +0 -59
  322. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +0 -102
  323. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +0 -75
  324. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +0 -74
  325. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +0 -84
  326. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +0 -159
  327. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction_ion.py +0 -99
  328. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_ions.py +0 -78
  329. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_lost_energy.py +0 -88
  330. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +0 -80
  331. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +0 -97
  332. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking_ions.py +0 -96
  333. xcoll-0.5.12.dist-info/RECORD +0 -415
  334. {xcoll-0.5.12.dist-info → xcoll-0.6.1.dist-info}/LICENSE +0 -0
  335. {xcoll-0.5.12.dist-info → xcoll-0.6.1.dist-info}/NOTICE +0 -0
  336. {xcoll-0.5.12.dist-info → xcoll-0.6.1.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