pyfes 2025.5.1__tar.gz

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.
Files changed (620) hide show
  1. pyfes-2025.5.1/.clang-format +171 -0
  2. pyfes-2025.5.1/.github/ISSUE_TEMPLATE/bug_report.md +34 -0
  3. pyfes-2025.5.1/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  4. pyfes-2025.5.1/.github/workflows/ci.yaml +114 -0
  5. pyfes-2025.5.1/.github/workflows/pre-commit.yml +15 -0
  6. pyfes-2025.5.1/.github/workflows/pypipublish.yaml +84 -0
  7. pyfes-2025.5.1/.github/workflows/wheels.yml +129 -0
  8. pyfes-2025.5.1/.gitignore +123 -0
  9. pyfes-2025.5.1/.gitmodules +3 -0
  10. pyfes-2025.5.1/.pre-commit-config.yaml +56 -0
  11. pyfes-2025.5.1/AUTHORS +5 -0
  12. pyfes-2025.5.1/CMakeLists.txt +479 -0
  13. pyfes-2025.5.1/Dockerfile +157 -0
  14. pyfes-2025.5.1/LICENSE +29 -0
  15. pyfes-2025.5.1/MANIFEST.in +14 -0
  16. pyfes-2025.5.1/PKG-INFO +268 -0
  17. pyfes-2025.5.1/README.md +243 -0
  18. pyfes-2025.5.1/_custom_build/backend.py +145 -0
  19. pyfes-2025.5.1/binder/environment.yml +12 -0
  20. pyfes-2025.5.1/binder/postBuild +26 -0
  21. pyfes-2025.5.1/conda/environment.yml +23 -0
  22. pyfes-2025.5.1/conda/meta.yaml +55 -0
  23. pyfes-2025.5.1/conftest.py +172 -0
  24. pyfes-2025.5.1/data/fes2014/README.md +91 -0
  25. pyfes-2025.5.1/data/fes2014/eastward_velocity/.gitkeep +0 -0
  26. pyfes-2025.5.1/data/fes2014/eastward_velocity.yaml +41 -0
  27. pyfes-2025.5.1/data/fes2014/load_tide/.gitkeep +0 -0
  28. pyfes-2025.5.1/data/fes2014/load_tide.yaml +41 -0
  29. pyfes-2025.5.1/data/fes2014/northward_velocity/.gitkeep +0 -0
  30. pyfes-2025.5.1/data/fes2014/northward_velocity.yaml +41 -0
  31. pyfes-2025.5.1/data/fes2014/ocean_tide/.gitkeep +0 -0
  32. pyfes-2025.5.1/data/fes2014/ocean_tide.yaml +41 -0
  33. pyfes-2025.5.1/data/fes2014/ocean_tide_extrapolated/.gitkeep +0 -0
  34. pyfes-2025.5.1/data/fes2014/ocean_tide_extrapolated.yaml +41 -0
  35. pyfes-2025.5.1/data/fes2022b/README.md +77 -0
  36. pyfes-2025.5.1/data/fes2022b/fes2022.yaml +84 -0
  37. pyfes-2025.5.1/data/fes2022b/load_tide/.gitkeep +0 -0
  38. pyfes-2025.5.1/data/fes2022b/load_tide.yaml +41 -0
  39. pyfes-2025.5.1/data/fes2022b/ocean_tide/.gitkeep +0 -0
  40. pyfes-2025.5.1/data/fes2022b/ocean_tide.yaml +43 -0
  41. pyfes-2025.5.1/data/fes2022b/ocean_tide_extrapolated/.gitkeep +0 -0
  42. pyfes-2025.5.1/data/fes2022b/ocean_tide_extrapolated.yaml +43 -0
  43. pyfes-2025.5.1/docs/Doxyfile +2881 -0
  44. pyfes-2025.5.1/docs/Makefile +20 -0
  45. pyfes-2025.5.1/docs/main_page.dox +216 -0
  46. pyfes-2025.5.1/docs/make.bat +35 -0
  47. pyfes-2025.5.1/docs/source/api/astronomic_angle.rst +19 -0
  48. pyfes-2025.5.1/docs/source/api/configuration.rst +23 -0
  49. pyfes-2025.5.1/docs/source/api/engine_modules.rst +47 -0
  50. pyfes-2025.5.1/docs/source/api/enumerations.rst +164 -0
  51. pyfes-2025.5.1/docs/source/api/exceptions.rst +18 -0
  52. pyfes-2025.5.1/docs/source/api/index.rst +43 -0
  53. pyfes-2025.5.1/docs/source/api/prediction.rst +21 -0
  54. pyfes-2025.5.1/docs/source/api/settings.rst +38 -0
  55. pyfes-2025.5.1/docs/source/api/tidal_models.rst +60 -0
  56. pyfes-2025.5.1/docs/source/api/utilities.rst +13 -0
  57. pyfes-2025.5.1/docs/source/api/wave_system.rst +41 -0
  58. pyfes-2025.5.1/docs/source/auto_examples/cube.svg +1 -0
  59. pyfes-2025.5.1/docs/source/changelog.rst +537 -0
  60. pyfes-2025.5.1/docs/source/conf.py +263 -0
  61. pyfes-2025.5.1/docs/source/constituents/darwin.rst +116 -0
  62. pyfes-2025.5.1/docs/source/constituents/index.rst +25 -0
  63. pyfes-2025.5.1/docs/source/constituents/perth.rst +97 -0
  64. pyfes-2025.5.1/docs/source/engines.rst +183 -0
  65. pyfes-2025.5.1/docs/source/getting_started.rst +266 -0
  66. pyfes-2025.5.1/docs/source/glossary.rst +180 -0
  67. pyfes-2025.5.1/docs/source/index.rst +166 -0
  68. pyfes-2025.5.1/docs/source/theory/admittance_inference.rst +148 -0
  69. pyfes-2025.5.1/docs/source/theory/astronomic_angles.rst +327 -0
  70. pyfes-2025.5.1/docs/source/theory/compound_waves.rst +167 -0
  71. pyfes-2025.5.1/docs/source/theory/harmonic_analysis.rst +151 -0
  72. pyfes-2025.5.1/docs/source/theory/harmonic_development.rst +261 -0
  73. pyfes-2025.5.1/docs/source/theory/index.rst +55 -0
  74. pyfes-2025.5.1/docs/source/theory/nodal_corrections.rst +293 -0
  75. pyfes-2025.5.1/docs/source/theory/tide_generating_potential.rst +161 -0
  76. pyfes-2025.5.1/docs/source/user_guide.rst +417 -0
  77. pyfes-2025.5.1/examples/README.rst +5 -0
  78. pyfes-2025.5.1/examples/ex_astronomic_constants.py +749 -0
  79. pyfes-2025.5.1/examples/ex_constituents_prediction.py +289 -0
  80. pyfes-2025.5.1/examples/ex_engine_comparison.py +291 -0
  81. pyfes-2025.5.1/examples/ex_harmonic_analysis.py +169 -0
  82. pyfes-2025.5.1/examples/ex_interpolation.py +165 -0
  83. pyfes-2025.5.1/examples/ex_lpg_prediction.py +178 -0
  84. pyfes-2025.5.1/examples/ex_mapping.py +117 -0
  85. pyfes-2025.5.1/examples/ex_prediction.py +201 -0
  86. pyfes-2025.5.1/examples/fes_lpg.yml +26 -0
  87. pyfes-2025.5.1/examples/fes_slev.yml +31 -0
  88. pyfes-2025.5.1/examples/fes_slev_2014_v1.2.txt +25 -0
  89. pyfes-2025.5.1/examples/fes_slev_2022_v2.9.7.txt +26 -0
  90. pyfes-2025.5.1/examples/got5_6.yml +30 -0
  91. pyfes-2025.5.1/examples/mitgcm_detiding.py +269 -0
  92. pyfes-2025.5.1/examples/prediction.cpp +427 -0
  93. pyfes-2025.5.1/include/fes/angle/astronomic.hpp +719 -0
  94. pyfes-2025.5.1/include/fes/axis.hpp +198 -0
  95. pyfes-2025.5.1/include/fes/constituent.hpp +226 -0
  96. pyfes-2025.5.1/include/fes/darwin/constituent.hpp +60 -0
  97. pyfes-2025.5.1/include/fes/darwin/wave.hpp +1527 -0
  98. pyfes-2025.5.1/include/fes/darwin/wave_table.hpp +44 -0
  99. pyfes-2025.5.1/include/fes/darwin.hpp +187 -0
  100. pyfes-2025.5.1/include/fes/delta_time.hpp +204 -0
  101. pyfes-2025.5.1/include/fes/detail/angle/astronomic/frequency.hpp +66 -0
  102. pyfes-2025.5.1/include/fes/detail/angle/astronomic/speed.hpp +70 -0
  103. pyfes-2025.5.1/include/fes/detail/broadcast.hpp +73 -0
  104. pyfes-2025.5.1/include/fes/detail/geometry/algorithm.hpp +52 -0
  105. pyfes-2025.5.1/include/fes/detail/grid.hpp +89 -0
  106. pyfes-2025.5.1/include/fes/detail/markdown_table.hpp +79 -0
  107. pyfes-2025.5.1/include/fes/detail/math.hpp +422 -0
  108. pyfes-2025.5.1/include/fes/detail/parallel_for.hpp +135 -0
  109. pyfes-2025.5.1/include/fes/detail/string.hpp +26 -0
  110. pyfes-2025.5.1/include/fes/enum_map.hpp +289 -0
  111. pyfes-2025.5.1/include/fes/geometry/box.hpp +94 -0
  112. pyfes-2025.5.1/include/fes/geometry/ecef.hpp +152 -0
  113. pyfes-2025.5.1/include/fes/geometry/point.hpp +167 -0
  114. pyfes-2025.5.1/include/fes/geometry/triangle.hpp +272 -0
  115. pyfes-2025.5.1/include/fes/harmonic_analysis.hpp +67 -0
  116. pyfes-2025.5.1/include/fes/inference.hpp +610 -0
  117. pyfes-2025.5.1/include/fes/interface/inference.hpp +74 -0
  118. pyfes-2025.5.1/include/fes/interface/tidal_model.hpp +341 -0
  119. pyfes-2025.5.1/include/fes/interface/wave.hpp +238 -0
  120. pyfes-2025.5.1/include/fes/interface/wave_table.hpp +359 -0
  121. pyfes-2025.5.1/include/fes/long_period_equilibrium.hpp +66 -0
  122. pyfes-2025.5.1/include/fes/map.hpp +158 -0
  123. pyfes-2025.5.1/include/fes/mesh/index.hpp +282 -0
  124. pyfes-2025.5.1/include/fes/namespace.hpp +74 -0
  125. pyfes-2025.5.1/include/fes/numbers.hpp +168 -0
  126. pyfes-2025.5.1/include/fes/perth/constituent.hpp +59 -0
  127. pyfes-2025.5.1/include/fes/perth/doodson.hpp +81 -0
  128. pyfes-2025.5.1/include/fes/perth/love_numbers.hpp +55 -0
  129. pyfes-2025.5.1/include/fes/perth/nodal_corrections.hpp +118 -0
  130. pyfes-2025.5.1/include/fes/perth/wave.hpp +557 -0
  131. pyfes-2025.5.1/include/fes/perth/wave_table.hpp +43 -0
  132. pyfes-2025.5.1/include/fes/python/datemanip.hpp +116 -0
  133. pyfes-2025.5.1/include/fes/python/datetime64.hpp +77 -0
  134. pyfes-2025.5.1/include/fes/python/optional.hpp +26 -0
  135. pyfes-2025.5.1/include/fes/settings.hpp +167 -0
  136. pyfes-2025.5.1/include/fes/tidal_model/cartesian.hpp +282 -0
  137. pyfes-2025.5.1/include/fes/tidal_model/lgp.hpp +716 -0
  138. pyfes-2025.5.1/include/fes/tide.hpp +294 -0
  139. pyfes-2025.5.1/include/fes/types.hpp +53 -0
  140. pyfes-2025.5.1/include/fes/version.hpp +9 -0
  141. pyfes-2025.5.1/include/fes/xdo.hpp +68 -0
  142. pyfes-2025.5.1/pyproject.toml +169 -0
  143. pyfes-2025.5.1/pytest.ini +9 -0
  144. pyfes-2025.5.1/setup.cfg +14 -0
  145. pyfes-2025.5.1/setup.py +374 -0
  146. pyfes-2025.5.1/src/core/astronomic_angle.cpp +119 -0
  147. pyfes-2025.5.1/src/core/axis.cpp +87 -0
  148. pyfes-2025.5.1/src/core/constituents.cpp +47 -0
  149. pyfes-2025.5.1/src/core/darwin.cpp +90 -0
  150. pyfes-2025.5.1/src/core/datemanip.cpp +47 -0
  151. pyfes-2025.5.1/src/core/long_period_equilibrium.cpp +101 -0
  152. pyfes-2025.5.1/src/core/main.cpp +65 -0
  153. pyfes-2025.5.1/src/core/mesh_index.cpp +61 -0
  154. pyfes-2025.5.1/src/core/perth.cpp +89 -0
  155. pyfes-2025.5.1/src/core/settings.cpp +275 -0
  156. pyfes-2025.5.1/src/core/tidal_model_cartesian.cpp +76 -0
  157. pyfes-2025.5.1/src/core/tidal_model_interface.cpp +265 -0
  158. pyfes-2025.5.1/src/core/tidal_model_lgp.cpp +115 -0
  159. pyfes-2025.5.1/src/core/tide.cpp +158 -0
  160. pyfes-2025.5.1/src/core/wave_interface.cpp +159 -0
  161. pyfes-2025.5.1/src/core/wave_table_interface.cpp +404 -0
  162. pyfes-2025.5.1/src/library/axis.cpp +164 -0
  163. pyfes-2025.5.1/src/library/constituent.cpp +55 -0
  164. pyfes-2025.5.1/src/library/darwin/wave.cpp +485 -0
  165. pyfes-2025.5.1/src/library/darwin/wave_table.cpp +254 -0
  166. pyfes-2025.5.1/src/library/geometry/triangle.cpp +67 -0
  167. pyfes-2025.5.1/src/library/harmonic_analysis.cpp +42 -0
  168. pyfes-2025.5.1/src/library/inference.cpp +28 -0
  169. pyfes-2025.5.1/src/library/interface/wave.cpp +31 -0
  170. pyfes-2025.5.1/src/library/interface/wave_table.cpp +286 -0
  171. pyfes-2025.5.1/src/library/long_period_equilibrium.cpp +275 -0
  172. pyfes-2025.5.1/src/library/mesh/index.cpp +163 -0
  173. pyfes-2025.5.1/src/library/perth/nodal_corrections.cpp +520 -0
  174. pyfes-2025.5.1/src/library/perth/wave.cpp +337 -0
  175. pyfes-2025.5.1/src/library/perth/wave_table.cpp +229 -0
  176. pyfes-2025.5.1/src/library/settings.cpp +125 -0
  177. pyfes-2025.5.1/src/library/tide.cpp +99 -0
  178. pyfes-2025.5.1/src/library/wave_table.cpp +36 -0
  179. pyfes-2025.5.1/src/pyfes/__init__.py +292 -0
  180. pyfes-2025.5.1/src/pyfes/astronomic_angle.py +60 -0
  181. pyfes-2025.5.1/src/pyfes/config.py +980 -0
  182. pyfes-2025.5.1/src/pyfes/console_script/__init__.py +1 -0
  183. pyfes-2025.5.1/src/pyfes/console_script/fes_convert_mesh.py +154 -0
  184. pyfes-2025.5.1/src/pyfes/core/__init__.pyi +487 -0
  185. pyfes-2025.5.1/src/pyfes/core/darwin.pyi +24 -0
  186. pyfes-2025.5.1/src/pyfes/core/datemanip.pyi +4 -0
  187. pyfes-2025.5.1/src/pyfes/core/mesh.pyi +10 -0
  188. pyfes-2025.5.1/src/pyfes/core/perth.pyi +24 -0
  189. pyfes-2025.5.1/src/pyfes/core/tidal_model.pyi +120 -0
  190. pyfes-2025.5.1/src/pyfes/py.typed +0 -0
  191. pyfes-2025.5.1/src/pyfes/type_hints.py +110 -0
  192. pyfes-2025.5.1/src/pyfes/version.py +6 -0
  193. pyfes-2025.5.1/src/pyfes.egg-info/PKG-INFO +268 -0
  194. pyfes-2025.5.1/src/pyfes.egg-info/SOURCES.txt +619 -0
  195. pyfes-2025.5.1/src/pyfes.egg-info/dependency_links.txt +1 -0
  196. pyfes-2025.5.1/src/pyfes.egg-info/entry_points.txt +2 -0
  197. pyfes-2025.5.1/src/pyfes.egg-info/not-zip-safe +1 -0
  198. pyfes-2025.5.1/src/pyfes.egg-info/requires.txt +3 -0
  199. pyfes-2025.5.1/src/pyfes.egg-info/top_level.txt +3 -0
  200. pyfes-2025.5.1/tests/library/CMakeLists.txt +35 -0
  201. pyfes-2025.5.1/tests/library/angle/CMakeLists.txt +1 -0
  202. pyfes-2025.5.1/tests/library/angle/astronomic.cpp +102 -0
  203. pyfes-2025.5.1/tests/library/axis.cpp +193 -0
  204. pyfes-2025.5.1/tests/library/darwin/CMakeLists.txt +2 -0
  205. pyfes-2025.5.1/tests/library/darwin/darwin_table.cpp +548 -0
  206. pyfes-2025.5.1/tests/library/darwin/darwin_wave.cpp +569 -0
  207. pyfes-2025.5.1/tests/library/darwin.cpp +457 -0
  208. pyfes-2025.5.1/tests/library/delta_time.cpp +221 -0
  209. pyfes-2025.5.1/tests/library/detail/CMakeLists.txt +3 -0
  210. pyfes-2025.5.1/tests/library/detail/grid.cpp +47 -0
  211. pyfes-2025.5.1/tests/library/detail/math.cpp +183 -0
  212. pyfes-2025.5.1/tests/library/detail/parallel_for.cpp +38 -0
  213. pyfes-2025.5.1/tests/library/enum_map.cpp +0 -0
  214. pyfes-2025.5.1/tests/library/geometry/CMakeLists.txt +4 -0
  215. pyfes-2025.5.1/tests/library/geometry/box.cpp +202 -0
  216. pyfes-2025.5.1/tests/library/geometry/ecef.cpp +36 -0
  217. pyfes-2025.5.1/tests/library/geometry/point.cpp +37 -0
  218. pyfes-2025.5.1/tests/library/geometry/triangle.cpp +87 -0
  219. pyfes-2025.5.1/tests/library/inference.cpp +282 -0
  220. pyfes-2025.5.1/tests/library/long_period_equilibrium.cpp +96 -0
  221. pyfes-2025.5.1/tests/library/mesh/CMakeLists.txt +1 -0
  222. pyfes-2025.5.1/tests/library/mesh/index.cpp +86 -0
  223. pyfes-2025.5.1/tests/library/perth/CMakeLists.txt +2 -0
  224. pyfes-2025.5.1/tests/library/perth/doodson.cpp +54 -0
  225. pyfes-2025.5.1/tests/library/perth/perth_nodal_corrections.cpp +390 -0
  226. pyfes-2025.5.1/tests/library/tidal_model/CMakeLists.txt +3 -0
  227. pyfes-2025.5.1/tests/library/tidal_model/cartesian.cpp +125 -0
  228. pyfes-2025.5.1/tests/library/tidal_model/lgp1.cpp +88 -0
  229. pyfes-2025.5.1/tests/library/tidal_model/lgp2.cpp +89 -0
  230. pyfes-2025.5.1/tests/library/tide.cpp +168 -0
  231. pyfes-2025.5.1/tests/library/xdo.cpp +241 -0
  232. pyfes-2025.5.1/tests/python/__init__.py +0 -0
  233. pyfes-2025.5.1/tests/python/core/__init__.py +10 -0
  234. pyfes-2025.5.1/tests/python/core/darwin/__init__.py +4 -0
  235. pyfes-2025.5.1/tests/python/core/darwin/test_evaluate_long_period.py +38 -0
  236. pyfes-2025.5.1/tests/python/core/darwin/test_wave.py +201 -0
  237. pyfes-2025.5.1/tests/python/core/darwin/test_wave_table.py +304 -0
  238. pyfes-2025.5.1/tests/python/core/perth/__init__.py +4 -0
  239. pyfes-2025.5.1/tests/python/core/perth/test_wave.py +308 -0
  240. pyfes-2025.5.1/tests/python/core/perth/test_wave_table.py +145 -0
  241. pyfes-2025.5.1/tests/python/core/test_astronomic_angle.py +183 -0
  242. pyfes-2025.5.1/tests/python/core/test_axis.py +34 -0
  243. pyfes-2025.5.1/tests/python/core/test_evaluate_tide.py +331 -0
  244. pyfes-2025.5.1/tests/python/core/test_long_period_equilibrium.py +159 -0
  245. pyfes-2025.5.1/tests/python/core/test_tidal_model_cartesian.py +121 -0
  246. pyfes-2025.5.1/tests/python/test_bbox.py +133 -0
  247. pyfes-2025.5.1/tests/python/test_config.py +61 -0
  248. pyfes-2025.5.1/tests/python/test_lgp.py +58 -0
  249. pyfes-2025.5.1/tests/python/test_resample.py +303 -0
  250. pyfes-2025.5.1/third_party/pybind11/.appveyor.yml +35 -0
  251. pyfes-2025.5.1/third_party/pybind11/.clang-format +38 -0
  252. pyfes-2025.5.1/third_party/pybind11/.clang-tidy +83 -0
  253. pyfes-2025.5.1/third_party/pybind11/.cmake-format.yaml +73 -0
  254. pyfes-2025.5.1/third_party/pybind11/.codespell-ignore-lines +36 -0
  255. pyfes-2025.5.1/third_party/pybind11/.git +1 -0
  256. pyfes-2025.5.1/third_party/pybind11/.gitattributes +1 -0
  257. pyfes-2025.5.1/third_party/pybind11/.github/CODEOWNERS +9 -0
  258. pyfes-2025.5.1/third_party/pybind11/.github/CONTRIBUTING.md +349 -0
  259. pyfes-2025.5.1/third_party/pybind11/.github/ISSUE_TEMPLATE/bug-report.yml +61 -0
  260. pyfes-2025.5.1/third_party/pybind11/.github/ISSUE_TEMPLATE/config.yml +8 -0
  261. pyfes-2025.5.1/third_party/pybind11/.github/dependabot.yml +11 -0
  262. pyfes-2025.5.1/third_party/pybind11/.github/labeler.yml +13 -0
  263. pyfes-2025.5.1/third_party/pybind11/.github/labeler_merged.yml +8 -0
  264. pyfes-2025.5.1/third_party/pybind11/.github/matchers/pylint.json +32 -0
  265. pyfes-2025.5.1/third_party/pybind11/.github/pull_request_template.md +15 -0
  266. pyfes-2025.5.1/third_party/pybind11/.github/workflows/ci.yml +1369 -0
  267. pyfes-2025.5.1/third_party/pybind11/.github/workflows/configure.yml +85 -0
  268. pyfes-2025.5.1/third_party/pybind11/.github/workflows/docs-link.yml +41 -0
  269. pyfes-2025.5.1/third_party/pybind11/.github/workflows/format.yml +54 -0
  270. pyfes-2025.5.1/third_party/pybind11/.github/workflows/labeler.yml +25 -0
  271. pyfes-2025.5.1/third_party/pybind11/.github/workflows/nightlies.yml +59 -0
  272. pyfes-2025.5.1/third_party/pybind11/.github/workflows/pip.yml +118 -0
  273. pyfes-2025.5.1/third_party/pybind11/.github/workflows/reusable-standard.yml +98 -0
  274. pyfes-2025.5.1/third_party/pybind11/.github/workflows/tests-cibw.yml +77 -0
  275. pyfes-2025.5.1/third_party/pybind11/.github/workflows/upstream.yml +118 -0
  276. pyfes-2025.5.1/third_party/pybind11/.gitignore +54 -0
  277. pyfes-2025.5.1/third_party/pybind11/.pre-commit-config.yaml +158 -0
  278. pyfes-2025.5.1/third_party/pybind11/.readthedocs.yml +20 -0
  279. pyfes-2025.5.1/third_party/pybind11/CMakeLists.txt +425 -0
  280. pyfes-2025.5.1/third_party/pybind11/CMakePresets.json +93 -0
  281. pyfes-2025.5.1/third_party/pybind11/LICENSE +29 -0
  282. pyfes-2025.5.1/third_party/pybind11/README.rst +215 -0
  283. pyfes-2025.5.1/third_party/pybind11/SECURITY.md +13 -0
  284. pyfes-2025.5.1/third_party/pybind11/docs/Doxyfile +21 -0
  285. pyfes-2025.5.1/third_party/pybind11/docs/Makefile +192 -0
  286. pyfes-2025.5.1/third_party/pybind11/docs/_static/css/custom.css +3 -0
  287. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/chrono.rst +81 -0
  288. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/custom.rst +137 -0
  289. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/eigen.rst +310 -0
  290. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/functional.rst +109 -0
  291. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/index.rst +43 -0
  292. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/overview.rst +170 -0
  293. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/stl.rst +249 -0
  294. pyfes-2025.5.1/third_party/pybind11/docs/advanced/cast/strings.rst +296 -0
  295. pyfes-2025.5.1/third_party/pybind11/docs/advanced/classes.rst +1432 -0
  296. pyfes-2025.5.1/third_party/pybind11/docs/advanced/deadlock.md +391 -0
  297. pyfes-2025.5.1/third_party/pybind11/docs/advanced/deprecated.rst +179 -0
  298. pyfes-2025.5.1/third_party/pybind11/docs/advanced/embedding.rst +499 -0
  299. pyfes-2025.5.1/third_party/pybind11/docs/advanced/exceptions.rst +422 -0
  300. pyfes-2025.5.1/third_party/pybind11/docs/advanced/functions.rst +616 -0
  301. pyfes-2025.5.1/third_party/pybind11/docs/advanced/misc.rst +615 -0
  302. pyfes-2025.5.1/third_party/pybind11/docs/advanced/pycpp/index.rst +13 -0
  303. pyfes-2025.5.1/third_party/pybind11/docs/advanced/pycpp/numpy.rst +493 -0
  304. pyfes-2025.5.1/third_party/pybind11/docs/advanced/pycpp/object.rst +286 -0
  305. pyfes-2025.5.1/third_party/pybind11/docs/advanced/pycpp/utilities.rst +155 -0
  306. pyfes-2025.5.1/third_party/pybind11/docs/advanced/smart_ptrs.rst +179 -0
  307. pyfes-2025.5.1/third_party/pybind11/docs/basics.rst +316 -0
  308. pyfes-2025.5.1/third_party/pybind11/docs/benchmark.py +89 -0
  309. pyfes-2025.5.1/third_party/pybind11/docs/benchmark.rst +95 -0
  310. pyfes-2025.5.1/third_party/pybind11/docs/changelog.md +3488 -0
  311. pyfes-2025.5.1/third_party/pybind11/docs/classes.rst +652 -0
  312. pyfes-2025.5.1/third_party/pybind11/docs/cmake/index.rst +8 -0
  313. pyfes-2025.5.1/third_party/pybind11/docs/compiling.rst +731 -0
  314. pyfes-2025.5.1/third_party/pybind11/docs/conf.py +369 -0
  315. pyfes-2025.5.1/third_party/pybind11/docs/faq.rst +351 -0
  316. pyfes-2025.5.1/third_party/pybind11/docs/index.rst +49 -0
  317. pyfes-2025.5.1/third_party/pybind11/docs/installing.rst +105 -0
  318. pyfes-2025.5.1/third_party/pybind11/docs/limitations.rst +68 -0
  319. pyfes-2025.5.1/third_party/pybind11/docs/pybind11-logo.png +0 -0
  320. pyfes-2025.5.1/third_party/pybind11/docs/pybind11_vs_boost_python1.png +0 -0
  321. pyfes-2025.5.1/third_party/pybind11/docs/pybind11_vs_boost_python1.svg +427 -0
  322. pyfes-2025.5.1/third_party/pybind11/docs/pybind11_vs_boost_python2.png +0 -0
  323. pyfes-2025.5.1/third_party/pybind11/docs/pybind11_vs_boost_python2.svg +427 -0
  324. pyfes-2025.5.1/third_party/pybind11/docs/reference.rst +130 -0
  325. pyfes-2025.5.1/third_party/pybind11/docs/release.rst +135 -0
  326. pyfes-2025.5.1/third_party/pybind11/docs/requirements.in +7 -0
  327. pyfes-2025.5.1/third_party/pybind11/docs/requirements.txt +87 -0
  328. pyfes-2025.5.1/third_party/pybind11/docs/upgrade.rst +748 -0
  329. pyfes-2025.5.1/third_party/pybind11/include/pybind11/attr.h +730 -0
  330. pyfes-2025.5.1/third_party/pybind11/include/pybind11/buffer_info.h +209 -0
  331. pyfes-2025.5.1/third_party/pybind11/include/pybind11/cast.h +2446 -0
  332. pyfes-2025.5.1/third_party/pybind11/include/pybind11/chrono.h +227 -0
  333. pyfes-2025.5.1/third_party/pybind11/include/pybind11/common.h +2 -0
  334. pyfes-2025.5.1/third_party/pybind11/include/pybind11/complex.h +93 -0
  335. pyfes-2025.5.1/third_party/pybind11/include/pybind11/conduit/README.txt +15 -0
  336. pyfes-2025.5.1/third_party/pybind11/include/pybind11/conduit/pybind11_conduit_v1.h +116 -0
  337. pyfes-2025.5.1/third_party/pybind11/include/pybind11/conduit/pybind11_platform_abi_id.h +87 -0
  338. pyfes-2025.5.1/third_party/pybind11/include/pybind11/conduit/wrap_include_python_h.h +72 -0
  339. pyfes-2025.5.1/third_party/pybind11/include/pybind11/critical_section.h +56 -0
  340. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/argument_vector.h +417 -0
  341. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/class.h +850 -0
  342. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/common.h +1427 -0
  343. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/cpp_conduit.h +75 -0
  344. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/descr.h +226 -0
  345. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/dynamic_raw_ptr_cast_if_possible.h +39 -0
  346. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/exception_translation.h +71 -0
  347. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/function_record_pyobject.h +192 -0
  348. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/holder_caster_foreign_helpers.h +104 -0
  349. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/init.h +548 -0
  350. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/internals.h +1082 -0
  351. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/native_enum_data.h +227 -0
  352. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/pybind11_namespace_macros.h +82 -0
  353. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/struct_smart_holder.h +398 -0
  354. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/type_caster_base.h +1723 -0
  355. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/typeid.h +65 -0
  356. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/using_smart_holder.h +22 -0
  357. pyfes-2025.5.1/third_party/pybind11/include/pybind11/detail/value_and_holder.h +92 -0
  358. pyfes-2025.5.1/third_party/pybind11/include/pybind11/eigen/common.h +9 -0
  359. pyfes-2025.5.1/third_party/pybind11/include/pybind11/eigen/matrix.h +723 -0
  360. pyfes-2025.5.1/third_party/pybind11/include/pybind11/eigen/tensor.h +520 -0
  361. pyfes-2025.5.1/third_party/pybind11/include/pybind11/eigen.h +12 -0
  362. pyfes-2025.5.1/third_party/pybind11/include/pybind11/embed.h +320 -0
  363. pyfes-2025.5.1/third_party/pybind11/include/pybind11/eval.h +161 -0
  364. pyfes-2025.5.1/third_party/pybind11/include/pybind11/functional.h +147 -0
  365. pyfes-2025.5.1/third_party/pybind11/include/pybind11/gil.h +203 -0
  366. pyfes-2025.5.1/third_party/pybind11/include/pybind11/gil_safe_call_once.h +273 -0
  367. pyfes-2025.5.1/third_party/pybind11/include/pybind11/gil_simple.h +37 -0
  368. pyfes-2025.5.1/third_party/pybind11/include/pybind11/iostream.h +301 -0
  369. pyfes-2025.5.1/third_party/pybind11/include/pybind11/native_enum.h +76 -0
  370. pyfes-2025.5.1/third_party/pybind11/include/pybind11/numpy.h +2412 -0
  371. pyfes-2025.5.1/third_party/pybind11/include/pybind11/operators.h +202 -0
  372. pyfes-2025.5.1/third_party/pybind11/include/pybind11/options.h +92 -0
  373. pyfes-2025.5.1/third_party/pybind11/include/pybind11/pybind11.h +3962 -0
  374. pyfes-2025.5.1/third_party/pybind11/include/pybind11/pytypes.h +2736 -0
  375. pyfes-2025.5.1/third_party/pybind11/include/pybind11/stl/filesystem.h +114 -0
  376. pyfes-2025.5.1/third_party/pybind11/include/pybind11/stl.h +666 -0
  377. pyfes-2025.5.1/third_party/pybind11/include/pybind11/stl_bind.h +858 -0
  378. pyfes-2025.5.1/third_party/pybind11/include/pybind11/subinterpreter.h +291 -0
  379. pyfes-2025.5.1/third_party/pybind11/include/pybind11/trampoline_self_life_support.h +65 -0
  380. pyfes-2025.5.1/third_party/pybind11/include/pybind11/type_caster_pyobject_ptr.h +61 -0
  381. pyfes-2025.5.1/third_party/pybind11/include/pybind11/typing.h +295 -0
  382. pyfes-2025.5.1/third_party/pybind11/include/pybind11/warnings.h +75 -0
  383. pyfes-2025.5.1/third_party/pybind11/noxfile.py +151 -0
  384. pyfes-2025.5.1/third_party/pybind11/pybind11/__init__.py +19 -0
  385. pyfes-2025.5.1/third_party/pybind11/pybind11/__main__.py +97 -0
  386. pyfes-2025.5.1/third_party/pybind11/pybind11/_version.py +34 -0
  387. pyfes-2025.5.1/third_party/pybind11/pybind11/commands.py +39 -0
  388. pyfes-2025.5.1/third_party/pybind11/pybind11/py.typed +0 -0
  389. pyfes-2025.5.1/third_party/pybind11/pybind11/setup_helpers.py +500 -0
  390. pyfes-2025.5.1/third_party/pybind11/pyproject.toml +215 -0
  391. pyfes-2025.5.1/third_party/pybind11/tests/CMakeLists.txt +694 -0
  392. pyfes-2025.5.1/third_party/pybind11/tests/conftest.py +313 -0
  393. pyfes-2025.5.1/third_party/pybind11/tests/constructor_stats.h +330 -0
  394. pyfes-2025.5.1/third_party/pybind11/tests/cross_module_gil_utils.cpp +111 -0
  395. pyfes-2025.5.1/third_party/pybind11/tests/cross_module_interleaved_error_already_set.cpp +54 -0
  396. pyfes-2025.5.1/third_party/pybind11/tests/custom_exceptions.py +10 -0
  397. pyfes-2025.5.1/third_party/pybind11/tests/eigen_tensor_avoid_stl_array.cpp +16 -0
  398. pyfes-2025.5.1/third_party/pybind11/tests/env.py +76 -0
  399. pyfes-2025.5.1/third_party/pybind11/tests/exo_planet_c_api.cpp +76 -0
  400. pyfes-2025.5.1/third_party/pybind11/tests/exo_planet_pybind11.cpp +19 -0
  401. pyfes-2025.5.1/third_party/pybind11/tests/extra_python_package/pytest.ini +0 -0
  402. pyfes-2025.5.1/third_party/pybind11/tests/extra_python_package/test_files.py +385 -0
  403. pyfes-2025.5.1/third_party/pybind11/tests/extra_setuptools/pytest.ini +0 -0
  404. pyfes-2025.5.1/third_party/pybind11/tests/extra_setuptools/test_setuphelper.py +153 -0
  405. pyfes-2025.5.1/third_party/pybind11/tests/home_planet_very_lonely_traveler.cpp +13 -0
  406. pyfes-2025.5.1/third_party/pybind11/tests/local_bindings.h +93 -0
  407. pyfes-2025.5.1/third_party/pybind11/tests/mod_per_interpreter_gil.cpp +20 -0
  408. pyfes-2025.5.1/third_party/pybind11/tests/mod_per_interpreter_gil_with_singleton.cpp +147 -0
  409. pyfes-2025.5.1/third_party/pybind11/tests/mod_shared_interpreter_gil.cpp +17 -0
  410. pyfes-2025.5.1/third_party/pybind11/tests/object.h +205 -0
  411. pyfes-2025.5.1/third_party/pybind11/tests/pure_cpp/CMakeLists.txt +22 -0
  412. pyfes-2025.5.1/third_party/pybind11/tests/pure_cpp/smart_holder_poc.h +56 -0
  413. pyfes-2025.5.1/third_party/pybind11/tests/pure_cpp/smart_holder_poc_test.cpp +427 -0
  414. pyfes-2025.5.1/third_party/pybind11/tests/pybind11_cross_module_tests.cpp +163 -0
  415. pyfes-2025.5.1/third_party/pybind11/tests/pybind11_tests.cpp +141 -0
  416. pyfes-2025.5.1/third_party/pybind11/tests/pybind11_tests.h +119 -0
  417. pyfes-2025.5.1/third_party/pybind11/tests/pyproject.toml +40 -0
  418. pyfes-2025.5.1/third_party/pybind11/tests/pytest.ini +22 -0
  419. pyfes-2025.5.1/third_party/pybind11/tests/requirements.txt +20 -0
  420. pyfes-2025.5.1/third_party/pybind11/tests/standalone_enum_module.cpp +13 -0
  421. pyfes-2025.5.1/third_party/pybind11/tests/test_async.cpp +25 -0
  422. pyfes-2025.5.1/third_party/pybind11/tests/test_async.py +31 -0
  423. pyfes-2025.5.1/third_party/pybind11/tests/test_buffers.cpp +571 -0
  424. pyfes-2025.5.1/third_party/pybind11/tests/test_buffers.py +471 -0
  425. pyfes-2025.5.1/third_party/pybind11/tests/test_builtin_casters.cpp +393 -0
  426. pyfes-2025.5.1/third_party/pybind11/tests/test_builtin_casters.py +624 -0
  427. pyfes-2025.5.1/third_party/pybind11/tests/test_call_policies.cpp +113 -0
  428. pyfes-2025.5.1/third_party/pybind11/tests/test_call_policies.py +256 -0
  429. pyfes-2025.5.1/third_party/pybind11/tests/test_callbacks.cpp +302 -0
  430. pyfes-2025.5.1/third_party/pybind11/tests/test_callbacks.py +248 -0
  431. pyfes-2025.5.1/third_party/pybind11/tests/test_chrono.cpp +81 -0
  432. pyfes-2025.5.1/third_party/pybind11/tests/test_chrono.py +207 -0
  433. pyfes-2025.5.1/third_party/pybind11/tests/test_class.cpp +700 -0
  434. pyfes-2025.5.1/third_party/pybind11/tests/test_class.py +575 -0
  435. pyfes-2025.5.1/third_party/pybind11/tests/test_class_cross_module_use_after_one_module_dealloc.cpp +23 -0
  436. pyfes-2025.5.1/third_party/pybind11/tests/test_class_cross_module_use_after_one_module_dealloc.py +43 -0
  437. pyfes-2025.5.1/third_party/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.cpp +54 -0
  438. pyfes-2025.5.1/third_party/pybind11/tests/test_class_release_gil_before_calling_cpp_dtor.py +21 -0
  439. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_basic.cpp +248 -0
  440. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_basic.py +248 -0
  441. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_disowning.cpp +41 -0
  442. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_disowning.py +78 -0
  443. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_disowning_mi.cpp +85 -0
  444. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_disowning_mi.py +246 -0
  445. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_factory_constructors.cpp +156 -0
  446. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_factory_constructors.py +53 -0
  447. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_inheritance.cpp +90 -0
  448. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_inheritance.py +63 -0
  449. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_mi_thunks.cpp +230 -0
  450. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_mi_thunks.py +104 -0
  451. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_property.cpp +129 -0
  452. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_property.py +218 -0
  453. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_property_non_owning.cpp +65 -0
  454. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_property_non_owning.py +30 -0
  455. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_shared_ptr_copy_move.cpp +103 -0
  456. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_shared_ptr_copy_move.py +41 -0
  457. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_basic.cpp +57 -0
  458. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_basic.py +35 -0
  459. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_self_life_support.cpp +86 -0
  460. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_self_life_support.py +38 -0
  461. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_shared_from_this.cpp +137 -0
  462. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_shared_from_this.py +247 -0
  463. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.cpp +92 -0
  464. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_shared_ptr_cpp_arg.py +154 -0
  465. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_unique_ptr.cpp +63 -0
  466. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_trampoline_unique_ptr.py +31 -0
  467. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.cpp +30 -0
  468. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_unique_ptr_custom_deleter.py +8 -0
  469. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_unique_ptr_member.cpp +50 -0
  470. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_unique_ptr_member.py +26 -0
  471. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_virtual_py_cpp_mix.cpp +58 -0
  472. pyfes-2025.5.1/third_party/pybind11/tests/test_class_sh_virtual_py_cpp_mix.py +66 -0
  473. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/CMakeLists.txt +91 -0
  474. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/embed.cpp +23 -0
  475. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/installed_embed/CMakeLists.txt +19 -0
  476. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/installed_function/CMakeLists.txt +29 -0
  477. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/installed_target/CMakeLists.txt +37 -0
  478. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/main.cpp +6 -0
  479. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/subdirectory_embed/CMakeLists.txt +38 -0
  480. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/subdirectory_function/CMakeLists.txt +32 -0
  481. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/subdirectory_target/CMakeLists.txt +38 -0
  482. pyfes-2025.5.1/third_party/pybind11/tests/test_cmake_build/test.py +10 -0
  483. pyfes-2025.5.1/third_party/pybind11/tests/test_const_name.cpp +55 -0
  484. pyfes-2025.5.1/third_party/pybind11/tests/test_const_name.py +31 -0
  485. pyfes-2025.5.1/third_party/pybind11/tests/test_constants_and_functions.cpp +158 -0
  486. pyfes-2025.5.1/third_party/pybind11/tests/test_constants_and_functions.py +58 -0
  487. pyfes-2025.5.1/third_party/pybind11/tests/test_copy_move.cpp +546 -0
  488. pyfes-2025.5.1/third_party/pybind11/tests/test_copy_move.py +144 -0
  489. pyfes-2025.5.1/third_party/pybind11/tests/test_cpp_conduit.cpp +22 -0
  490. pyfes-2025.5.1/third_party/pybind11/tests/test_cpp_conduit.py +183 -0
  491. pyfes-2025.5.1/third_party/pybind11/tests/test_cpp_conduit_traveler_bindings.h +47 -0
  492. pyfes-2025.5.1/third_party/pybind11/tests/test_cpp_conduit_traveler_types.h +25 -0
  493. pyfes-2025.5.1/third_party/pybind11/tests/test_cross_module_rtti/CMakeLists.txt +70 -0
  494. pyfes-2025.5.1/third_party/pybind11/tests/test_cross_module_rtti/bindings.cpp +20 -0
  495. pyfes-2025.5.1/third_party/pybind11/tests/test_cross_module_rtti/catch.cpp +22 -0
  496. pyfes-2025.5.1/third_party/pybind11/tests/test_cross_module_rtti/lib.cpp +13 -0
  497. pyfes-2025.5.1/third_party/pybind11/tests/test_cross_module_rtti/lib.h +31 -0
  498. pyfes-2025.5.1/third_party/pybind11/tests/test_cross_module_rtti/test_cross_module_rtti.cpp +50 -0
  499. pyfes-2025.5.1/third_party/pybind11/tests/test_custom_type_casters.cpp +217 -0
  500. pyfes-2025.5.1/third_party/pybind11/tests/test_custom_type_casters.py +126 -0
  501. pyfes-2025.5.1/third_party/pybind11/tests/test_custom_type_setup.cpp +104 -0
  502. pyfes-2025.5.1/third_party/pybind11/tests/test_custom_type_setup.py +79 -0
  503. pyfes-2025.5.1/third_party/pybind11/tests/test_docs_advanced_cast_custom.cpp +69 -0
  504. pyfes-2025.5.1/third_party/pybind11/tests/test_docs_advanced_cast_custom.py +40 -0
  505. pyfes-2025.5.1/third_party/pybind11/tests/test_docstring_options.cpp +129 -0
  506. pyfes-2025.5.1/third_party/pybind11/tests/test_docstring_options.py +72 -0
  507. pyfes-2025.5.1/third_party/pybind11/tests/test_eigen_matrix.cpp +448 -0
  508. pyfes-2025.5.1/third_party/pybind11/tests/test_eigen_matrix.py +839 -0
  509. pyfes-2025.5.1/third_party/pybind11/tests/test_eigen_tensor.cpp +18 -0
  510. pyfes-2025.5.1/third_party/pybind11/tests/test_eigen_tensor.inl +338 -0
  511. pyfes-2025.5.1/third_party/pybind11/tests/test_eigen_tensor.py +316 -0
  512. pyfes-2025.5.1/third_party/pybind11/tests/test_enum.cpp +149 -0
  513. pyfes-2025.5.1/third_party/pybind11/tests/test_enum.py +344 -0
  514. pyfes-2025.5.1/third_party/pybind11/tests/test_eval.cpp +118 -0
  515. pyfes-2025.5.1/third_party/pybind11/tests/test_eval.py +52 -0
  516. pyfes-2025.5.1/third_party/pybind11/tests/test_eval_call.py +5 -0
  517. pyfes-2025.5.1/third_party/pybind11/tests/test_exceptions.cpp +427 -0
  518. pyfes-2025.5.1/third_party/pybind11/tests/test_exceptions.h +13 -0
  519. pyfes-2025.5.1/third_party/pybind11/tests/test_exceptions.py +439 -0
  520. pyfes-2025.5.1/third_party/pybind11/tests/test_factory_constructors.cpp +434 -0
  521. pyfes-2025.5.1/third_party/pybind11/tests/test_factory_constructors.py +531 -0
  522. pyfes-2025.5.1/third_party/pybind11/tests/test_gil_scoped.cpp +144 -0
  523. pyfes-2025.5.1/third_party/pybind11/tests/test_gil_scoped.py +294 -0
  524. pyfes-2025.5.1/third_party/pybind11/tests/test_iostream.cpp +162 -0
  525. pyfes-2025.5.1/third_party/pybind11/tests/test_iostream.py +329 -0
  526. pyfes-2025.5.1/third_party/pybind11/tests/test_kwargs_and_defaults.cpp +331 -0
  527. pyfes-2025.5.1/third_party/pybind11/tests/test_kwargs_and_defaults.py +473 -0
  528. pyfes-2025.5.1/third_party/pybind11/tests/test_local_bindings.cpp +131 -0
  529. pyfes-2025.5.1/third_party/pybind11/tests/test_local_bindings.py +291 -0
  530. pyfes-2025.5.1/third_party/pybind11/tests/test_methods_and_attributes.cpp +788 -0
  531. pyfes-2025.5.1/third_party/pybind11/tests/test_methods_and_attributes.py +715 -0
  532. pyfes-2025.5.1/third_party/pybind11/tests/test_modules.cpp +124 -0
  533. pyfes-2025.5.1/third_party/pybind11/tests/test_modules.py +146 -0
  534. pyfes-2025.5.1/third_party/pybind11/tests/test_multiple_inheritance.cpp +341 -0
  535. pyfes-2025.5.1/third_party/pybind11/tests/test_multiple_inheritance.py +500 -0
  536. pyfes-2025.5.1/third_party/pybind11/tests/test_multiple_interpreters.py +437 -0
  537. pyfes-2025.5.1/third_party/pybind11/tests/test_native_enum.cpp +262 -0
  538. pyfes-2025.5.1/third_party/pybind11/tests/test_native_enum.py +377 -0
  539. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_array.cpp +616 -0
  540. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_array.py +749 -0
  541. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_dtypes.cpp +745 -0
  542. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_dtypes.py +464 -0
  543. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_scalars.cpp +63 -0
  544. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_scalars.py +54 -0
  545. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_vectorize.cpp +137 -0
  546. pyfes-2025.5.1/third_party/pybind11/tests/test_numpy_vectorize.py +319 -0
  547. pyfes-2025.5.1/third_party/pybind11/tests/test_opaque_types.cpp +77 -0
  548. pyfes-2025.5.1/third_party/pybind11/tests/test_opaque_types.py +64 -0
  549. pyfes-2025.5.1/third_party/pybind11/tests/test_operator_overloading.cpp +281 -0
  550. pyfes-2025.5.1/third_party/pybind11/tests/test_operator_overloading.py +161 -0
  551. pyfes-2025.5.1/third_party/pybind11/tests/test_pickling.cpp +191 -0
  552. pyfes-2025.5.1/third_party/pybind11/tests/test_pickling.py +149 -0
  553. pyfes-2025.5.1/third_party/pybind11/tests/test_potentially_slicing_weak_ptr.cpp +170 -0
  554. pyfes-2025.5.1/third_party/pybind11/tests/test_potentially_slicing_weak_ptr.py +174 -0
  555. pyfes-2025.5.1/third_party/pybind11/tests/test_python_multiple_inheritance.cpp +45 -0
  556. pyfes-2025.5.1/third_party/pybind11/tests/test_python_multiple_inheritance.py +36 -0
  557. pyfes-2025.5.1/third_party/pybind11/tests/test_pytorch_shared_ptr_cast_regression.cpp +62 -0
  558. pyfes-2025.5.1/third_party/pybind11/tests/test_pytorch_shared_ptr_cast_regression.py +25 -0
  559. pyfes-2025.5.1/third_party/pybind11/tests/test_pytypes.cpp +1215 -0
  560. pyfes-2025.5.1/third_party/pybind11/tests/test_pytypes.py +1374 -0
  561. pyfes-2025.5.1/third_party/pybind11/tests/test_scoped_critical_section.cpp +274 -0
  562. pyfes-2025.5.1/third_party/pybind11/tests/test_scoped_critical_section.py +30 -0
  563. pyfes-2025.5.1/third_party/pybind11/tests/test_sequences_and_iterators.cpp +600 -0
  564. pyfes-2025.5.1/third_party/pybind11/tests/test_sequences_and_iterators.py +307 -0
  565. pyfes-2025.5.1/third_party/pybind11/tests/test_smart_ptr.cpp +627 -0
  566. pyfes-2025.5.1/third_party/pybind11/tests/test_smart_ptr.py +370 -0
  567. pyfes-2025.5.1/third_party/pybind11/tests/test_standalone_enum_module.py +18 -0
  568. pyfes-2025.5.1/third_party/pybind11/tests/test_stl.cpp +667 -0
  569. pyfes-2025.5.1/third_party/pybind11/tests/test_stl.py +735 -0
  570. pyfes-2025.5.1/third_party/pybind11/tests/test_stl_binders.cpp +275 -0
  571. pyfes-2025.5.1/third_party/pybind11/tests/test_stl_binders.py +414 -0
  572. pyfes-2025.5.1/third_party/pybind11/tests/test_tagbased_polymorphic.cpp +150 -0
  573. pyfes-2025.5.1/third_party/pybind11/tests/test_tagbased_polymorphic.py +30 -0
  574. pyfes-2025.5.1/third_party/pybind11/tests/test_thread.cpp +108 -0
  575. pyfes-2025.5.1/third_party/pybind11/tests/test_thread.py +80 -0
  576. pyfes-2025.5.1/third_party/pybind11/tests/test_type_caster_pyobject_ptr.cpp +168 -0
  577. pyfes-2025.5.1/third_party/pybind11/tests/test_type_caster_pyobject_ptr.py +125 -0
  578. pyfes-2025.5.1/third_party/pybind11/tests/test_type_caster_std_function_specializations.cpp +46 -0
  579. pyfes-2025.5.1/third_party/pybind11/tests/test_type_caster_std_function_specializations.py +15 -0
  580. pyfes-2025.5.1/third_party/pybind11/tests/test_union.cpp +22 -0
  581. pyfes-2025.5.1/third_party/pybind11/tests/test_union.py +10 -0
  582. pyfes-2025.5.1/third_party/pybind11/tests/test_unnamed_namespace_a.cpp +37 -0
  583. pyfes-2025.5.1/third_party/pybind11/tests/test_unnamed_namespace_a.py +33 -0
  584. pyfes-2025.5.1/third_party/pybind11/tests/test_unnamed_namespace_b.cpp +13 -0
  585. pyfes-2025.5.1/third_party/pybind11/tests/test_unnamed_namespace_b.py +7 -0
  586. pyfes-2025.5.1/third_party/pybind11/tests/test_vector_unique_ptr_member.cpp +54 -0
  587. pyfes-2025.5.1/third_party/pybind11/tests/test_vector_unique_ptr_member.py +16 -0
  588. pyfes-2025.5.1/third_party/pybind11/tests/test_virtual_functions.cpp +591 -0
  589. pyfes-2025.5.1/third_party/pybind11/tests/test_virtual_functions.py +468 -0
  590. pyfes-2025.5.1/third_party/pybind11/tests/test_warnings.cpp +46 -0
  591. pyfes-2025.5.1/third_party/pybind11/tests/test_warnings.py +68 -0
  592. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/CMakeLists.txt +64 -0
  593. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/catch.cpp +175 -0
  594. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/catch_skip.h +21 -0
  595. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/external_module.cpp +39 -0
  596. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/test_args_convert_vector.cpp +80 -0
  597. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/test_argument_vector.cpp +94 -0
  598. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/test_interpreter.cpp +511 -0
  599. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/test_interpreter.py +16 -0
  600. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/test_subinterpreter.cpp +579 -0
  601. pyfes-2025.5.1/third_party/pybind11/tests/test_with_catch/test_trampoline.py +18 -0
  602. pyfes-2025.5.1/third_party/pybind11/tests/valgrind-numpy-scipy.supp +140 -0
  603. pyfes-2025.5.1/third_party/pybind11/tests/valgrind-python.supp +117 -0
  604. pyfes-2025.5.1/third_party/pybind11/tools/FindCatch.cmake +74 -0
  605. pyfes-2025.5.1/third_party/pybind11/tools/FindEigen3.cmake +86 -0
  606. pyfes-2025.5.1/third_party/pybind11/tools/FindPythonLibsNew.cmake +320 -0
  607. pyfes-2025.5.1/third_party/pybind11/tools/JoinPaths.cmake +23 -0
  608. pyfes-2025.5.1/third_party/pybind11/tools/check-style.sh +44 -0
  609. pyfes-2025.5.1/third_party/pybind11/tools/cmake_uninstall.cmake.in +23 -0
  610. pyfes-2025.5.1/third_party/pybind11/tools/codespell_ignore_lines_from_errors.py +40 -0
  611. pyfes-2025.5.1/third_party/pybind11/tools/libsize.py +38 -0
  612. pyfes-2025.5.1/third_party/pybind11/tools/make_changelog.py +121 -0
  613. pyfes-2025.5.1/third_party/pybind11/tools/make_global.py +33 -0
  614. pyfes-2025.5.1/third_party/pybind11/tools/pybind11.pc.in +7 -0
  615. pyfes-2025.5.1/third_party/pybind11/tools/pybind11Common.cmake +458 -0
  616. pyfes-2025.5.1/third_party/pybind11/tools/pybind11Config.cmake.in +240 -0
  617. pyfes-2025.5.1/third_party/pybind11/tools/pybind11GuessPythonExtSuffix.cmake +94 -0
  618. pyfes-2025.5.1/third_party/pybind11/tools/pybind11NewTools.cmake +339 -0
  619. pyfes-2025.5.1/third_party/pybind11/tools/pybind11Tools.cmake +217 -0
  620. pyfes-2025.5.1/third_party/pybind11/tools/test-pybind11GuessPythonExtSuffix.cmake +185 -0
