nwchemex-pluginplay 1.0.63__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 (353) hide show
  1. nwchemex_pluginplay-1.0.63/.clang-format +110 -0
  2. nwchemex_pluginplay-1.0.63/.github/workflows/merge.yaml +79 -0
  3. nwchemex_pluginplay-1.0.63/.github/workflows/nightly.yaml +33 -0
  4. nwchemex_pluginplay-1.0.63/.github/workflows/pull_request.yaml +38 -0
  5. nwchemex_pluginplay-1.0.63/.gitignore +59 -0
  6. nwchemex_pluginplay-1.0.63/.licenserc.yaml +29 -0
  7. nwchemex_pluginplay-1.0.63/CMakeLists.txt +162 -0
  8. nwchemex_pluginplay-1.0.63/LICENSE +177 -0
  9. nwchemex_pluginplay-1.0.63/PKG-INFO +14 -0
  10. nwchemex_pluginplay-1.0.63/README.md +72 -0
  11. nwchemex_pluginplay-1.0.63/cmake/get_nwx_cmake.cmake +79 -0
  12. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/any/any.hpp +105 -0
  13. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/any/any_field.hpp +345 -0
  14. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/any/detail_/any_field_base.hpp +362 -0
  15. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/any/detail_/any_field_base.ipp +147 -0
  16. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/any/detail_/any_field_wrapper.hpp +158 -0
  17. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/any/detail_/any_field_wrapper.ipp +116 -0
  18. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/any/detail_/any_field_wrapper_traits.hpp +66 -0
  19. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/cache/cache.hpp +20 -0
  20. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/cache/module_cache.hpp +194 -0
  21. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/cache/module_manager_cache.hpp +196 -0
  22. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/cache/user_cache.hpp +202 -0
  23. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/cache/user_cache.ipp +69 -0
  24. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/config/config.hpp +51 -0
  25. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/detail_/field_tuple_traits.hpp +74 -0
  26. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/bounds_checking/bounds_checking.hpp +37 -0
  27. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/bounds_checking/compare_to.hpp +148 -0
  28. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/bounds_checking/in_range.hpp +84 -0
  29. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/bounds_checking/print_bounds.hpp +166 -0
  30. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/bounds_checking/type_check.hpp +79 -0
  31. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/fields.hpp +29 -0
  32. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/module_input.hpp +561 -0
  33. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/module_input.ipp +169 -0
  34. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/module_result.hpp +297 -0
  35. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/fields/module_result.ipp +74 -0
  36. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module/facade_module.hpp +152 -0
  37. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module/lambda_module.hpp +240 -0
  38. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module/macros.hpp +76 -0
  39. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module/module.hpp +23 -0
  40. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module/module_base.hpp +699 -0
  41. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module/module_class.hpp +852 -0
  42. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module_manager/module_manager.hpp +18 -0
  43. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/module_manager/module_manager_class.hpp +301 -0
  44. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/plugin/plugin.hpp +33 -0
  45. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/pluginplay.hpp +38 -0
  46. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/printing/document_module.hpp +25 -0
  47. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/printing/document_modules.hpp +41 -0
  48. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/printing/mermaid.hpp +28 -0
  49. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/printing/printing.hpp +20 -0
  50. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/property_type/detail_/static_assert_convertible_verbose.hpp +61 -0
  51. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/property_type/field_tuple.hpp +459 -0
  52. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/property_type/macros.hpp +182 -0
  53. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/property_type/property_type.hpp +207 -0
  54. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/property_type/property_type_fwd.hpp +31 -0
  55. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/property_type/property_type_impl.hpp +142 -0
  56. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/property_type/python_only_property_type.hpp +139 -0
  57. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/python/py_type_info.hpp +212 -0
  58. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/python/py_wrap_inputs.hpp +86 -0
  59. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/python/py_wrap_results.hpp +85 -0
  60. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/python/python.hpp +27 -0
  61. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/python/python_wrapper.hpp +387 -0
  62. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/submodule_request.hpp +507 -0
  63. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/type_traits/base_property_type.hpp +66 -0
  64. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/type_traits/is_property_type.hpp +56 -0
  65. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/type_traits/type_traits.hpp +19 -0
  66. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/types.hpp +96 -0
  67. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/utility/uuid.hpp +35 -0
  68. nwchemex_pluginplay-1.0.63/cxx/include/pluginplay/utility.hpp +137 -0
  69. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/any/any_field.cpp +89 -0
  70. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/any/export_any.hpp +37 -0
  71. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/any/export_any_field.cpp +33 -0
  72. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/database_api.hpp +364 -0
  73. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/database_factory.cpp +125 -0
  74. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/database_factory.hpp +193 -0
  75. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/db_value.hpp +144 -0
  76. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/key_injector.hpp +138 -0
  77. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/key_injector.ipp +76 -0
  78. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/key_proxy_mapper.hpp +113 -0
  79. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/key_proxy_mapper.ipp +78 -0
  80. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/make_any.hpp +42 -0
  81. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/native.hpp +137 -0
  82. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/native.ipp +73 -0
  83. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/rocksdb/detail_/rocksdb_pimpl.hpp +242 -0
  84. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/rocksdb/detail_/rocksdb_pimpl.ipp +166 -0
  85. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/rocksdb/detail_/rocksdb_pimpl_stub.hpp +96 -0
  86. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/rocksdb/rocksdb.cpp +95 -0
  87. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/rocksdb/rocksdb.hpp +154 -0
  88. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/serialized.hpp +126 -0
  89. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/serialized.ipp +82 -0
  90. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/transposer.hpp +130 -0
  91. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/transposer.ipp +76 -0
  92. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/type_eraser.hpp +133 -0
  93. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/type_eraser.ipp +65 -0
  94. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/value_proxy_mapper.hpp +115 -0
  95. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/database/value_proxy_mapper.ipp +72 -0
  96. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/export_cache.hpp +29 -0
  97. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/export_module_manager_cache.cpp +29 -0
  98. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/module_cache.cpp +67 -0
  99. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/module_cache_pimpl.hpp +47 -0
  100. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/module_manager_cache.cpp +117 -0
  101. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/proxy_map_maker.hpp +196 -0
  102. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/proxy_map_maker.ipp +72 -0
  103. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/uuid_mapper.hpp +134 -0
  104. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/cache/uuid_mapper.ipp +63 -0
  105. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/config/config.cpp +26 -0
  106. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/config/config_impl.hpp +35 -0
  107. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/detail_/submodule_request_pimpl.hpp +413 -0
  108. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/detail_/submodule_request_pimpl.ipp +118 -0
  109. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/export_pluginplay.cpp +39 -0
  110. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/export_pluginplay.hpp +46 -0
  111. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/export_submodule_request.cpp +72 -0
  112. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/detail_/module_input_pimpl.hpp +400 -0
  113. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/detail_/module_input_pimpl.ipp +117 -0
  114. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/detail_/module_result_pimpl.hpp +271 -0
  115. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/export_fields.hpp +30 -0
  116. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/export_module_input.cpp +68 -0
  117. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/export_module_result.cpp +44 -0
  118. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/module_input.cpp +113 -0
  119. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/fields/module_result.cpp +99 -0
  120. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module/detail_/module_pimpl.hpp +678 -0
  121. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module/detail_/module_pimpl.ipp +270 -0
  122. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module/export_module.hpp +31 -0
  123. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module/export_module_base.cpp +94 -0
  124. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module/export_module_class.cpp +132 -0
  125. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module/module.cpp +196 -0
  126. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module/py_module_base.hpp +43 -0
  127. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module_manager/detail_/module_manager_pimpl.hpp +219 -0
  128. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module_manager/detail_/module_manager_pimpl.ipp +132 -0
  129. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module_manager/export_module_manager.hpp +28 -0
  130. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module_manager/export_module_manager_class.cpp +81 -0
  131. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/module_manager/module_manager_class.cpp +99 -0
  132. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/README.md +27 -0
  133. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/fort_custom_styles.cpp +44 -0
  134. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/fort_custom_styles.hpp +34 -0
  135. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/print_inputs.cpp +144 -0
  136. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/print_inputs.hpp +106 -0
  137. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/print_results.cpp +84 -0
  138. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/print_results.hpp +69 -0
  139. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/print_submodules.cpp +76 -0
  140. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/print_submodules.hpp +77 -0
  141. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/rest_printer.cpp +59 -0
  142. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/detail_/rest_printer.hpp +131 -0
  143. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/document_module.cpp +83 -0
  144. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/document_modules.cpp +69 -0
  145. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/export_document_modules.cpp +29 -0
  146. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/export_printing.hpp +28 -0
  147. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/helpers.cpp +48 -0
  148. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/helpers.hpp +52 -0
  149. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/printing/mermaid.cpp +76 -0
  150. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/property_type/python_only_property_type.cpp +53 -0
  151. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/python/export_py_type_info.cpp +36 -0
  152. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/python/export_python.hpp +32 -0
  153. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/python/export_python_only_property_type.cpp +66 -0
  154. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/python/export_python_wrapper.cpp +30 -0
  155. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/submodule_request.cpp +105 -0
  156. nwchemex_pluginplay-1.0.63/cxx/src/pluginplay/utility/uuid.cpp +28 -0
  157. nwchemex_pluginplay-1.0.63/docs/Makefile +20 -0
  158. nwchemex_pluginplay-1.0.63/docs/README.md +77 -0
  159. nwchemex_pluginplay-1.0.63/docs/requirements.txt +4 -0
  160. nwchemex_pluginplay-1.0.63/docs/source/assets/full_logo.png +0 -0
  161. nwchemex_pluginplay-1.0.63/docs/source/assets/logo_small.png +0 -0
  162. nwchemex_pluginplay-1.0.63/docs/source/background/alternatives.rst +388 -0
  163. nwchemex_pluginplay-1.0.63/docs/source/background/architecture.rst +167 -0
  164. nwchemex_pluginplay-1.0.63/docs/source/background/assets/architecture.png +0 -0
  165. nwchemex_pluginplay-1.0.63/docs/source/background/assets/architecture_simple.png +0 -0
  166. nwchemex_pluginplay-1.0.63/docs/source/background/assets/modules2program.png +0 -0
  167. nwchemex_pluginplay-1.0.63/docs/source/background/index.rst +35 -0
  168. nwchemex_pluginplay-1.0.63/docs/source/background/overview.rst +124 -0
  169. nwchemex_pluginplay-1.0.63/docs/source/background/scientific_software.rst +204 -0
  170. nwchemex_pluginplay-1.0.63/docs/source/background/statement_of_need.rst +87 -0
  171. nwchemex_pluginplay-1.0.63/docs/source/background/terminology.rst +186 -0
  172. nwchemex_pluginplay-1.0.63/docs/source/bibliography/background.bib +388 -0
  173. nwchemex_pluginplay-1.0.63/docs/source/bibliography/bibliography.rst +19 -0
  174. nwchemex_pluginplay-1.0.63/docs/source/bibliography/design.bib +28 -0
  175. nwchemex_pluginplay-1.0.63/docs/source/bibliography/pluginplay.bib +32 -0
  176. nwchemex_pluginplay-1.0.63/docs/source/conf.py +194 -0
  177. nwchemex_pluginplay-1.0.63/docs/source/developer/assets/run_as_call_graph.png +0 -0
  178. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/cache_design.png +0 -0
  179. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/data_flow.png +0 -0
  180. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/database_design.png +0 -0
  181. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/db_pimpl_design.png +0 -0
  182. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/field_design.png +0 -0
  183. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/making_callgraph.png +0 -0
  184. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/mm_arch.png +0 -0
  185. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/module_design.png +0 -0
  186. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/module_pool.png +0 -0
  187. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/property_type_design.png +0 -0
  188. nwchemex_pluginplay-1.0.63/docs/source/developer/design/assets/switching_modules.png +0 -0
  189. nwchemex_pluginplay-1.0.63/docs/source/developer/design/cache.rst +340 -0
  190. nwchemex_pluginplay-1.0.63/docs/source/developer/design/call_graph.rst +369 -0
  191. nwchemex_pluginplay-1.0.63/docs/source/developer/design/checkpoint_restart.rst +202 -0
  192. nwchemex_pluginplay-1.0.63/docs/source/developer/design/database.rst +1001 -0
  193. nwchemex_pluginplay-1.0.63/docs/source/developer/design/field.rst +120 -0
  194. nwchemex_pluginplay-1.0.63/docs/source/developer/design/index.rst +41 -0
  195. nwchemex_pluginplay-1.0.63/docs/source/developer/design/memoization.rst +275 -0
  196. nwchemex_pluginplay-1.0.63/docs/source/developer/design/module.rst +250 -0
  197. nwchemex_pluginplay-1.0.63/docs/source/developer/design/module_manager.rst +176 -0
  198. nwchemex_pluginplay-1.0.63/docs/source/developer/design/property_type.rst +179 -0
  199. nwchemex_pluginplay-1.0.63/docs/source/developer/how_does_run_as_work.rst +61 -0
  200. nwchemex_pluginplay-1.0.63/docs/source/developer/index.rst +29 -0
  201. nwchemex_pluginplay-1.0.63/docs/source/developer/overall_design.png +0 -0
  202. nwchemex_pluginplay-1.0.63/docs/source/faqs.rst +21 -0
  203. nwchemex_pluginplay-1.0.63/docs/source/features.rst +54 -0
  204. nwchemex_pluginplay-1.0.63/docs/source/index.rst +47 -0
  205. nwchemex_pluginplay-1.0.63/docs/source/install.rst +216 -0
  206. nwchemex_pluginplay-1.0.63/docs/source/tutorials/index.rst +27 -0
  207. nwchemex_pluginplay-1.0.63/docs/source/tutorials/modules/advanced.rst +105 -0
  208. nwchemex_pluginplay-1.0.63/docs/source/tutorials/modules/basics.rst +286 -0
  209. nwchemex_pluginplay-1.0.63/docs/source/tutorials/modules/design.rst +76 -0
  210. nwchemex_pluginplay-1.0.63/docs/source/tutorials/modules/index.rst +66 -0
  211. nwchemex_pluginplay-1.0.63/docs/source/tutorials/modules/iterative.rst +54 -0
  212. nwchemex_pluginplay-1.0.63/docs/source/tutorials/modules/templated.rst +50 -0
  213. nwchemex_pluginplay-1.0.63/docs/source/tutorials/plugins/document_modules.rst +69 -0
  214. nwchemex_pluginplay-1.0.63/docs/source/tutorials/plugins/index.rst +36 -0
  215. nwchemex_pluginplay-1.0.63/docs/source/tutorials/plugins/load_modules.rst +101 -0
  216. nwchemex_pluginplay-1.0.63/docs/source/tutorials/plugins/overview.rst +61 -0
  217. nwchemex_pluginplay-1.0.63/docs/source/tutorials/property_types/advanced.rst +29 -0
  218. nwchemex_pluginplay-1.0.63/docs/source/tutorials/property_types/basics.rst +164 -0
  219. nwchemex_pluginplay-1.0.63/docs/source/tutorials/property_types/index.rst +37 -0
  220. nwchemex_pluginplay-1.0.63/pyproject.toml +52 -0
  221. nwchemex_pluginplay-1.0.63/tests/README.md +39 -0
  222. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/classical_force.cpp +61 -0
  223. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/coulombs_law.cpp +69 -0
  224. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/electric_field.hpp +44 -0
  225. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/force.hpp +40 -0
  226. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/generate_module_documentation.cpp +45 -0
  227. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/load_modules.cpp +32 -0
  228. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/load_modules.hpp +24 -0
  229. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/main.cpp +25 -0
  230. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/module_cache.cpp +87 -0
  231. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/modules.hpp +32 -0
  232. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/point_charge.hpp +46 -0
  233. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/screened_coulombs_law.cpp +79 -0
  234. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/templated_coulombs_law.cpp +81 -0
  235. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/test_modules.cpp +68 -0
  236. nwchemex_pluginplay-1.0.63/tests/cxx/doc_snippets/test_tutorial_module_documents.cpp +59 -0
  237. nwchemex_pluginplay-1.0.63/tests/cxx/regression_tests/issue_350.cpp +62 -0
  238. nwchemex_pluginplay-1.0.63/tests/cxx/regression_tests/main.cpp +25 -0
  239. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/any/any.cpp +83 -0
  240. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/any/any_field.cpp +400 -0
  241. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/any/detail_/any_field_base.cpp +164 -0
  242. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/any/detail_/any_field_wrapper.cpp +179 -0
  243. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/any/detail_/any_field_wrapper_traits.cpp +36 -0
  244. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/any/test_any.hpp +43 -0
  245. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/database_api.cpp +41 -0
  246. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/database_factory.cpp +80 -0
  247. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/db_value.cpp +62 -0
  248. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/key_injector.cpp +122 -0
  249. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/key_proxy_mapper.cpp +144 -0
  250. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/make_any.cpp +232 -0
  251. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/native.cpp +98 -0
  252. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/rocksdb/detail_/rocksdb_pimpl.cpp +113 -0
  253. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/rocksdb/detail_/rocksdb_pimpl_stub.cpp +39 -0
  254. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/rocksdb/rocksdb.cpp +91 -0
  255. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/serialized.cpp +104 -0
  256. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/transposer.cpp +97 -0
  257. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/type_eraser.cpp +112 -0
  258. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/database/value_proxy_mapper.cpp +142 -0
  259. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/lexical_cast.cpp +26 -0
  260. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/lexical_cast.hpp +38 -0
  261. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/module_cache.cpp +108 -0
  262. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/module_manager_cache.cpp +104 -0
  263. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/proxy_map_maker.cpp +89 -0
  264. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/test_cache.hpp +94 -0
  265. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/user_cache.cpp +110 -0
  266. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/cache/uuid_mapper.cpp +209 -0
  267. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/catch.hpp +21 -0
  268. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/detail_/field_tuple_traits.cpp +469 -0
  269. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/detail_/submodule_request_pimpl.cpp +314 -0
  270. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/lambda_module.cpp +164 -0
  271. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/load_modules.hpp +74 -0
  272. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/workflow.cpp +28 -0
  273. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/workflow.hpp +84 -0
  274. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/writing_a_module.cpp +141 -0
  275. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/writing_a_module.hpp +340 -0
  276. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/writing_a_property_type.cpp +184 -0
  277. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/examples/writing_a_property_type.hpp +196 -0
  278. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/fields/bounds_checking/bounds_checking.cpp +90 -0
  279. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/fields/detail_/module_input_pimpl.cpp +327 -0
  280. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/fields/detail_/module_result_pimpl.cpp +230 -0
  281. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/fields/module_input.cpp +467 -0
  282. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/fields/module_result.cpp +235 -0
  283. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/module/detail_/module_pimpl.cpp +529 -0
  284. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/module/facade_module.cpp +40 -0
  285. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/module/lambda_module.cpp +44 -0
  286. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/module/module_base.cpp +191 -0
  287. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/module/module_class.cpp +616 -0
  288. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/module_manager/detail_/module_manager_pimpl.cpp +255 -0
  289. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/module_manager/module_manager_class.cpp +80 -0
  290. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/detail_/print_inputs.cpp +292 -0
  291. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/detail_/print_results.cpp +118 -0
  292. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/detail_/print_submodules.cpp +114 -0
  293. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/detail_/rest_printer.cpp +82 -0
  294. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/document_module.cpp +228 -0
  295. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/document_modules.cpp +53 -0
  296. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/helpers.cpp +89 -0
  297. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/printing/mermaid.cpp +169 -0
  298. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/property_type/field_tuple.cpp +331 -0
  299. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/property_type/property_type.cpp +118 -0
  300. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/property_type/python_only_property_type.cpp +72 -0
  301. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/python/python_wrapper.cpp +93 -0
  302. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/submodule_request.cpp +372 -0
  303. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/test_common.hpp +186 -0
  304. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/test_main.cpp +27 -0
  305. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/type_traits/base_property_type.cpp +40 -0
  306. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/type_traits/is_property_type.cpp +73 -0
  307. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/unit_testing_pts.hpp +91 -0
  308. nwchemex_pluginplay-1.0.63/tests/cxx/unit_tests/pluginplay/utility.cpp +49 -0
  309. nwchemex_pluginplay-1.0.63/tests/python/conftest.py +45 -0
  310. nwchemex_pluginplay-1.0.63/tests/python/doc_snippets/coulombslaw_force.py +96 -0
  311. nwchemex_pluginplay-1.0.63/tests/python/doc_snippets/export_pluginplay_examples.cpp +39 -0
  312. nwchemex_pluginplay-1.0.63/tests/python/doc_snippets/test_doc_snippets.py +32 -0
  313. nwchemex_pluginplay-1.0.63/tests/python/doc_snippets/test_modules.py +71 -0
  314. nwchemex_pluginplay-1.0.63/tests/python/doc_snippets/test_python_modules.py +53 -0
  315. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/any/__init__.py +13 -0
  316. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/any/export_test_any_field.cpp +30 -0
  317. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/any/test_any.hpp +26 -0
  318. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/any/test_any_field.py +78 -0
  319. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/export_test_module.cpp +25 -0
  320. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/export_test_module_base.cpp +25 -0
  321. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/export_test_pluginplay.cpp +76 -0
  322. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/export_test_submodule_request.cpp +42 -0
  323. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/fields/__init__.py +13 -0
  324. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/fields/export_test_module_input.cpp +56 -0
  325. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/fields/export_test_module_result.cpp +52 -0
  326. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/fields/test_fields.hpp +30 -0
  327. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/fields/test_module_input.py +241 -0
  328. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/fields/test_module_result.py +120 -0
  329. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/module/__init__.py +13 -0
  330. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/module/test_module.py +378 -0
  331. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/module/test_module_base.py +63 -0
  332. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/module_manager/__init__.py +13 -0
  333. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/module_manager/test_module_manager_class.py +235 -0
  334. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/modules.hpp +123 -0
  335. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/printing/__init__.py +13 -0
  336. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/printing/test_document_modules.py +70 -0
  337. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/property_type/__init__.py +13 -0
  338. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/property_type/export_test_property_type.cpp +86 -0
  339. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/property_type/test_property_type.hpp +24 -0
  340. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/property_type/test_property_type.py +140 -0
  341. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/property_type/test_python_only_property_type.py +96 -0
  342. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/property_types.hpp +106 -0
  343. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/python/__init__.py +13 -0
  344. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/python/export_test_py_type_info.cpp +42 -0
  345. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/python/export_test_python_wrapper.cpp +44 -0
  346. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/python/test_py_type_info.py +67 -0
  347. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/python/test_python.hpp +30 -0
  348. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/python/test_python_wrapper.py +58 -0
  349. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/test_pluginplay.hpp +26 -0
  350. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/test_pluginplay.py +33 -0
  351. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/test_submodule_request.py +140 -0
  352. nwchemex_pluginplay-1.0.63/tests/python/unit_tests/tox.ini +23 -0
  353. nwchemex_pluginplay-1.0.63/version.txt +1 -0
