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

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

Potentially problematic release.


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

Files changed (317) hide show
  1. xcoll/beam_elements/__init__.py +5 -0
  2. xcoll/beam_elements/absorber.py +2 -1
  3. xcoll/beam_elements/base.py +32 -17
  4. xcoll/beam_elements/collimators_src/absorber.h +5 -0
  5. xcoll/beam_elements/everest.py +14 -25
  6. xcoll/colldb.py +50 -27
  7. xcoll/general.py +1 -1
  8. xcoll/headers/checks.h +7 -1
  9. xcoll/impacts/impacts.py +2 -1
  10. xcoll/impacts/impacts_src/impacts.h +1 -6
  11. xcoll/manager.py +5 -5
  12. xcoll/rf_sweep.py +90 -19
  13. xcoll/scattering_routines/everest/__init__.py +5 -0
  14. xcoll/scattering_routines/everest/everest.py +1 -1
  15. xcoll/scattering_routines/fluka/build_fluka_input.py +58 -0
  16. xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.a +0 -0
  17. xcoll/scattering_routines/fluka/flukaio/lib/libFlukaIO64.so +0 -0
  18. xcoll/scattering_routines/fluka/flukaio/src/Connection.d +68 -48
  19. xcoll/scattering_routines/fluka/flukaio/src/Connection.o +0 -0
  20. xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.d +46 -37
  21. xcoll/scattering_routines/fluka/flukaio/src/FlukaIO.o +0 -0
  22. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.d +28 -25
  23. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOHandshake.o +0 -0
  24. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.d +67 -47
  25. xcoll/scattering_routines/fluka/flukaio/src/FlukaIOServer.o +0 -0
  26. xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.d +39 -33
  27. xcoll/scattering_routines/fluka/flukaio/src/FortranFlukaIO.o +0 -0
  28. xcoll/scattering_routines/fluka/flukaio/src/NetIO.d +66 -47
  29. xcoll/scattering_routines/fluka/flukaio/src/NetIO.o +0 -0
  30. {xcoll-0.3.3.dist-info → xcoll-0.3.5.dist-info}/METADATA +3 -2
  31. xcoll-0.3.5.dist-info/NOTICE +2 -0
  32. xcoll-0.3.5.dist-info/RECORD +111 -0
  33. {xcoll-0.3.3.dist-info → xcoll-0.3.5.dist-info}/WHEEL +1 -1
  34. xcoll/beam_elements/collimators_src/base_block.h +0 -14
  35. xcoll/beam_elements/collimators_src/base_collimator.h +0 -14
  36. xcoll/beam_elements/collimators_src/invalid_collimator.h +0 -15
  37. xcoll/install_collimators.py +0 -180
  38. xcoll/scattering_routines/geant4/collimasim/.git +0 -1
  39. xcoll/scattering_routines/geant4/collimasim/.gitignore +0 -12
  40. xcoll/scattering_routines/geant4/collimasim/.gitmodules +0 -3
  41. xcoll/scattering_routines/geant4/collimasim/CMakeLists.txt +0 -26
  42. xcoll/scattering_routines/geant4/collimasim/README.md +0 -21
  43. xcoll/scattering_routines/geant4/collimasim/docs/Makefile +0 -20
  44. xcoll/scattering_routines/geant4/collimasim/docs/make.bat +0 -35
  45. xcoll/scattering_routines/geant4/collimasim/docs/source/collimasim.rst +0 -10
  46. xcoll/scattering_routines/geant4/collimasim/docs/source/conf.py +0 -59
  47. xcoll/scattering_routines/geant4/collimasim/docs/source/index.rst +0 -26
  48. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.appveyor.yml +0 -37
  49. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-format +0 -19
  50. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.clang-tidy +0 -65
  51. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.cmake-format.yaml +0 -73
  52. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.git +0 -1
  53. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CODEOWNERS +0 -9
  54. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/CONTRIBUTING.md +0 -386
  55. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +0 -45
  56. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/ISSUE_TEMPLATE/config.yml +0 -8
  57. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/dependabot.yml +0 -16
  58. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler.yml +0 -8
  59. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/labeler_merged.yml +0 -3
  60. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/pull_request_template.md +0 -19
  61. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/ci.yml +0 -969
  62. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/configure.yml +0 -84
  63. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/format.yml +0 -48
  64. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/labeler.yml +0 -16
  65. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.github/workflows/pip.yml +0 -103
  66. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.gitignore +0 -45
  67. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.pre-commit-config.yaml +0 -151
  68. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/.readthedocs.yml +0 -3
  69. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/CMakeLists.txt +0 -297
  70. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/LICENSE +0 -29
  71. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/MANIFEST.in +0 -6
  72. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/README.rst +0 -180
  73. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Doxyfile +0 -23
  74. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/Makefile +0 -192
  75. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/_static/theme_overrides.css +0 -11
  76. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/chrono.rst +0 -81
  77. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/custom.rst +0 -93
  78. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/eigen.rst +0 -310
  79. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/functional.rst +0 -109
  80. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/index.rst +0 -43
  81. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/overview.rst +0 -171
  82. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/stl.rst +0 -251
  83. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/cast/strings.rst +0 -305
  84. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/classes.rst +0 -1297
  85. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/embedding.rst +0 -262
  86. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/exceptions.rst +0 -396
  87. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/functions.rst +0 -568
  88. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/misc.rst +0 -337
  89. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/index.rst +0 -13
  90. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/numpy.rst +0 -463
  91. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/object.rst +0 -286
  92. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/pycpp/utilities.rst +0 -155
  93. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/advanced/smart_ptrs.rst +0 -174
  94. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/basics.rst +0 -308
  95. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.py +0 -91
  96. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/benchmark.rst +0 -95
  97. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/changelog.rst +0 -2050
  98. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/classes.rst +0 -542
  99. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/cmake/index.rst +0 -8
  100. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/compiling.rst +0 -648
  101. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/conf.py +0 -381
  102. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/faq.rst +0 -343
  103. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/index.rst +0 -48
  104. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/installing.rst +0 -105
  105. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/limitations.rst +0 -72
  106. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11-logo.png +0 -0
  107. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  108. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python1.svg +0 -427
  109. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  110. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/pybind11_vs_boost_python2.svg +0 -427
  111. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/reference.rst +0 -130
  112. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/release.rst +0 -96
  113. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/requirements.txt +0 -8
  114. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/docs/upgrade.rst +0 -548
  115. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/attr.h +0 -605
  116. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/buffer_info.h +0 -144
  117. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/cast.h +0 -1432
  118. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/chrono.h +0 -213
  119. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/common.h +0 -2
  120. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/complex.h +0 -65
  121. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/class.h +0 -709
  122. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/common.h +0 -1021
  123. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/descr.h +0 -104
  124. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/init.h +0 -346
  125. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/internals.h +0 -467
  126. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/type_caster_base.h +0 -978
  127. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/detail/typeid.h +0 -55
  128. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eigen.h +0 -606
  129. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/embed.h +0 -284
  130. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/eval.h +0 -163
  131. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/functional.h +0 -121
  132. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/gil.h +0 -193
  133. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/iostream.h +0 -275
  134. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/numpy.h +0 -1741
  135. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/operators.h +0 -163
  136. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/options.h +0 -65
  137. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pybind11.h +0 -2497
  138. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/pytypes.h +0 -1879
  139. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl/filesystem.h +0 -103
  140. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl.h +0 -375
  141. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/include/pybind11/stl_bind.h +0 -747
  142. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/noxfile.py +0 -88
  143. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__init__.py +0 -11
  144. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/__main__.py +0 -52
  145. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.py +0 -12
  146. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/_version.pyi +0 -6
  147. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/commands.py +0 -21
  148. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/py.typed +0 -0
  149. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.py +0 -482
  150. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pybind11/setup_helpers.pyi +0 -63
  151. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/pyproject.toml +0 -41
  152. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.cfg +0 -56
  153. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/setup.py +0 -155
  154. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/CMakeLists.txt +0 -503
  155. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/conftest.py +0 -208
  156. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/constructor_stats.h +0 -275
  157. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/cross_module_gil_utils.cpp +0 -73
  158. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/env.py +0 -33
  159. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/pytest.ini +0 -0
  160. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_python_package/test_files.py +0 -279
  161. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  162. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/extra_setuptools/test_setuphelper.py +0 -143
  163. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/local_bindings.h +0 -85
  164. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/object.h +0 -179
  165. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_cross_module_tests.cpp +0 -151
  166. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.cpp +0 -91
  167. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pybind11_tests.h +0 -85
  168. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/pytest.ini +0 -19
  169. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/requirements.txt +0 -12
  170. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.cpp +0 -26
  171. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_async.py +0 -25
  172. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.cpp +0 -216
  173. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_buffers.py +0 -163
  174. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.cpp +0 -286
  175. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_builtin_casters.py +0 -536
  176. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.cpp +0 -107
  177. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_call_policies.py +0 -248
  178. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.cpp +0 -227
  179. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_callbacks.py +0 -202
  180. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.cpp +0 -84
  181. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_chrono.py +0 -210
  182. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.cpp +0 -550
  183. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_class.py +0 -473
  184. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/CMakeLists.txt +0 -84
  185. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/embed.cpp +0 -21
  186. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +0 -28
  187. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +0 -39
  188. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +0 -46
  189. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/main.cpp +0 -6
  190. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +0 -41
  191. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +0 -35
  192. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +0 -41
  193. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_cmake_build/test.py +0 -10
  194. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.cpp +0 -165
  195. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_constants_and_functions.py +0 -53
  196. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.cpp +0 -238
  197. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_copy_move.py +0 -126
  198. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.cpp +0 -141
  199. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_casters.py +0 -117
  200. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.cpp +0 -41
  201. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_custom_type_setup.py +0 -50
  202. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.cpp +0 -69
  203. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_docstring_options.py +0 -42
  204. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.cpp +0 -348
  205. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eigen.py +0 -771
  206. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/CMakeLists.txt +0 -47
  207. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/catch.cpp +0 -22
  208. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/external_module.cpp +0 -23
  209. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.cpp +0 -326
  210. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_embed/test_interpreter.py +0 -15
  211. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.cpp +0 -148
  212. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_enum.py +0 -272
  213. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.cpp +0 -119
  214. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval.py +0 -51
  215. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_eval_call.py +0 -5
  216. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.cpp +0 -285
  217. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.h +0 -12
  218. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_exceptions.py +0 -265
  219. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.cpp +0 -397
  220. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_factory_constructors.py +0 -520
  221. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.cpp +0 -49
  222. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_gil_scoped.py +0 -94
  223. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.cpp +0 -125
  224. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_iostream.py +0 -331
  225. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.cpp +0 -153
  226. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_kwargs_and_defaults.py +0 -284
  227. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.cpp +0 -107
  228. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_local_bindings.py +0 -257
  229. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.cpp +0 -412
  230. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_methods_and_attributes.py +0 -517
  231. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.cpp +0 -102
  232. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_modules.py +0 -92
  233. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.cpp +0 -233
  234. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_multiple_inheritance.py +0 -360
  235. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.cpp +0 -472
  236. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_array.py +0 -593
  237. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.cpp +0 -524
  238. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_dtypes.py +0 -441
  239. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.cpp +0 -103
  240. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_numpy_vectorize.py +0 -267
  241. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.cpp +0 -73
  242. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_opaque_types.py +0 -59
  243. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.cpp +0 -235
  244. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_operator_overloading.py +0 -146
  245. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.cpp +0 -189
  246. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pickling.py +0 -82
  247. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.cpp +0 -560
  248. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_pytypes.py +0 -651
  249. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.cpp +0 -500
  250. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_sequences_and_iterators.py +0 -253
  251. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.cpp +0 -452
  252. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_smart_ptr.py +0 -318
  253. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.cpp +0 -342
  254. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl.py +0 -291
  255. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.cpp +0 -131
  256. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_stl_binders.py +0 -318
  257. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.cpp +0 -144
  258. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_tagbased_polymorphic.py +0 -29
  259. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.cpp +0 -66
  260. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_thread.py +0 -44
  261. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.cpp +0 -22
  262. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_union.py +0 -9
  263. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.cpp +0 -510
  264. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/test_virtual_functions.py +0 -408
  265. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-numpy-scipy.supp +0 -140
  266. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tests/valgrind-python.supp +0 -117
  267. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindCatch.cmake +0 -70
  268. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindEigen3.cmake +0 -86
  269. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/FindPythonLibsNew.cmake +0 -257
  270. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/check-style.sh +0 -44
  271. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/cmake_uninstall.cmake.in +0 -23
  272. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/libsize.py +0 -39
  273. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/make_changelog.py +0 -64
  274. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Common.cmake +0 -402
  275. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Config.cmake.in +0 -233
  276. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11NewTools.cmake +0 -276
  277. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pybind11Tools.cmake +0 -214
  278. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/pyproject.toml +0 -3
  279. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_global.py.in +0 -65
  280. xcoll/scattering_routines/geant4/collimasim/lib/pybind11/tools/setup_main.py.in +0 -41
  281. xcoll/scattering_routines/geant4/collimasim/pyproject.toml +0 -8
  282. xcoll/scattering_routines/geant4/collimasim/setup.py +0 -144
  283. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.cpp +0 -403
  284. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSPyATInterface.hh +0 -100
  285. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.cpp +0 -662
  286. xcoll/scattering_routines/geant4/collimasim/src/collimasim/BDSXtrackInterface.hh +0 -110
  287. xcoll/scattering_routines/geant4/collimasim/src/collimasim/__init__.py +0 -8
  288. xcoll/scattering_routines/geant4/collimasim/src/collimasim/bindings.cpp +0 -63
  289. xcoll/scattering_routines/geant4/collimasim/src/collimasim/pyCollimatorPass.py +0 -142
  290. xcoll/scattering_routines/geant4/collimasim/src/collimasim/xtrack_collimator.py +0 -475
  291. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/PKG-INFO +0 -6
  292. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/SOURCES.txt +0 -20
  293. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/dependency_links.txt +0 -1
  294. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/not-zip-safe +0 -1
  295. xcoll/scattering_routines/geant4/collimasim/src/collimasim.egg-info/top_level.txt +0 -1
  296. xcoll/scattering_routines/geant4/collimasim/tests/README.md +0 -25
  297. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_new_example.dat +0 -18
  298. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_old_example.dat +0 -68
  299. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_testing.dat +0 -15
  300. xcoll/scattering_routines/geant4/collimasim/tests/resources/CollDB_yaml_example.yaml +0 -110
  301. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps.dat +0 -7
  302. xcoll/scattering_routines/geant4/collimasim/tests/resources/collgaps_pyat_test.dat +0 -3
  303. xcoll/scattering_routines/geant4/collimasim/tests/resources/collonly_twiss_file_example.tfs +0 -54
  304. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings.gmad +0 -3
  305. xcoll/scattering_routines/geant4/collimasim/tests/resources/settings_black_absorber.gmad +0 -3
  306. xcoll/scattering_routines/geant4/collimasim/tests/resources/twiss_file_testing.tfs +0 -51
  307. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat.py +0 -65
  308. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_passmethod.py +0 -59
  309. xcoll/scattering_routines/geant4/collimasim/tests/test_pyat_tracking.py +0 -102
  310. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack.py +0 -75
  311. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_angle.py +0 -74
  312. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_colldb_load.py +0 -84
  313. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_interaction.py +0 -159
  314. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tilt.py +0 -80
  315. xcoll/scattering_routines/geant4/collimasim/tests/test_xtrack_tracking.py +0 -97
  316. xcoll-0.3.3.dist-info/RECORD +0 -391
  317. {xcoll-0.3.3.dist-info → xcoll-0.3.5.dist-info}/LICENSE +0 -0