@@ -0,0 +1,171 @@
1
+ ---
2
+ Language: Cpp
3
+ # BasedOnStyle: Google
4
+ AccessModifierOffset: -1
5
+ AlignAfterOpenBracket: Align
6
+ AlignConsecutiveMacros: false
7
+ AlignConsecutiveAssignments: false
8
+ AlignConsecutiveDeclarations: false
9
+ AlignEscapedNewlines: Left
10
+ AlignOperands: true
11
+ AlignTrailingComments: true
12
+ AllowAllArgumentsOnNextLine: true
13
+ AllowAllConstructorInitializersOnNextLine: true
14
+ AllowAllParametersOfDeclarationOnNextLine: true
15
+ AllowShortBlocksOnASingleLine: Never
16
+ AllowShortCaseLabelsOnASingleLine: false
17
+ AllowShortFunctionsOnASingleLine: All
18
+ AllowShortLambdasOnASingleLine: All
19
+ AllowShortIfStatementsOnASingleLine: WithoutElse
20
+ AllowShortLoopsOnASingleLine: true
21
+ AlwaysBreakAfterDefinitionReturnType: None
22
+ AlwaysBreakAfterReturnType: None
23
+ AlwaysBreakBeforeMultilineStrings: true
24
+ AlwaysBreakTemplateDeclarations: Yes
25
+ BinPackArguments: true
26
+ BinPackParameters: true
27
+ BraceWrapping:
28
+ AfterCaseLabel: false
29
+ AfterClass: false
30
+ AfterControlStatement: false
31
+ AfterEnum: false
32
+ AfterFunction: false
33
+ AfterNamespace: false
34
+ AfterObjCDeclaration: false
35
+ AfterStruct: false
36
+ AfterUnion: false
37
+ AfterExternBlock: false
38
+ BeforeCatch: false
39
+ BeforeElse: false
40
+ IndentBraces: false
41
+ SplitEmptyFunction: true
42
+ SplitEmptyRecord: true
43
+ SplitEmptyNamespace: true
44
+ BreakBeforeBinaryOperators: None
45
+ BreakBeforeBraces: Attach
46
+ BreakBeforeInheritanceComma: false
47
+ BreakInheritanceList: BeforeColon
48
+ BreakBeforeTernaryOperators: true
49
+ BreakConstructorInitializersBeforeComma: false
50
+ BreakConstructorInitializers: BeforeColon
51
+ BreakAfterJavaFieldAnnotations: false
52
+ BreakStringLiterals: true
53
+ ColumnLimit: 80
54
+ CommentPragmas: '^ IWYU pragma:'
55
+ CompactNamespaces: false
56
+ ConstructorInitializerAllOnOneLineOrOnePerLine: true
57
+ ConstructorInitializerIndentWidth: 4
58
+ ContinuationIndentWidth: 4
59
+ Cpp11BracedListStyle: true
60
+ DeriveLineEnding: true
61
+ DerivePointerAlignment: true
62
+ DisableFormat: false
63
+ ExperimentalAutoDetectBinPacking: false
64
+ FixNamespaceComments: true
65
+ ForEachMacros:
66
+ - foreach
67
+ - Q_FOREACH
68
+ - BOOST_FOREACH
69
+ IncludeBlocks: Regroup
70
+ IncludeCategories:
71
+ - Regex: '^<ext/.*\.h>'
72
+ Priority: 2
73
+ SortPriority: 0
74
+ - Regex: '^<.*\.h>'
75
+ Priority: 1
76
+ SortPriority: 0
77
+ - Regex: '^<.*'
78
+ Priority: 2
79
+ SortPriority: 0
80
+ - Regex: '.*'
81
+ Priority: 3
82
+ SortPriority: 0
83
+ IncludeIsMainRegex: '([-_](test|unittest))?$'
84
+ IncludeIsMainSourceRegex: ''
85
+ IndentCaseLabels: true
86
+ IndentGotoLabels: true
87
+ IndentPPDirectives: None
88
+ IndentWidth: 2
89
+ IndentWrappedFunctionNames: false
90
+ JavaScriptQuotes: Leave
91
+ JavaScriptWrapImports: true
92
+ KeepEmptyLinesAtTheStartOfBlocks: false
93
+ MacroBlockBegin: ''
94
+ MacroBlockEnd: ''
95
+ MaxEmptyLinesToKeep: 1
96
+ NamespaceIndentation: None
97
+ ObjCBinPackProtocolList: Never
98
+ ObjCBlockIndentWidth: 2
99
+ ObjCSpaceAfterProperty: false
100
+ ObjCSpaceBeforeProtocolList: true
101
+ PenaltyBreakAssignment: 2
102
+ PenaltyBreakBeforeFirstCallParameter: 1
103
+ PenaltyBreakComment: 300
104
+ PenaltyBreakFirstLessLess: 120
105
+ PenaltyBreakString: 1000
106
+ PenaltyBreakTemplateDeclaration: 10
107
+ PenaltyExcessCharacter: 1000000
108
+ PenaltyReturnTypeOnItsOwnLine: 200
109
+ PointerAlignment: Left
110
+ RawStringFormats:
111
+ - Language: Cpp
112
+ Delimiters:
113
+ - cc
114
+ - CC
115
+ - cpp
116
+ - Cpp
117
+ - CPP
118
+ - 'c++'
119
+ - 'C++'
120
+ CanonicalDelimiter: ''
121
+ BasedOnStyle: google
122
+ - Language: TextProto
123
+ Delimiters:
124
+ - pb
125
+ - PB
126
+ - proto
127
+ - PROTO
128
+ EnclosingFunctions:
129
+ - EqualsProto
130
+ - EquivToProto
131
+ - PARSE_PARTIAL_TEXT_PROTO
132
+ - PARSE_TEST_PROTO
133
+ - PARSE_TEXT_PROTO
134
+ - ParseTextOrDie
135
+ - ParseTextProtoOrDie
136
+ CanonicalDelimiter: ''
137
+ BasedOnStyle: google
138
+ ReflowComments: true
139
+ SortIncludes: true
140
+ SortUsingDeclarations: true
141
+ SpaceAfterCStyleCast: false
142
+ SpaceAfterLogicalNot: false
143
+ SpaceAfterTemplateKeyword: true
144
+ SpaceBeforeAssignmentOperators: true
145
+ SpaceBeforeCpp11BracedList: false
146
+ SpaceBeforeCtorInitializerColon: true
147
+ SpaceBeforeInheritanceColon: true
148
+ SpaceBeforeParens: ControlStatements
149
+ SpaceBeforeRangeBasedForLoopColon: true
150
+ SpaceInEmptyBlock: false
151
+ SpaceInEmptyParentheses: false
152
+ SpacesBeforeTrailingComments: 2
153
+ SpacesInAngles: false
154
+ SpacesInConditionalStatement: false
155
+ SpacesInContainerLiterals: true
156
+ SpacesInCStyleCastParentheses: false
157
+ SpacesInParentheses: false
158
+ SpacesInSquareBrackets: false
159
+ SpaceBeforeSquareBrackets: false
160
+ Standard: Auto
161
+ StatementMacros:
162
+ - Q_UNUSED
163
+ - QT_REQUIRE_VERSION
164
+ TabWidth: 8
165
+ UseCRLF: false
166
+ UseTab: Never
167
+ ---
168
+ Language: Json
169
+ BasedOnStyle: llvm
170
+ IndentWidth: 4
171
+ ...
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ A short code example that reproduces the problem/missing feature. It should be
15
+ self-contained, i.e., possible to run as-is via `python myproblem.py`
16
+
17
+ ```python
18
+ import pyfes
19
+ << your code here >>
20
+ ```
21
+ **Expected behavior**
22
+ A clear and concise description of what you expected to happen.
23
+
24
+ **pyfes/Numpy/Python version information**
25
+ Output from
26
+ ```python
27
+ import sys, numpy, pyfes.version
28
+ print(pyfes.__version__)
29
+ print(numpy.__version__)
30
+ print(sys.version)
31
+ ```
32
+
33
+ **Additional context**
34
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: ''
5
+ labels: ''
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -0,0 +1,114 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: "*"
6
+ pull_request:
7
+ branches: main
8
+
9
+ permissions:
10
+ contents: read
11
+ pages: write
12
+ id-token: write
13
+
14
+ concurrency:
15
+ group: "pages"
16
+ cancel-in-progress: false
17
+
18
+ jobs:
19
+ linux:
20
+ name: ${{ matrix.python-version }}-posix
21
+ runs-on: ubuntu-latest
22
+ timeout-minutes: 15
23
+ strategy:
24
+ fail-fast: false
25
+ max-parallel: 5
26
+ matrix:
27
+ python-version: ['3.11']
28
+ steps:
29
+ - name: Checkout
30
+ uses: actions/checkout@v4
31
+ with:
32
+ submodules: recursive
33
+ lfs: true
34
+ fetch-depth: 0
35
+ fetch-tags: true
36
+
37
+ - name: Setup Miniconda
38
+ uses: mamba-org/setup-micromamba@v1
39
+ with:
40
+ cache-downloads: true
41
+ condarc: |
42
+ channels:
43
+ - conda-forge
44
+ create-args: |
45
+ python=${{ matrix.python-version }}
46
+ environment-name: FES
47
+ environment-file: conda/environment.yml
48
+
49
+ - name: Compile and Testing Python Package
50
+ shell: bash -l {0}
51
+ run: |
52
+ python setup.py build
53
+ pytest -q -ra
54
+
55
+ - name: Generate Documentation
56
+ shell: bash -l {0}
57
+ run: |
58
+ sphinx-build -b html docs/source docs/build
59
+
60
+ - name: Setup Pages
61
+ uses: actions/configure-pages@v5
62
+
63
+ - name: Upload artifact
64
+ uses: actions/upload-pages-artifact@v3
65
+ with:
66
+ path: docs/build
67
+
68
+ - name: Deploy to GitHub Pages
69
+ id: deployment
70
+ uses: actions/deploy-pages@v4
71
+
72
+ - name: Build C++ Library and Testing
73
+ shell: bash -l {0}
74
+ run: |
75
+ mkdir build
76
+ cd build
77
+ cmake .. -DFES_ENABLE_TEST=ON
78
+ make -j 2
79
+ ctest
80
+
81
+ win:
82
+ name: win
83
+ runs-on: windows-2022
84
+
85
+ steps:
86
+ - name: Checkout
87
+ uses: actions/checkout@v4
88
+ with:
89
+ submodules: recursive
90
+ lfs: true
91
+
92
+ - name: Setup Miniconda
93
+ uses: mamba-org/setup-micromamba@v1
94
+ with:
95
+ cache-downloads: true
96
+ condarc: |
97
+ channels:
98
+ - conda-forge
99
+ create-args: |
100
+ python=3.11
101
+ environment-name: FES
102
+ environment-file: conda/environment.yml
103
+
104
+ # - name: Test pip install from GitHub
105
+ # shell: bash -l {0}
106
+ # run: |
107
+ # pip install --force-reinstall "git+https://github.com/CNES/aviso-fes.git"
108
+
109
+ - name: Building Testing Python Package
110
+ shell: bash -l {0}
111
+ run: |
112
+ python setup.py build_ext --generator="Visual Studio 17 2022"
113
+ python setup.py build
114
+ pytest -q -ra
@@ -0,0 +1,15 @@
1
+ name: pre-commit
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+
7
+ jobs:
8
+ pre-commit:
9
+ runs-on: ubuntu-latest
10
+ steps:
11
+ - uses: actions/checkout@v4
12
+ - uses: actions/setup-python@v5
13
+ with:
14
+ python-version: '3.11'
15
+ - uses: pre-commit/action@v3.0.1
@@ -0,0 +1,84 @@
1
+ name: Publish sdist to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - '[0-9]*'
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ build_sdist:
11
+ name: Build source distribution
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ with:
16
+ submodules: recursive
17
+ fetch-depth: 0
18
+ fetch-tags: true
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.x"
24
+
25
+ - name: Build sdist
26
+ run: pipx run build --sdist
27
+
28
+ - uses: actions/upload-artifact@v4
29
+ with:
30
+ name: sdist
31
+ path: dist/*.tar.gz
32
+
33
+ detect-target:
34
+ name: Detect publish target
35
+ needs: build_sdist
36
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
37
+ runs-on: ubuntu-latest
38
+ outputs:
39
+ prerelease: ${{ steps.check.outputs.prerelease }}
40
+ steps:
41
+ - id: check
42
+ shell: bash
43
+ run: |
44
+ if [[ "${GITHUB_REF_NAME}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
45
+ echo "prerelease=false" >> "$GITHUB_OUTPUT"
46
+ else
47
+ echo "prerelease=true" >> "$GITHUB_OUTPUT"
48
+ fi
49
+
50
+ publish-testpypi:
51
+ name: Publish sdist to TestPyPI
52
+ needs: detect-target
53
+ if: needs.detect-target.outputs.prerelease == 'true'
54
+ runs-on: ubuntu-latest
55
+ environment:
56
+ name: testpypi
57
+ url: https://test.pypi.org/p/pyfes
58
+ permissions:
59
+ id-token: write
60
+ steps:
61
+ - uses: actions/download-artifact@v4
62
+ with:
63
+ name: sdist
64
+ path: dist
65
+ - uses: pypa/gh-action-pypi-publish@release/v1
66
+ with:
67
+ repository-url: https://test.pypi.org/legacy/
68
+
69
+ publish-pypi:
70
+ name: Publish sdist to PyPI
71
+ needs: detect-target
72
+ if: needs.detect-target.outputs.prerelease == 'false'
73
+ runs-on: ubuntu-latest
74
+ environment:
75
+ name: pypi
76
+ url: https://pypi.org/p/pyfes
77
+ permissions:
78
+ id-token: write # OIDC Trusted Publishing
79
+ steps:
80
+ - uses: actions/download-artifact@v4
81
+ with:
82
+ name: sdist
83
+ path: dist
84
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,129 @@
1
+ name: Build and publish wheels
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - '[0-9]*'
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ build_wheels:
11
+ name: Wheels on ${{ matrix.os }}
12
+ runs-on: ${{ matrix.os }}
13
+ strategy:
14
+ fail-fast: false
15
+ matrix:
16
+ include:
17
+ - os: ubuntu-latest # Linux x86_64 (manylinux_2_28)
18
+ - os: ubuntu-24.04-arm # Linux aarch64 (manylinux_2_28)
19
+ - os: macos-latest # macOS arm64
20
+ cibw_archs_macos: "arm64"
21
+ - os: windows-2025 # Windows x86_64
22
+
23
+ steps:
24
+ - uses: actions/checkout@v4
25
+ with:
26
+ submodules: recursive
27
+ fetch-depth: 0
28
+ fetch-tags: true
29
+
30
+ # Boost (≥ 1.79) and Eigen (≥ 3.4) are required on all platforms.
31
+ # Linux: handled inside the manylinux container via before-all (pyproject.toml).
32
+ # macOS: handled via brew in before-all (pyproject.toml).
33
+ # Windows: micromamba is set up here so the conda prefix is available
34
+ # before cibuildwheel runs.
35
+ - name: Install Boost and Eigen headers (Windows)
36
+ if: runner.os == 'Windows'
37
+ uses: mamba-org/setup-micromamba@v1
38
+ with:
39
+ cache-downloads: true
40
+ condarc: |
41
+ channels:
42
+ - conda-forge
43
+ create-args: "libboost-headers eigen"
44
+ environment-name: build-deps
45
+ generate-run-shell: false
46
+ init-shell: none
47
+
48
+ - name: Export build prefix to GITHUB_ENV (Windows)
49
+ if: runner.os == 'Windows'
50
+ shell: bash
51
+ run: |
52
+ # Use forward slashes: cibuildwheel runs CIBW_ENVIRONMENT_WINDOWS
53
+ # through shlex, which would eat Windows backslashes.
54
+ prefix="${MAMBA_ROOT_PREFIX//\\//}/envs/build-deps/Library"
55
+ echo "BUILD_PREFIX=${prefix}" >> "$GITHUB_ENV"
56
+
57
+ - name: Build wheels
58
+ uses: pypa/cibuildwheel@v3.0
59
+ env:
60
+ # Windows: point CMake at the conda-forge Boost and Eigen headers.
61
+ CIBW_ENVIRONMENT_WINDOWS: >-
62
+ CMAKE_PREFIX_PATH="${{ env.BUILD_PREFIX }}"
63
+ # macOS: arm64 only (free Intel runners are deprecated).
64
+ CIBW_ARCHS_MACOS: ${{ matrix.cibw_archs_macos }}
65
+ # Sanity-check every built wheel imports and exposes its version.
66
+ CIBW_TEST_COMMAND: >-
67
+ python -c "import pyfes; print(pyfes.__version__)"
68
+
69
+ - uses: actions/upload-artifact@v4
70
+ with:
71
+ name: cibw-wheels-${{ matrix.os }}
72
+ path: ./wheelhouse/*.whl
73
+
74
+ # Pre-release tags (e.g. 2026.4.0rc1, 2026.4.0.dev1) go to TestPyPI;
75
+ # plain stable tags (X.Y.Z) go to real PyPI.
76
+ detect-target:
77
+ name: Detect publish target
78
+ needs: build_wheels
79
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
80
+ runs-on: ubuntu-latest
81
+ outputs:
82
+ prerelease: ${{ steps.check.outputs.prerelease }}
83
+ steps:
84
+ - id: check
85
+ shell: bash
86
+ run: |
87
+ if [[ "${GITHUB_REF_NAME}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
88
+ echo "prerelease=false" >> "$GITHUB_OUTPUT"
89
+ else
90
+ echo "prerelease=true" >> "$GITHUB_OUTPUT"
91
+ fi
92
+
93
+ publish-testpypi:
94
+ name: Publish wheels to TestPyPI
95
+ needs: detect-target
96
+ if: needs.detect-target.outputs.prerelease == 'true'
97
+ runs-on: ubuntu-latest
98
+ environment:
99
+ name: testpypi
100
+ url: https://test.pypi.org/p/pyfes
101
+ permissions:
102
+ id-token: write
103
+ steps:
104
+ - uses: actions/download-artifact@v4
105
+ with:
106
+ pattern: cibw-wheels-*
107
+ path: dist
108
+ merge-multiple: true
109
+ - uses: pypa/gh-action-pypi-publish@release/v1
110
+ with:
111
+ repository-url: https://test.pypi.org/legacy/
112
+
113
+ publish-pypi:
114
+ name: Publish wheels to PyPI
115
+ needs: detect-target
116
+ if: needs.detect-target.outputs.prerelease == 'false'
117
+ runs-on: ubuntu-latest
118
+ environment:
119
+ name: pypi
120
+ url: https://pypi.org/p/pyfes
121
+ permissions:
122
+ id-token: write # required for OIDC Trusted Publishing
123
+ steps:
124
+ - uses: actions/download-artifact@v4
125
+ with:
126
+ pattern: cibw-wheels-*
127
+ path: dist
128
+ merge-multiple: true
129
+ - uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,123 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ *.egg-info/
24
+ .installed.cfg
25
+ *.egg
26
+ MANIFEST
27
+
28
+ # PyInstaller
29
+ # Usually these files are written by a python script from a template
30
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
31
+ *.manifest
32
+ *.spec
33
+
34
+ # Installer logs
35
+ pip-log.txt
36
+ pip-delete-this-directory.txt
37
+
38
+ # Unit test / coverage reports
39
+ htmlcov/
40
+ junit/
41
+ .tox/
42
+ .coverage
43
+ .coverage.*
44
+ .cache
45
+ nosetests.xml
46
+ coverage.xml
47
+ *.cover
48
+ .hypothesis/
49
+ .pytest_cache/
50
+
51
+ # Translations
52
+ *.mo
53
+ *.pot
54
+
55
+ # Django stuff:
56
+ *.log
57
+ local_settings.py
58
+ db.sqlite3
59
+
60
+ # Flask stuff:
61
+ instance/
62
+ .webassets-cache
63
+
64
+ # Scrapy stuff:
65
+ .scrapy
66
+
67
+ # Sphinx documentation
68
+ docs/source/_build/
69
+ docs/source/generated/
70
+
71
+ # PyBuilder
72
+ target/
73
+
74
+ # Jupyter Notebook
75
+ .ipynb_checkpoints
76
+
77
+ # pyenv
78
+ .python-version
79
+
80
+ # celery beat schedule file
81
+ celerybeat-schedule
82
+
83
+ # SageMath parsed files
84
+ *.sage.py
85
+
86
+ # Environments
87
+ .env
88
+ .venv
89
+ env/
90
+ venv/
91
+ ENV/
92
+ env.bak/
93
+ venv.bak/
94
+
95
+ # Spyder project settings
96
+ .spyderproject
97
+ .spyproject
98
+
99
+ # Rope project settings
100
+ .ropeproject
101
+
102
+ # mkdocs documentation
103
+ /site
104
+
105
+ # mypy
106
+ .mypy_cache/
107
+
108
+ # VSCode stuff:
109
+ .vscode/
110
+
111
+ # Generated files
112
+ src/pyfes/version.py
113
+ include/fes/version.hpp
114
+ docs/source/auto_examples
115
+ docs/source/sg_execution_times.rst
116
+
117
+ # macOS creates .DS_Store files in directories to store custom attributes of a
118
+ # folder. These files are not needed in the repository and can be ignored.
119
+ # More info: https://support.apple.com/en-us/HT201236
120
+ .DS_Store
121
+
122
+ # Test dataset directory downloaded from osf.io
123
+ tests/python/dataset
@@ -0,0 +1,3 @@
1
+ [submodule "third_party/pybind11"]
2
+ path = third_party/pybind11
3
+ url = https://github.com/pybind/pybind11.git