@@ -0,0 +1,110 @@
1
+ # Copyright 2022 NWChemEx-Project
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ ---
16
+ Language: Cpp
17
+ # BasedOnStyle: Mozilla
18
+ AccessModifierOffset: -4
19
+ AlignAfterOpenBracket: Align
20
+ AlignConsecutiveAssignments: true
21
+ AlignConsecutiveDeclarations: false
22
+ AlignEscapedNewlines: Left
23
+ AlignOperands: true
24
+ AlignTrailingComments: true
25
+ AllowAllParametersOfDeclarationOnNextLine: true
26
+ AllowShortBlocksOnASingleLine: true
27
+ AllowShortCaseLabelsOnASingleLine: true
28
+ AllowShortFunctionsOnASingleLine: All
29
+ AllowShortIfStatementsOnASingleLine: true
30
+ AllowShortLoopsOnASingleLine: true
31
+ AlwaysBreakAfterDefinitionReturnType: false
32
+ AlwaysBreakAfterReturnType: None
33
+ AlwaysBreakBeforeMultilineStrings: false
34
+ AlwaysBreakTemplateDeclarations: true
35
+ BinPackArguments: true
36
+ BinPackParameters: true
37
+ BraceWrapping:
38
+ AfterClass: false
39
+ AfterControlStatement: false
40
+ AfterEnum: false
41
+ AfterFunction: false
42
+ AfterNamespace: false
43
+ AfterObjCDeclaration: false
44
+ AfterStruct: false
45
+ AfterUnion: false
46
+ BeforeCatch: false
47
+ BeforeElse: false
48
+ IndentBraces: false
49
+ BreakAfterJavaFieldAnnotations: false
50
+ BreakBeforeBinaryOperators: None
51
+ BreakBeforeBraces: Custom
52
+ BreakBeforeInheritanceComma: false
53
+ BreakBeforeTernaryOperators: false
54
+ BreakConstructorInitializers: AfterColon
55
+ BreakStringLiterals: true
56
+ ColumnLimit: 80
57
+ CommentPragmas: '^ IWYU pragma:'
58
+ CompactNamespaces: false
59
+ ConstructorInitializerAllOnOneLineOrOnePerLine: true
60
+ ConstructorInitializerIndentWidth: 2
61
+ ContinuationIndentWidth: 2
62
+ Cpp11BracedListStyle: true
63
+ DerivePointerAlignment: false
64
+ DisableFormat: false
65
+ ExperimentalAutoDetectBinPacking: false
66
+ FixNamespaceComments: true
67
+ ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
68
+ IncludeCategories:
69
+ - Regex: '^"'
70
+ Priority: 1
71
+ - Regex: '^<'
72
+ Priority: 2
73
+ IncludeIsMainRegex: '(Test)$'
74
+ IndentCaseLabels: true
75
+ IndentWidth: 4
76
+ IndentWrappedFunctionNames: false
77
+ JavaScriptQuotes: Leave
78
+ JavaScriptWrapImports: true
79
+ KeepEmptyLinesAtTheStartOfBlocks: false
80
+ MacroBlockBegin: ''
81
+ MacroBlockEnd: ''
82
+ MaxEmptyLinesToKeep: 1
83
+ NamespaceIndentation: None
84
+ ObjCBlockIndentWidth: 4
85
+ ObjCSpaceAfterProperty: true
86
+ ObjCSpaceBeforeProtocolList: false
87
+ PenaltyBreakBeforeFirstCallParameter: 19
88
+ PenaltyBreakComment: 300
89
+ PenaltyBreakFirstLessLess: 120
90
+ PenaltyBreakString: 1000
91
+ PenaltyExcessCharacter: 1000000
92
+ PenaltyReturnTypeOnItsOwnLine: 200
93
+ PointerAlignment: Left
94
+ ReflowComments: true
95
+ SortIncludes: true
96
+ SpaceAfterCStyleCast: false
97
+ SpaceAfterTemplateKeyword: false
98
+ SpaceBeforeAssignmentOperators: true
99
+ SpaceBeforeParens: Never
100
+ SpaceInEmptyParentheses: false
101
+ SpacesBeforeTrailingComments: 1
102
+ SpacesInAngles: false
103
+ SpacesInCStyleCastParentheses: false
104
+ SpacesInContainerLiterals: false
105
+ SpacesInParentheses: false
106
+ SpacesInSquareBrackets: false
107
+ Standard: Cpp11
108
+ TabWidth: 8
109
+ UseTab: Never
110
+ ...
@@ -0,0 +1,79 @@
1
+ # Copyright 2023 NWChemEx-Project
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ name: Merge Workflow
17
+
18
+ on:
19
+ push:
20
+ branches:
21
+ - master
22
+
23
+ jobs:
24
+ tag-commit:
25
+ uses: NWChemEx/.github/.github/workflows/tag.yaml@master
26
+ secrets: inherit
27
+
28
+ deploy_nwx_docs:
29
+ uses: NWChemEx/.github/.github/workflows/deploy_nwx_docs.yaml@master
30
+ with:
31
+ doc_target: "pluginplay_cxx_api"
32
+ secrets: inherit
33
+
34
+ platform_matrix:
35
+ uses: NWChemEx/.github/.github/workflows/platform_matrix.yaml@master
36
+
37
+ build_pypi_dist:
38
+ needs: [tag-commit, platform_matrix]
39
+ strategy:
40
+ fail-fast: false
41
+ matrix:
42
+ include: ${{ fromJSON(needs.platform_matrix.outputs.release_matrix) }}
43
+ runs-on: ${{ matrix.os }}
44
+ steps:
45
+ - name: Build PyPI Distribution
46
+ uses: NWChemEx/.github/.github/actions/build_pypi_dist@master
47
+ with:
48
+ cibw_build: ${{ matrix.cibw_build }}
49
+ build_sdist: ${{ matrix.os == 'ubuntu-latest' && 'true' || 'false' }}
50
+ needs_mpi: "true"
51
+ needs_boost: "true"
52
+
53
+ - name: Upload Distribution Artifact
54
+ uses: actions/upload-artifact@v4
55
+ with:
56
+ name: dist-${{ matrix.os }}
57
+ path: dist/
58
+
59
+ # A separate, ubuntu-only publish job (rather than a publish step per
60
+ # build_pypi_dist leg) because pypa/gh-action-pypi-publish only runs on
61
+ # Linux, and because PyPI trusted publishing does not support reusable
62
+ # workflows (this job must be defined directly here, not delegated).
63
+ deploy_to_pypi:
64
+ needs: build_pypi_dist
65
+ runs-on: ubuntu-latest
66
+ permissions:
67
+ id-token: write
68
+ steps:
69
+ - name: Download All Distributions
70
+ uses: actions/download-artifact@v4
71
+ with:
72
+ pattern: dist-*
73
+ path: dist
74
+ merge-multiple: true
75
+
76
+ - name: Publish to PyPI
77
+ uses: pypa/gh-action-pypi-publish@release/v1
78
+ with:
79
+ packages-dir: dist/
@@ -0,0 +1,33 @@
1
+ # Copyright 2025 NWChemEx-Project
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ name: Nightly Workflow
17
+ # Re-runs the same build/test jobs pull_request.yaml runs, on a schedule, to
18
+ # catch breakage that originates outside the repo (upstream dependency
19
+ # releases, refreshed GitHub runner images) rather than from a code change.
20
+ # Keep the job list below in sync with pull_request.yaml.
21
+
22
+ on:
23
+ schedule:
24
+ - cron: "0 6 * * *" # Every day at 06:00 UTC (00:00 CST)
25
+
26
+ jobs:
27
+ test_cmake_build:
28
+ uses: NWChemEx/.github/.github/workflows/test_nwx_cmake_build.yaml@master
29
+ with:
30
+ run_python_tests: "true"
31
+
32
+ test_pip_build:
33
+ uses: NWChemEx/.github/.github/workflows/test_nwx_pip_build.yaml@master
@@ -0,0 +1,38 @@
1
+ # Copyright 2023 NWChemEx-Project
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ name: Pull Request Workflow
17
+
18
+ on:
19
+ pull_request:
20
+ branches:
21
+ - master
22
+
23
+ jobs:
24
+ check_formatting:
25
+ uses: NWChemEx/.github/.github/workflows/check_formatting.yaml@master
26
+
27
+ test_nwx_docs:
28
+ uses: NWChemEx/.github/.github/workflows/test_nwx_docs.yaml@master
29
+ with:
30
+ doc_target: "pluginplay_cxx_api"
31
+
32
+ test_cmake_build:
33
+ uses: NWChemEx/.github/.github/workflows/test_nwx_cmake_build.yaml@master
34
+ with:
35
+ run_python_tests: "true"
36
+
37
+ test_pip_build:
38
+ uses: NWChemEx/.github/.github/workflows/test_nwx_pip_build.yaml@master
@@ -0,0 +1,59 @@
1
+ # Copyright 2022 NWChemEx-Project
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ # These are extensions commonly used to denote temporary files
16
+ *.tmp
17
+ *.autosave
18
+ *.bak
19
+
20
+ # These are directories used by IDEs for storing settings
21
+ .idea/
22
+ .vscode/
23
+ .cache
24
+
25
+ # These are common Python virtual enviornment directory names
26
+ venv/
27
+ docs/venv/
28
+
29
+ # This is where Jupyter/IPython store backup files
30
+ .ipynb_checkpoints/
31
+
32
+ # Byte-compiled Python
33
+ __pycache__/
34
+
35
+ # These are common build directory names
36
+ build*/
37
+ docs/build
38
+ docs/source/_build
39
+ docs/doxyoutput
40
+ docs/source/api
41
+ *-build-*/
42
+ _build/
43
+ Debug/
44
+ Release/
45
+
46
+ # Users commonly store their specific CMake settings in a toolchain file
47
+ toolchain.cmake
48
+
49
+ # These are the default names for the components of the cache
50
+ cache.db
51
+ uuid.db
52
+
53
+ install/
54
+
55
+ # These are MacOS files
56
+ .DS_Store
57
+
58
+ # Automatically installed in dev mode
59
+ .pre-commit-config.yaml
@@ -0,0 +1,29 @@
1
+ # Copyright 2021 NWChemEx-Project
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+ header:
16
+ license:
17
+ spdx-id: Apache-2.0
18
+ copyright-owner: NWChemEx-Project
19
+
20
+ paths-ignore:
21
+ - .github/
22
+ - docs/Makefile
23
+ - docs/requirements.txt
24
+ - cmake/generate_module_docs.cpp.in
25
+ - LICENSE
26
+ - version.txt
27
+ - build/
28
+
29
+ comment: never
@@ -0,0 +1,162 @@
1
+ # Copyright 2026 NWChemEx-Project
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ cmake_minimum_required(VERSION 3.14)
16
+
17
+ # Downloads common CMake modules used throughout NWChemEx. Included before
18
+ # project() so nwx_set_version() is available to compute the version.
19
+ include(cmake/get_nwx_cmake.cmake)
20
+
21
+ # Version from scikit-build-core (wheels/sdists) or the latest git tag.
22
+ include(nwx_set_version)
23
+ nwx_set_version(pp_version "${CMAKE_CURRENT_LIST_DIR}")
24
+ project(pluginplay VERSION "${pp_version}" LANGUAGES CXX)
25
+
26
+ include(disable_in_source_builds)
27
+ include(set_default_nwx_options)
28
+ option(BUILD_ROCKSDB "Enable RocksDB backend of the cache" OFF)
29
+
30
+ # Documentation target
31
+ include(nwx_cxx_api_docs)
32
+ nwx_cxx_api_docs("cxx/include" "cxx/src")
33
+
34
+ # Dependencies
35
+ include(get_dependencies)
36
+ get_dependencies(utilities parallelzone libfort boost)
37
+
38
+ # pybind11 must be fetched before nwx_library because python_wrapper.hpp is a
39
+ # public PluginPlay header that conditionally includes pybind11/pybind11.h when
40
+ # BUILD_PYBIND11 is defined. Without pybind11 on the include path the library
41
+ # sources themselves fail to compile.
42
+ if(BUILD_PYBIND11_BINDINGS)
43
+ get_dependencies(pybind11)
44
+ # Development.Module is enough for the .so extension (built via
45
+ # pybind11_add_module, which intentionally avoids linking libpython so
46
+ # the module can be loaded by any Python that provides the symbols at
47
+ # runtime). Development.Embed additionally provides the Python::Python
48
+ # target (see below), needed so any C++-only executable that transitively
49
+ # links this library (e.g. a Catch2 test binary, here or in a downstream
50
+ # ecosystem project) gets those symbols resolved at link time instead --
51
+ # an executable can't defer resolution to runtime the way a shared
52
+ # library/extension can. This used to be gated on BUILD_TESTING, but
53
+ # get_dependencies() force-sets BUILD_TESTING=OFF while FetchContent'ing
54
+ # this project as someone else's dependency, which left downstream test
55
+ # executables (e.g. simde's unit_test_simde) linking a libpluginplay.dylib
56
+ # with no libpython and unresolved CPython symbols, aborting at load time.
57
+ # Probing for Development.Embed instead of requiring it keeps manylinux
58
+ # wheel-build containers (which deliberately don't ship libpython.so, and
59
+ # never link a C++ executable against this library anyway) working: the
60
+ # component there just won't be found, and Python::Python is skipped
61
+ # below.
62
+ find_package(Python REQUIRED COMPONENTS Interpreter Development.Module)
63
+ find_package(Python QUIET COMPONENTS Development.Embed)
64
+ endif()
65
+
66
+ # TODO: add RocksDB handling when BUILD_ROCKSDB=ON
67
+
68
+ # Build the library
69
+ include(nwx_library)
70
+ nwx_library(${PROJECT_NAME} "cxx/include" "cxx/src"
71
+ utilities parallelzone
72
+ PUBLIC boost
73
+ PRIVATE libfort)
74
+
75
+ # PluginPlay exposes a compile-time flag so its source can #ifdef pybind11 paths.
76
+ # pybind11::pybind11 is added PUBLIC so downstream consumers that include
77
+ # python_wrapper.hpp (a public header) also get the pybind11 include dirs.
78
+ if(BUILD_PYBIND11_BINDINGS)
79
+ target_compile_definitions(${PROJECT_NAME} PUBLIC BUILD_PYBIND11)
80
+ # pybind11::pybind11 provides pybind11 headers. python_wrapper.hpp (a
81
+ # public header, compiled into this library whenever BUILD_PYBIND11 is
82
+ # set) calls the CPython C API directly. As a *shared* library,
83
+ # ${PROJECT_NAME} itself tolerates those symbols staying undefined until
84
+ # runtime (same as the pybind11 extension module); it's only the Catch2
85
+ # test *executables* below that need them fully resolved at link time,
86
+ # so only link libpython (Python::Python, from Development.Embed above)
87
+ # when those executables are actually built.
88
+ # Python::Module (Development.Module) provides the Python.h include path
89
+ # python_wrapper.hpp needs to even compile; it's always available (see
90
+ # find_package above) and, unlike Python::Python, doesn't link libpython.
91
+ target_link_libraries(${PROJECT_NAME} PUBLIC pybind11::pybind11 Python::Module)
92
+ if(TARGET Python::Python)
93
+ target_link_libraries(${PROJECT_NAME} PUBLIC Python::Python)
94
+ endif()
95
+ endif()
96
+
97
+ # Python module
98
+ include(nwx_python_module)
99
+ nwx_python_module(${PROJECT_NAME} "cxx/src")
100
+
101
+ # C++ tests
102
+ include(catch2_tests_from_dir)
103
+ catch2_tests_from_dir(
104
+ "unit_test_${PROJECT_NAME}"
105
+ "tests/cxx/unit_tests/${PROJECT_NAME}"
106
+ ${PROJECT_NAME}
107
+ PRIVATE_INCLUDES cxx/src
108
+ )
109
+ catch2_tests_from_dir(
110
+ "test_regression_${PROJECT_NAME}"
111
+ "tests/cxx/regression_tests"
112
+ ${PROJECT_NAME}
113
+ PRIVATE_INCLUDES cxx/src
114
+ )
115
+ catch2_tests_from_dir(
116
+ "test_${PROJECT_NAME}_docs"
117
+ "tests/cxx/doc_snippets"
118
+ ${PROJECT_NAME}
119
+ PRIVATE_INCLUDES cxx/src
120
+ )
121
+
122
+ # py_test_pluginplay: a pybind11 module exposing C++ test fixtures (BaseClass,
123
+ # property types, etc.) to tests/python/unit_tests/*.py. Not part of the
124
+ # installed package -- test-only, built in place alongside the other test
125
+ # binaries. The old build system built this via nwx_add_pybind11_module(...);
126
+ # reuses nwx_python_module (its NO_INSTALL keeps this out of the wheel). Its
127
+ # sources are prefixed export_ so they match the macro's source filter.
128
+ if(BUILD_PYBIND11_BINDINGS AND BUILD_TESTING)
129
+ nwx_python_module(py_test_pluginplay "tests/python/unit_tests" NO_INSTALL)
130
+ endif()
131
+
132
+ # pluginplay_examples: a pybind11 module (EXPORT_PLUGIN, in
133
+ # tests/python/doc_snippets/export_pluginplay_examples.cpp) exposing the
134
+ # tutorial "Classical Force"/"Coulomb's Law" example modules to
135
+ # tests/python/doc_snippets/*.py. Depends on a small library built from the
136
+ # (non-test) implementation files under tests/cxx/doc_snippets -- listed
137
+ # explicitly rather than globbed, since that directory also holds Catch2
138
+ # TEST_CASE files and a custom main() (used by test_pluginplay_docs above)
139
+ # that aren't part of the example modules themselves. The pybind11 module
140
+ # itself reuses nwx_python_module (DEPENDS for the extra link libraries,
141
+ # NO_INSTALL to keep it out of the wheel); the supporting library is plain
142
+ # C++, not a pybind11 module, so it's built via nwx_library(... SOURCES ...
143
+ # NO_INSTALL) instead.
144
+ if(BUILD_PYBIND11_BINDINGS AND BUILD_TESTING)
145
+ set(_pluginplay_examples_dir "${CMAKE_CURRENT_SOURCE_DIR}/tests/cxx/doc_snippets")
146
+ nwx_library(pluginplay_examples_impl
147
+ "tests/cxx/doc_snippets" "tests/cxx/doc_snippets"
148
+ ${PROJECT_NAME}
149
+ SOURCES
150
+ "${_pluginplay_examples_dir}/classical_force.cpp"
151
+ "${_pluginplay_examples_dir}/coulombs_law.cpp"
152
+ "${_pluginplay_examples_dir}/load_modules.cpp"
153
+ "${_pluginplay_examples_dir}/screened_coulombs_law.cpp"
154
+ "${_pluginplay_examples_dir}/templated_coulombs_law.cpp"
155
+ TYPE STATIC
156
+ NO_INSTALL
157
+ )
158
+
159
+ nwx_python_module(pluginplay_examples "tests/python/doc_snippets" NO_INSTALL
160
+ DEPENDS parallelzone pluginplay_examples_impl
161
+ )
162
+ endif()