@@ -1,88 +0,0 @@
1
- import nox
2
-
3
- nox.options.sessions = ["lint", "tests", "tests_packaging"]
4
-
5
- PYTHON_VERISONS = ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10"]
6
-
7
-
8
- @nox.session(reuse_venv=True)
9
- def lint(session: nox.Session) -> None:
10
- """
11
- Lint the codebase (except for clang-format/tidy).
12
- """
13
- session.install("pre-commit")
14
- session.run("pre-commit", "run", "-a")
15
-
16
-
17
- @nox.session(python=PYTHON_VERISONS)
18
- def tests(session: nox.Session) -> None:
19
- """
20
- Run the tests (requires a compiler).
21
- """
22
- tmpdir = session.create_tmp()
23
- session.install("pytest", "cmake")
24
- session.run(
25
- "cmake",
26
- "-S",
27
- ".",
28
- "-B",
29
- tmpdir,
30
- "-DPYBIND11_WERROR=ON",
31
- "-DDOWNLOAD_CATCH=ON",
32
- "-DDOWNLOAD_EIGEN=ON",
33
- *session.posargs
34
- )
35
- session.run("cmake", "--build", tmpdir)
36
- session.run("cmake", "--build", tmpdir, "--config=Release", "--target", "check")
37
-
38
-
39
- @nox.session
40
- def tests_packaging(session: nox.Session) -> None:
41
- """
42
- Run the packaging tests.
43
- """
44
-
45
- session.install("-r", "tests/requirements.txt", "--prefer-binary")
46
- session.run("pytest", "tests/extra_python_package")
47
-
48
-
49
- @nox.session(reuse_venv=True)
50
- def docs(session: nox.Session) -> None:
51
- """
52
- Build the docs. Pass "serve" to serve.
53
- """
54
-
55
- session.install("-r", "docs/requirements.txt")
56
- session.chdir("docs")
57
-
58
- if "pdf" in session.posargs:
59
- session.run("sphinx-build", "-M", "latexpdf", ".", "_build")
60
- return
61
-
62
- session.run("sphinx-build", "-M", "html", ".", "_build")
63
-
64
- if "serve" in session.posargs:
65
- session.log("Launching docs at http://localhost:8000/ - use Ctrl-C to quit")
66
- session.run("python", "-m", "http.server", "8000", "-d", "_build/html")
67
- elif session.posargs:
68
- session.error("Unsupported argument to docs")
69
-
70
-
71
- @nox.session(reuse_venv=True)
72
- def make_changelog(session: nox.Session) -> None:
73
- """
74
- Inspect the closed issues and make entries for a changelog.
75
- """
76
- session.install("ghapi", "rich")
77
- session.run("python", "tools/make_changelog.py")
78
-
79
-
80
- @nox.session(reuse_venv=True)
81
- def build(session: nox.Session) -> None:
82
- """
83
- Build SDists and wheels.
84
- """
85
-
86
- session.install("build")
87
- session.run("python", "-m", "build")
88
- session.run("python", "-m", "build", env={"PYBIND11_GLOBAL_SDIST": "1"})
@@ -1,11 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- from ._version import __version__, version_info
4
- from .commands import get_cmake_dir, get_include
5
-
6
- __all__ = (
7
- "version_info",
8
- "__version__",
9
- "get_include",
10
- "get_cmake_dir",
11
- )
@@ -1,52 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- from __future__ import print_function
3
-
4
- import argparse
5
- import sys
6
- import sysconfig
7
-
8
- from .commands import get_cmake_dir, get_include
9
-
10
-
11
- def print_includes():
12
- # type: () -> None
13
- dirs = [
14
- sysconfig.get_path("include"),
15
- sysconfig.get_path("platinclude"),
16
- get_include(),
17
- ]
18
-
19
- # Make unique but preserve order
20
- unique_dirs = []
21
- for d in dirs:
22
- if d and d not in unique_dirs:
23
- unique_dirs.append(d)
24
-
25
- print(" ".join("-I" + d for d in unique_dirs))
26
-
27
-
28
- def main():
29
- # type: () -> None
30
-
31
- parser = argparse.ArgumentParser()
32
- parser.add_argument(
33
- "--includes",
34
- action="store_true",
35
- help="Include flags for both pybind11 and Python headers.",
36
- )
37
- parser.add_argument(
38
- "--cmakedir",
39
- action="store_true",
40
- help="Print the CMake module directory, ideal for setting -Dpybind11_ROOT in CMake.",
41
- )
42
- args = parser.parse_args()
43
- if not sys.argv[1:]:
44
- parser.print_help()
45
- if args.includes:
46
- print_includes()
47
- if args.cmakedir:
48
- print(get_cmake_dir())
49
-
50
-
51
- if __name__ == "__main__":
52
- main()
@@ -1,12 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
-
4
- def _to_int(s):
5
- try:
6
- return int(s)
7
- except ValueError:
8
- return s
9
-
10
-
11
- __version__ = "2.9.0.dev1"
12
- version_info = tuple(_to_int(s) for s in __version__.split("."))
@@ -1,6 +0,0 @@
1
- from typing import Tuple, Union
2
-
3
- def _to_int(s: str) -> Union[int, str]: ...
4
-
5
- __version__: str
6
- version_info: Tuple[Union[int, str], ...]
@@ -1,21 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- import os
3
-
4
- DIR = os.path.abspath(os.path.dirname(__file__))
5
-
6
-
7
- def get_include(user=False):
8
- # type: (bool) -> str
9
- installed_path = os.path.join(DIR, "include")
10
- source_path = os.path.join(os.path.dirname(DIR), "include")
11
- return installed_path if os.path.exists(installed_path) else source_path
12
-
13
-
14
- def get_cmake_dir():
15
- # type: () -> str
16
- cmake_installed_path = os.path.join(DIR, "share", "cmake", "pybind11")
17
- if os.path.exists(cmake_installed_path):
18
- return cmake_installed_path
19
- else:
20
- msg = "pybind11 not installed, installation required to access the CMake files"
21
- raise ImportError(msg)
@@ -1,482 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
-
3
- """
4
- This module provides helpers for C++11+ projects using pybind11.
5
-
6
- LICENSE:
7
-
8
- Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.
9
-
10
- Redistribution and use in source and binary forms, with or without
11
- modification, are permitted provided that the following conditions are met:
12
-
13
- 1. Redistributions of source code must retain the above copyright notice, this
14
- list of conditions and the following disclaimer.
15
-
16
- 2. Redistributions in binary form must reproduce the above copyright notice,
17
- this list of conditions and the following disclaimer in the documentation
18
- and/or other materials provided with the distribution.
19
-
20
- 3. Neither the name of the copyright holder nor the names of its contributors
21
- may be used to endorse or promote products derived from this software
22
- without specific prior written permission.
23
-
24
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
25
- ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
- """
35
-
36
- # IMPORTANT: If you change this file in the pybind11 repo, also review
37
- # setup_helpers.pyi for matching changes.
38
- #
39
- # If you copy this file in, you don't
40
- # need the .pyi file; it's just an interface file for static type checkers.
41
-
42
- import contextlib
43
- import os
44
- import platform
45
- import shutil
46
- import sys
47
- import sysconfig
48
- import tempfile
49
- import threading
50
- import warnings
51
-
52
- try:
53
- from setuptools import Extension as _Extension
54
- from setuptools.command.build_ext import build_ext as _build_ext
55
- except ImportError:
56
- from distutils.command.build_ext import build_ext as _build_ext
57
- from distutils.extension import Extension as _Extension
58
-
59
- import distutils.ccompiler
60
- import distutils.errors
61
-
62
- WIN = sys.platform.startswith("win32") and "mingw" not in sysconfig.get_platform()
63
- PY2 = sys.version_info[0] < 3
64
- MACOS = sys.platform.startswith("darwin")
65
- STD_TMPL = "/std:c++{}" if WIN else "-std=c++{}"
66
-
67
-
68
- # It is recommended to use PEP 518 builds if using this module. However, this
69
- # file explicitly supports being copied into a user's project directory
70
- # standalone, and pulling pybind11 with the deprecated setup_requires feature.
71
- # If you copy the file, remember to add it to your MANIFEST.in, and add the current
72
- # directory into your path if it sits beside your setup.py.
73
-
74
-
75
- class Pybind11Extension(_Extension):
76
- """
77
- Build a C++11+ Extension module with pybind11. This automatically adds the
78
- recommended flags when you init the extension and assumes C++ sources - you
79
- can further modify the options yourself.
80
-
81
- The customizations are:
82
-
83
- * ``/EHsc`` and ``/bigobj`` on Windows
84
- * ``stdlib=libc++`` on macOS
85
- * ``visibility=hidden`` and ``-g0`` on Unix
86
-
87
- Finally, you can set ``cxx_std`` via constructor or afterwards to enable
88
- flags for C++ std, and a few extra helper flags related to the C++ standard
89
- level. It is _highly_ recommended you either set this, or use the provided
90
- ``build_ext``, which will search for the highest supported extension for
91
- you if the ``cxx_std`` property is not set. Do not set the ``cxx_std``
92
- property more than once, as flags are added when you set it. Set the
93
- property to None to disable the addition of C++ standard flags.
94
-
95
- If you want to add pybind11 headers manually, for example for an exact
96
- git checkout, then set ``include_pybind11=False``.
97
-
98
- Warning: do not use property-based access to the instance on Python 2 -
99
- this is an ugly old-style class due to Distutils.
100
- """
101
-
102
- # flags are prepended, so that they can be further overridden, e.g. by
103
- # ``extra_compile_args=["-g"]``.
104
-
105
- def _add_cflags(self, flags):
106
- self.extra_compile_args[:0] = flags
107
-
108
- def _add_ldflags(self, flags):
109
- self.extra_link_args[:0] = flags
110
-
111
- def __init__(self, *args, **kwargs):
112
-
113
- self._cxx_level = 0
114
- cxx_std = kwargs.pop("cxx_std", 0)
115
-
116
- if "language" not in kwargs:
117
- kwargs["language"] = "c++"
118
-
119
- include_pybind11 = kwargs.pop("include_pybind11", True)
120
-
121
- # Can't use super here because distutils has old-style classes in
122
- # Python 2!
123
- _Extension.__init__(self, *args, **kwargs)
124
-
125
- # Include the installed package pybind11 headers
126
- if include_pybind11:
127
- # If using setup_requires, this fails the first time - that's okay
128
- try:
129
- import pybind11
130
-
131
- pyinc = pybind11.get_include()
132
-
133
- if pyinc not in self.include_dirs:
134
- self.include_dirs.append(pyinc)
135
- except ImportError:
136
- pass
137
-
138
- # Have to use the accessor manually to support Python 2 distutils
139
- Pybind11Extension.cxx_std.__set__(self, cxx_std)
140
-
141
- cflags = []
142
- ldflags = []
143
- if WIN:
144
- cflags += ["/EHsc", "/bigobj"]
145
- else:
146
- cflags += ["-fvisibility=hidden", "-g0"]
147
- if MACOS:
148
- cflags += ["-stdlib=libc++"]
149
- ldflags += ["-stdlib=libc++"]
150
- self._add_cflags(cflags)
151
- self._add_ldflags(ldflags)
152
-
153
- @property
154
- def cxx_std(self):
155
- """
156
- The CXX standard level. If set, will add the required flags. If left
157
- at 0, it will trigger an automatic search when pybind11's build_ext
158
- is used. If None, will have no effect. Besides just the flags, this
159
- may add a register warning/error fix for Python 2 or macos-min 10.9
160
- or 10.14.
161
- """
162
- return self._cxx_level
163
-
164
- @cxx_std.setter
165
- def cxx_std(self, level):
166
-
167
- if self._cxx_level:
168
- warnings.warn("You cannot safely change the cxx_level after setting it!")
169
-
170
- # MSVC 2015 Update 3 and later only have 14 (and later 17) modes, so
171
- # force a valid flag here.
172
- if WIN and level == 11:
173
- level = 14
174
-
175
- self._cxx_level = level
176
-
177
- if not level:
178
- return
179
-
180
- cflags = [STD_TMPL.format(level)]
181
- ldflags = []
182
-
183
- if MACOS and "MACOSX_DEPLOYMENT_TARGET" not in os.environ:
184
- # C++17 requires a higher min version of macOS. An earlier version
185
- # (10.12 or 10.13) can be set manually via environment variable if
186
- # you are careful in your feature usage, but 10.14 is the safest
187
- # setting for general use. However, never set higher than the
188
- # current macOS version!
189
- current_macos = tuple(int(x) for x in platform.mac_ver()[0].split(".")[:2])
190
- desired_macos = (10, 9) if level < 17 else (10, 14)
191
- macos_string = ".".join(str(x) for x in min(current_macos, desired_macos))
192
- macosx_min = "-mmacosx-version-min=" + macos_string
193
- cflags += [macosx_min]
194
- ldflags += [macosx_min]
195
-
196
- if PY2:
197
- if WIN:
198
- # Will be ignored on MSVC 2015, where C++17 is not supported so
199
- # this flag is not valid.
200
- cflags += ["/wd5033"]
201
- elif level >= 17:
202
- cflags += ["-Wno-register"]
203
- elif level >= 14:
204
- cflags += ["-Wno-deprecated-register"]
205
-
206
- self._add_cflags(cflags)
207
- self._add_ldflags(ldflags)
208
-
209
-
210
- # Just in case someone clever tries to multithread
211
- tmp_chdir_lock = threading.Lock()
212
- cpp_cache_lock = threading.Lock()
213
-
214
-
215
- @contextlib.contextmanager
216
- def tmp_chdir():
217
- "Prepare and enter a temporary directory, cleanup when done"
218
-
219
- # Threadsafe
220
- with tmp_chdir_lock:
221
- olddir = os.getcwd()
222
- try:
223
- tmpdir = tempfile.mkdtemp()
224
- os.chdir(tmpdir)
225
- yield tmpdir
226
- finally:
227
- os.chdir(olddir)
228
- shutil.rmtree(tmpdir)
229
-
230
-
231
- # cf http://bugs.python.org/issue26689
232
- def has_flag(compiler, flag):
233
- """
234
- Return the flag if a flag name is supported on the
235
- specified compiler, otherwise None (can be used as a boolean).
236
- If multiple flags are passed, return the first that matches.
237
- """
238
-
239
- with tmp_chdir():
240
- fname = "flagcheck.cpp"
241
- with open(fname, "w") as f:
242
- # Don't trigger -Wunused-parameter.
243
- f.write("int main (int, char **) { return 0; }")
244
-
245
- try:
246
- compiler.compile([fname], extra_postargs=[flag])
247
- except distutils.errors.CompileError:
248
- return False
249
- return True
250
-
251
-
252
- # Every call will cache the result
253
- cpp_flag_cache = None
254
-
255
-
256
- def auto_cpp_level(compiler):
257
- """
258
- Return the max supported C++ std level (17, 14, or 11). Returns latest on Windows.
259
- """
260
-
261
- if WIN:
262
- return "latest"
263
-
264
- global cpp_flag_cache
265
-
266
- # If this has been previously calculated with the same args, return that
267
- with cpp_cache_lock:
268
- if cpp_flag_cache:
269
- return cpp_flag_cache
270
-
271
- levels = [17, 14, 11]
272
-
273
- for level in levels:
274
- if has_flag(compiler, STD_TMPL.format(level)):
275
- with cpp_cache_lock:
276
- cpp_flag_cache = level
277
- return level
278
-
279
- msg = "Unsupported compiler -- at least C++11 support is needed!"
280
- raise RuntimeError(msg)
281
-
282
-
283
- class build_ext(_build_ext): # noqa: N801
284
- """
285
- Customized build_ext that allows an auto-search for the highest supported
286
- C++ level for Pybind11Extension. This is only needed for the auto-search
287
- for now, and is completely optional otherwise.
288
- """
289
-
290
- def build_extensions(self):
291
- """
292
- Build extensions, injecting C++ std for Pybind11Extension if needed.
293
- """
294
-
295
- for ext in self.extensions:
296
- if hasattr(ext, "_cxx_level") and ext._cxx_level == 0:
297
- # Python 2 syntax - old-style distutils class
298
- ext.__class__.cxx_std.__set__(ext, auto_cpp_level(self.compiler))
299
-
300
- # Python 2 doesn't allow super here, since distutils uses old-style
301
- # classes!
302
- _build_ext.build_extensions(self)
303
-
304
-
305
- def intree_extensions(paths, package_dir=None):
306
- """
307
- Generate Pybind11Extensions from source files directly located in a Python
308
- source tree.
309
-
310
- ``package_dir`` behaves as in ``setuptools.setup``. If unset, the Python
311
- package root parent is determined as the first parent directory that does
312
- not contain an ``__init__.py`` file.
313
- """
314
- exts = []
315
- for path in paths:
316
- if package_dir is None:
317
- parent, _ = os.path.split(path)
318
- while os.path.exists(os.path.join(parent, "__init__.py")):
319
- parent, _ = os.path.split(parent)
320
- relname, _ = os.path.splitext(os.path.relpath(path, parent))
321
- qualified_name = relname.replace(os.path.sep, ".")
322
- exts.append(Pybind11Extension(qualified_name, [path]))
323
- else:
324
- found = False
325
- for prefix, parent in package_dir.items():
326
- if path.startswith(parent):
327
- found = True
328
- relname, _ = os.path.splitext(os.path.relpath(path, parent))
329
- qualified_name = relname.replace(os.path.sep, ".")
330
- if prefix:
331
- qualified_name = prefix + "." + qualified_name
332
- exts.append(Pybind11Extension(qualified_name, [path]))
333
- if not found:
334
- raise ValueError(
335
- "path {} is not a child of any of the directories listed "
336
- "in 'package_dir' ({})".format(path, package_dir)
337
- )
338
- return exts
339
-
340
-
341
- def naive_recompile(obj, src):
342
- """
343
- This will recompile only if the source file changes. It does not check
344
- header files, so a more advanced function or Ccache is better if you have
345
- editable header files in your package.
346
- """
347
- return os.stat(obj).st_mtime < os.stat(src).st_mtime
348
-
349
-
350
- def no_recompile(obg, src):
351
- """
352
- This is the safest but slowest choice (and is the default) - will always
353
- recompile sources.
354
- """
355
- return True
356
-
357
-
358
- # Optional parallel compile utility
359
- # inspired by: http://stackoverflow.com/questions/11013851/speeding-up-build-process-with-distutils
360
- # and: https://github.com/tbenthompson/cppimport/blob/stable/cppimport/build_module.py
361
- # and NumPy's parallel distutils module:
362
- # https://github.com/numpy/numpy/blob/master/numpy/distutils/ccompiler.py
363
- class ParallelCompile(object):
364
- """
365
- Make a parallel compile function. Inspired by
366
- numpy.distutils.ccompiler.CCompiler_compile and cppimport.
367
-
368
- This takes several arguments that allow you to customize the compile
369
- function created:
370
-
371
- envvar:
372
- Set an environment variable to control the compilation threads, like
373
- NPY_NUM_BUILD_JOBS
374
- default:
375
- 0 will automatically multithread, or 1 will only multithread if the
376
- envvar is set.
377
- max:
378
- The limit for automatic multithreading if non-zero
379
- needs_recompile:
380
- A function of (obj, src) that returns True when recompile is needed. No
381
- effect in isolated mode; use ccache instead, see
382
- https://github.com/matplotlib/matplotlib/issues/1507/
383
-
384
- To use::
385
-
386
- ParallelCompile("NPY_NUM_BUILD_JOBS").install()
387
-
388
- or::
389
-
390
- with ParallelCompile("NPY_NUM_BUILD_JOBS"):
391
- setup(...)
392
-
393
- By default, this assumes all files need to be recompiled. A smarter
394
- function can be provided via needs_recompile. If the output has not yet
395
- been generated, the compile will always run, and this function is not
396
- called.
397
- """
398
-
399
- __slots__ = ("envvar", "default", "max", "_old", "needs_recompile")
400
-
401
- def __init__(self, envvar=None, default=0, max=0, needs_recompile=no_recompile):
402
- self.envvar = envvar
403
- self.default = default
404
- self.max = max
405
- self.needs_recompile = needs_recompile
406
- self._old = []
407
-
408
- def function(self):
409
- """
410
- Builds a function object usable as distutils.ccompiler.CCompiler.compile.
411
- """
412
-
413
- def compile_function(
414
- compiler,
415
- sources,
416
- output_dir=None,
417
- macros=None,
418
- include_dirs=None,
419
- debug=0,
420
- extra_preargs=None,
421
- extra_postargs=None,
422
- depends=None,
423
- ):
424
-
425
- # These lines are directly from distutils.ccompiler.CCompiler
426
- macros, objects, extra_postargs, pp_opts, build = compiler._setup_compile(
427
- output_dir, macros, include_dirs, sources, depends, extra_postargs
428
- )
429
- cc_args = compiler._get_cc_args(pp_opts, debug, extra_preargs)
430
-
431
- # The number of threads; start with default.
432
- threads = self.default
433
-
434
- # Determine the number of compilation threads, unless set by an environment variable.
435
- if self.envvar is not None:
436
- threads = int(os.environ.get(self.envvar, self.default))
437
-
438
- def _single_compile(obj):
439
- try:
440
- src, ext = build[obj]
441
- except KeyError:
442
- return
443
-
444
- if not os.path.exists(obj) or self.needs_recompile(obj, src):
445
- compiler._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
446
-
447
- try:
448
- # Importing .synchronize checks for platforms that have some multiprocessing
449
- # capabilities but lack semaphores, such as AWS Lambda and Android Termux.
450
- import multiprocessing.synchronize
451
- from multiprocessing.pool import ThreadPool
452
- except ImportError:
453
- threads = 1
454
-
455
- if threads == 0:
456
- try:
457
- threads = multiprocessing.cpu_count()
458
- threads = self.max if self.max and self.max < threads else threads
459
- except NotImplementedError:
460
- threads = 1
461
-
462
- if threads > 1:
463
- for _ in ThreadPool(threads).imap_unordered(_single_compile, objects):
464
- pass
465
- else:
466
- for ob in objects:
467
- _single_compile(ob)
468
-
469
- return objects
470
-
471
- return compile_function
472
-
473
- def install(self):
474
- distutils.ccompiler.CCompiler.compile = self.function()
475
- return self
476
-
477
- def __enter__(self):
478
- self._old.append(distutils.ccompiler.CCompiler.compile)
479
- return self.install()
480
-
481
- def __exit__(self, *args):
482
- distutils.ccompiler.CCompiler.compile = self._old.pop()