cimsi 0.7.8__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 (460) hide show
  1. cimsi-0.7.8/.editorconfig +21 -0
  2. cimsi-0.7.8/.gitignore +112 -0
  3. cimsi-0.7.8/.gitlab-ci.yml +82 -0
  4. cimsi-0.7.8/.readthedocs.yaml +23 -0
  5. cimsi-0.7.8/LICENSE +1 -0
  6. cimsi-0.7.8/MANIFEST.in +10 -0
  7. cimsi-0.7.8/Makefile +85 -0
  8. cimsi-0.7.8/PKG-INFO +80 -0
  9. cimsi-0.7.8/README.md +45 -0
  10. cimsi-0.7.8/cimsi.egg-info/PKG-INFO +80 -0
  11. cimsi-0.7.8/cimsi.egg-info/SOURCES.txt +458 -0
  12. cimsi-0.7.8/cimsi.egg-info/dependency_links.txt +1 -0
  13. cimsi-0.7.8/cimsi.egg-info/entry_points.txt +3 -0
  14. cimsi-0.7.8/cimsi.egg-info/requires.txt +23 -0
  15. cimsi-0.7.8/cimsi.egg-info/top_level.txt +1 -0
  16. cimsi-0.7.8/config/imsi-user-config.json +5 -0
  17. cimsi-0.7.8/docs/Makefile +20 -0
  18. cimsi-0.7.8/docs/_static/custom.css +13 -0
  19. cimsi-0.7.8/docs/_static/imsi_configuration_hierarchy.png +0 -0
  20. cimsi-0.7.8/docs/_static/maestro_status.png +0 -0
  21. cimsi-0.7.8/docs/conf.py +166 -0
  22. cimsi-0.7.8/docs/config_breaking_changes.rst +482 -0
  23. cimsi-0.7.8/docs/design.md +53 -0
  24. cimsi-0.7.8/docs/developing_configurations.rst +246 -0
  25. cimsi-0.7.8/docs/developing_imsi.rst +348 -0
  26. cimsi-0.7.8/docs/ensemble.rst +343 -0
  27. cimsi-0.7.8/docs/imsi.rst +79 -0
  28. cimsi-0.7.8/docs/imsi_simple_shell_sequencer.rst +3 -0
  29. cimsi-0.7.8/docs/imsi_tracking.rst +124 -0
  30. cimsi-0.7.8/docs/index.rst +23 -0
  31. cimsi-0.7.8/docs/make.bat +36 -0
  32. cimsi-0.7.8/docs/modules.rst +118 -0
  33. cimsi-0.7.8/docs/readme.rst +1 -0
  34. cimsi-0.7.8/docs/requirements.txt +4 -0
  35. cimsi-0.7.8/docs/usage.rst +489 -0
  36. cimsi-0.7.8/environment.yml +45 -0
  37. cimsi-0.7.8/imsi/__init__.py +16 -0
  38. cimsi-0.7.8/imsi/_version.py +34 -0
  39. cimsi-0.7.8/imsi/cli/__init__.py +0 -0
  40. cimsi-0.7.8/imsi/cli/cli_snapshot_state.sh +175 -0
  41. cimsi-0.7.8/imsi/cli/core_cli.py +307 -0
  42. cimsi-0.7.8/imsi/cli/core_tracking.py +169 -0
  43. cimsi-0.7.8/imsi/cli/entry.py +58 -0
  44. cimsi-0.7.8/imsi/cli/lazy.py +104 -0
  45. cimsi-0.7.8/imsi/cli/post_install.py +16 -0
  46. cimsi-0.7.8/imsi/cli/sectioned_group.py +26 -0
  47. cimsi-0.7.8/imsi/config_manager/.gitignore +5 -0
  48. cimsi-0.7.8/imsi/config_manager/__init__.py +0 -0
  49. cimsi-0.7.8/imsi/config_manager/config_manager.py +516 -0
  50. cimsi-0.7.8/imsi/config_manager/databases.py +107 -0
  51. cimsi-0.7.8/imsi/config_manager/schema/__init__.py +0 -0
  52. cimsi-0.7.8/imsi/config_manager/schema/compiler.py +8 -0
  53. cimsi-0.7.8/imsi/config_manager/schema/components.py +87 -0
  54. cimsi-0.7.8/imsi/config_manager/schema/experiment.py +34 -0
  55. cimsi-0.7.8/imsi/config_manager/schema/machine.py +156 -0
  56. cimsi-0.7.8/imsi/config_manager/schema/model.py +21 -0
  57. cimsi-0.7.8/imsi/config_manager/schema/post_processing.py +12 -0
  58. cimsi-0.7.8/imsi/config_manager/schema/sequencing.py +26 -0
  59. cimsi-0.7.8/imsi/config_manager/schema/setup_params.py +7 -0
  60. cimsi-0.7.8/imsi/config_manager/schema/types.py +7 -0
  61. cimsi-0.7.8/imsi/config_manager/schema/utilities.py +9 -0
  62. cimsi-0.7.8/imsi/config_manager/tests.py +50 -0
  63. cimsi-0.7.8/imsi/imsi.site.rc +4 -0
  64. cimsi-0.7.8/imsi/scheduler_interface/__init__.py +0 -0
  65. cimsi-0.7.8/imsi/scheduler_interface/scheduler_tools.py +96 -0
  66. cimsi-0.7.8/imsi/scheduler_interface/schedulers.py +177 -0
  67. cimsi-0.7.8/imsi/sequencer_interface/__init__.py +0 -0
  68. cimsi-0.7.8/imsi/sequencer_interface/iss_cap.py +215 -0
  69. cimsi-0.7.8/imsi/sequencer_interface/maestro_cap.py +1242 -0
  70. cimsi-0.7.8/imsi/sequencer_interface/maestro_status.py +201 -0
  71. cimsi-0.7.8/imsi/sequencer_interface/sequencers.py +65 -0
  72. cimsi-0.7.8/imsi/shell_interface/__init__.py +6 -0
  73. cimsi-0.7.8/imsi/shell_interface/config_hooks_collection.py +139 -0
  74. cimsi-0.7.8/imsi/shell_interface/config_hooks_collection_config.yaml +8 -0
  75. cimsi-0.7.8/imsi/shell_interface/config_hooks_manager.py +89 -0
  76. cimsi-0.7.8/imsi/shell_interface/parse_dbs_example.py +43 -0
  77. cimsi-0.7.8/imsi/shell_interface/shell_comp_environment.py +171 -0
  78. cimsi-0.7.8/imsi/shell_interface/shell_config_parameters.py +109 -0
  79. cimsi-0.7.8/imsi/shell_interface/shell_diag_parameters.py +35 -0
  80. cimsi-0.7.8/imsi/shell_interface/shell_inputs_outputs.py +189 -0
  81. cimsi-0.7.8/imsi/shell_interface/shell_interface_manager.py +203 -0
  82. cimsi-0.7.8/imsi/shell_interface/shell_interface_utilities.py +36 -0
  83. cimsi-0.7.8/imsi/shell_interface/shell_timing_vars.py +72 -0
  84. cimsi-0.7.8/imsi/tools/__init__.py +0 -0
  85. cimsi-0.7.8/imsi/tools/disk_tools/__init__.py +0 -0
  86. cimsi-0.7.8/imsi/tools/disk_tools/disk_tools.py +72 -0
  87. cimsi-0.7.8/imsi/tools/disk_tools/disk_tools_cli.py +26 -0
  88. cimsi-0.7.8/imsi/tools/ensemble/README.md +129 -0
  89. cimsi-0.7.8/imsi/tools/ensemble/__init__.py +0 -0
  90. cimsi-0.7.8/imsi/tools/ensemble/all_supported_exp.yaml +49 -0
  91. cimsi-0.7.8/imsi/tools/ensemble/config/example_table.csv +3 -0
  92. cimsi-0.7.8/imsi/tools/ensemble/config/example_table.yaml +18 -0
  93. cimsi-0.7.8/imsi/tools/ensemble/config.py +53 -0
  94. cimsi-0.7.8/imsi/tools/ensemble/config.yaml +11 -0
  95. cimsi-0.7.8/imsi/tools/ensemble/ensemble_cli.py +105 -0
  96. cimsi-0.7.8/imsi/tools/ensemble/ensemble_manager.py +231 -0
  97. cimsi-0.7.8/imsi/tools/ensemble/table_utils/__init__.py +0 -0
  98. cimsi-0.7.8/imsi/tools/ensemble/table_utils/data_model.py +113 -0
  99. cimsi-0.7.8/imsi/tools/ensemble/table_utils/table_model.py +202 -0
  100. cimsi-0.7.8/imsi/tools/ensemble/table_utils/table_utils.py +157 -0
  101. cimsi-0.7.8/imsi/tools/list/__init__.py +0 -0
  102. cimsi-0.7.8/imsi/tools/list/list_cli.py +114 -0
  103. cimsi-0.7.8/imsi/tools/list/list_manager.py +119 -0
  104. cimsi-0.7.8/imsi/tools/menu/menu_cli.py +53 -0
  105. cimsi-0.7.8/imsi/tools/menu/menu_helpers.py +99 -0
  106. cimsi-0.7.8/imsi/tools/simple_sequencer/__init__.py +0 -0
  107. cimsi-0.7.8/imsi/tools/simple_sequencer/iss.py +872 -0
  108. cimsi-0.7.8/imsi/tools/simple_sequencer/iss_cli.py +203 -0
  109. cimsi-0.7.8/imsi/tools/simple_sequencer/iss_globals.py +148 -0
  110. cimsi-0.7.8/imsi/tools/time_manager/__init__.py +0 -0
  111. cimsi-0.7.8/imsi/tools/time_manager/cftime_utils.py +300 -0
  112. cimsi-0.7.8/imsi/tools/time_manager/chunk_manager.py +359 -0
  113. cimsi-0.7.8/imsi/tools/time_manager/time_manager.py +354 -0
  114. cimsi-0.7.8/imsi/tools/time_manager/timer_cli.py +136 -0
  115. cimsi-0.7.8/imsi/tools/validate/validate_cli.py +148 -0
  116. cimsi-0.7.8/imsi/user_interface/__init__.py +0 -0
  117. cimsi-0.7.8/imsi/user_interface/setup_manager.py +288 -0
  118. cimsi-0.7.8/imsi/user_interface/ui_manager.py +296 -0
  119. cimsi-0.7.8/imsi/user_interface/ui_utils.py +113 -0
  120. cimsi-0.7.8/imsi/utils/__init__.py +0 -0
  121. cimsi-0.7.8/imsi/utils/dict_tools.py +366 -0
  122. cimsi-0.7.8/imsi/utils/general.py +138 -0
  123. cimsi-0.7.8/imsi/utils/git_tools.py +190 -0
  124. cimsi-0.7.8/imsi/utils/multiple_inheritance_test.py +86 -0
  125. cimsi-0.7.8/imsi/utils/nml_tools.py +200 -0
  126. cimsi-0.7.8/imsi/utils/repo_query_status.sh +29 -0
  127. cimsi-0.7.8/pyproject.toml +77 -0
  128. cimsi-0.7.8/setup.cfg +4 -0
  129. cimsi-0.7.8/tests/.env.test +7 -0
  130. cimsi-0.7.8/tests/README.md +13 -0
  131. cimsi-0.7.8/tests/__init__.py +1 -0
  132. cimsi-0.7.8/tests/conftest.py +43 -0
  133. cimsi-0.7.8/tests/deploy_imsi_env.sh +38 -0
  134. cimsi-0.7.8/tests/test_cli/__init__.py +0 -0
  135. cimsi-0.7.8/tests/test_cli/test_core.py +162 -0
  136. cimsi-0.7.8/tests/test_cli/test_entry.py +81 -0
  137. cimsi-0.7.8/tests/test_disk_tools/__init__.py +0 -0
  138. cimsi-0.7.8/tests/test_disk_tools/imsi_configuration_imsi-test.yaml +63 -0
  139. cimsi-0.7.8/tests/test_disk_tools/test_clean.py +113 -0
  140. cimsi-0.7.8/tests/test_ensemble/test_cli.py +49 -0
  141. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/config.yaml +17 -0
  142. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/config_csv.yaml +11 -0
  143. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/config_txt.yaml +11 -0
  144. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/config_yaml.yaml +12 -0
  145. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/example.csv +3 -0
  146. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/example.txt +3 -0
  147. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/example.yaml +8 -0
  148. cimsi-0.7.8/tests/test_ensemble/test_comprehensive/test_run_comprehensive.py +55 -0
  149. cimsi-0.7.8/tests/test_ensemble/test_config.py +60 -0
  150. cimsi-0.7.8/tests/test_ensemble/test_table_utils/config.yaml +7 -0
  151. cimsi-0.7.8/tests/test_ensemble/test_table_utils/config_table.yaml +12 -0
  152. cimsi-0.7.8/tests/test_ensemble/test_table_utils/config_table_identical_keypaths.yaml +35 -0
  153. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_broadcasted_config.py +89 -0
  154. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config.csv +3 -0
  155. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config.txt +3 -0
  156. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config_alias.csv +3 -0
  157. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config_alias.txt +3 -0
  158. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config_alias_nested.csv +3 -0
  159. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config_alias_nested.txt +3 -0
  160. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config_alias_nested_conflict.csv +3 -0
  161. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config_alias_nested_conflict.txt +3 -0
  162. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_config_unsupported_file_type.db +0 -0
  163. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_csv_table_vars.py +259 -0
  164. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_ensemble_level_vars.py +75 -0
  165. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_member_level_vars.py +152 -0
  166. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_table_utils.py +271 -0
  167. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_text_table_vars.py +154 -0
  168. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_unique_runids.py +27 -0
  169. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_yaml_table_vars.py +124 -0
  170. cimsi-0.7.8/tests/test_ensemble/test_table_utils/test_yaml_vars.py +75 -0
  171. cimsi-0.7.8/tests/test_ensemble/test_utils.py +0 -0
  172. cimsi-0.7.8/tests/test_list/test_list_cli.py +87 -0
  173. cimsi-0.7.8/tests/test_list/test_list_manager.py +49 -0
  174. cimsi-0.7.8/tests/test_schema/test_compiler.py +12 -0
  175. cimsi-0.7.8/tests/test_schema/test_components.py +163 -0
  176. cimsi-0.7.8/tests/test_schema/test_experiment.py +67 -0
  177. cimsi-0.7.8/tests/test_schema/test_machine.py +139 -0
  178. cimsi-0.7.8/tests/test_schema/test_model.py +83 -0
  179. cimsi-0.7.8/tests/test_schema/test_postproc.py +18 -0
  180. cimsi-0.7.8/tests/test_schema/test_sequencing.py +82 -0
  181. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/clean_exp_workspace.waiting +0 -0
  182. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/clean_loop_files.+1.end +0 -0
  183. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/clean_loop_files.+2.waiting +0 -0
  184. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/model_run.+1.end +0 -0
  185. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/model_run.+2.begin +0 -0
  186. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.+1.end +0 -0
  187. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.+2.begin +0 -0
  188. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.+3.begin +0 -0
  189. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.begin +0 -0
  190. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model.begin +0 -0
  191. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/agcm_diag.+1.begin +0 -0
  192. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/clean_loop_files.+1.waiting +0 -0
  193. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/ocean_diag.+1.end +0 -0
  194. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+1.begin +0 -0
  195. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+1.end +0 -0
  196. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/runtime_diagnostics.+1.begin +0 -0
  197. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop.+1.begin +0 -0
  198. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop.begin +0 -0
  199. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/netcdf_concat.waiting +0 -0
  200. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop/clean_loop_files.+1.end +0 -0
  201. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+1.end +0 -0
  202. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+1.end +0 -0
  203. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop.+1.end +0 -0
  204. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop.+2.waiting +0 -0
  205. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop.begin +0 -0
  206. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/wrap_up_loop.+1.waiting +0 -0
  207. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/wrap_up_loop.begin +0 -0
  208. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc.begin +0 -0
  209. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm.begin +0 -0
  210. cimsi-0.7.8/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/multi_indexer.py +12 -0
  211. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/clean_exp_workspace.end +0 -0
  212. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+1.end +0 -0
  213. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+10.end +0 -0
  214. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+11.end +0 -0
  215. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+2.end +0 -0
  216. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+3.end +0 -0
  217. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+4.end +0 -0
  218. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+5.end +0 -0
  219. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+6.end +0 -0
  220. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+7.end +0 -0
  221. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+8.end +0 -0
  222. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+9.end +0 -0
  223. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+1.end +0 -0
  224. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+10.end +0 -0
  225. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+11.end +0 -0
  226. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+2.end +0 -0
  227. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+3.end +0 -0
  228. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+4.end +0 -0
  229. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+5.end +0 -0
  230. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+6.end +0 -0
  231. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+7.end +0 -0
  232. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+8.end +0 -0
  233. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+9.end +0 -0
  234. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+1.end +0 -0
  235. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+10.end +0 -0
  236. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+11.end +0 -0
  237. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+2.end +0 -0
  238. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+3.end +0 -0
  239. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+4.end +0 -0
  240. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+5.end +0 -0
  241. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+6.end +0 -0
  242. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+7.end +0 -0
  243. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+8.end +0 -0
  244. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+9.end +0 -0
  245. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.end +0 -0
  246. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model.end +0 -0
  247. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+1.end +0 -0
  248. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+10.end +0 -0
  249. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+11.end +0 -0
  250. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+2.end +0 -0
  251. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+3.end +0 -0
  252. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+4.end +0 -0
  253. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+5.end +0 -0
  254. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+6.end +0 -0
  255. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+7.end +0 -0
  256. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+8.end +0 -0
  257. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+9.end +0 -0
  258. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+1.end +0 -0
  259. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+10.end +0 -0
  260. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+11.end +0 -0
  261. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+2.end +0 -0
  262. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+3.end +0 -0
  263. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+4.end +0 -0
  264. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+5.end +0 -0
  265. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+6.end +0 -0
  266. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+7.end +0 -0
  267. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+8.end +0 -0
  268. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+9.end +0 -0
  269. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+1.end +0 -0
  270. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+10.end +0 -0
  271. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+11.end +0 -0
  272. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+2.end +0 -0
  273. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+3.end +0 -0
  274. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+4.end +0 -0
  275. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+5.end +0 -0
  276. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+6.end +0 -0
  277. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+7.end +0 -0
  278. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+8.end +0 -0
  279. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+9.end +0 -0
  280. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+1.end +0 -0
  281. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+10.end +0 -0
  282. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+11.end +0 -0
  283. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+2.end +0 -0
  284. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+3.end +0 -0
  285. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+4.end +0 -0
  286. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+5.end +0 -0
  287. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+6.end +0 -0
  288. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+7.end +0 -0
  289. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+8.end +0 -0
  290. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+9.end +0 -0
  291. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+1.end +0 -0
  292. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+10.end +0 -0
  293. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+11.end +0 -0
  294. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+2.end +0 -0
  295. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+3.end +0 -0
  296. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+4.end +0 -0
  297. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+5.end +0 -0
  298. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+6.end +0 -0
  299. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+7.end +0 -0
  300. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+8.end +0 -0
  301. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+9.end +0 -0
  302. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+1.end +0 -0
  303. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+10.end +0 -0
  304. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+11.end +0 -0
  305. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+2.end +0 -0
  306. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+3.end +0 -0
  307. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+4.end +0 -0
  308. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+5.end +0 -0
  309. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+6.end +0 -0
  310. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+7.end +0 -0
  311. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+8.end +0 -0
  312. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+9.end +0 -0
  313. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+1.end +0 -0
  314. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+10.end +0 -0
  315. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+11.end +0 -0
  316. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+2.end +0 -0
  317. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+3.end +0 -0
  318. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+4.end +0 -0
  319. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+5.end +0 -0
  320. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+6.end +0 -0
  321. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+7.end +0 -0
  322. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+8.end +0 -0
  323. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+9.end +0 -0
  324. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+1.end +0 -0
  325. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+10.end +0 -0
  326. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+11.end +0 -0
  327. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+2.end +0 -0
  328. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+3.end +0 -0
  329. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+4.end +0 -0
  330. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+5.end +0 -0
  331. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+6.end +0 -0
  332. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+7.end +0 -0
  333. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+8.end +0 -0
  334. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+9.end +0 -0
  335. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.end +0 -0
  336. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/netcdf_concat.end +0 -0
  337. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+1.end +0 -0
  338. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+10.end +0 -0
  339. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+11.end +0 -0
  340. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+2.end +0 -0
  341. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+3.end +0 -0
  342. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+4.end +0 -0
  343. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+5.end +0 -0
  344. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+6.end +0 -0
  345. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+7.end +0 -0
  346. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+8.end +0 -0
  347. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+9.end +0 -0
  348. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+1.end +0 -0
  349. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+10.end +0 -0
  350. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+11.end +0 -0
  351. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+2.end +0 -0
  352. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+3.end +0 -0
  353. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+4.end +0 -0
  354. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+5.end +0 -0
  355. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+6.end +0 -0
  356. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+7.end +0 -0
  357. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+8.end +0 -0
  358. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+9.end +0 -0
  359. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+1.end +0 -0
  360. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+10.end +0 -0
  361. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+11.end +0 -0
  362. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+2.end +0 -0
  363. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+3.end +0 -0
  364. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+4.end +0 -0
  365. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+5.end +0 -0
  366. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+6.end +0 -0
  367. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+7.end +0 -0
  368. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+8.end +0 -0
  369. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+9.end +0 -0
  370. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+1.end +0 -0
  371. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+10.end +0 -0
  372. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+11.end +0 -0
  373. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+2.end +0 -0
  374. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+3.end +0 -0
  375. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+4.end +0 -0
  376. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+5.end +0 -0
  377. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+6.end +0 -0
  378. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+7.end +0 -0
  379. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+8.end +0 -0
  380. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+9.end +0 -0
  381. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.end +0 -0
  382. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+1.end +0 -0
  383. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+10.end +0 -0
  384. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+11.end +0 -0
  385. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+2.end +0 -0
  386. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+3.end +0 -0
  387. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+4.end +0 -0
  388. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+5.end +0 -0
  389. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+6.end +0 -0
  390. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+7.end +0 -0
  391. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+8.end +0 -0
  392. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+9.end +0 -0
  393. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+1.end +0 -0
  394. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+10.end +0 -0
  395. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+11.end +0 -0
  396. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+2.end +0 -0
  397. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+3.end +0 -0
  398. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+4.end +0 -0
  399. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+5.end +0 -0
  400. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+6.end +0 -0
  401. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+7.end +0 -0
  402. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+8.end +0 -0
  403. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+9.end +0 -0
  404. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+1.end +0 -0
  405. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+10.end +0 -0
  406. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+11.end +0 -0
  407. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+2.end +0 -0
  408. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+3.end +0 -0
  409. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+4.end +0 -0
  410. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+5.end +0 -0
  411. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+6.end +0 -0
  412. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+7.end +0 -0
  413. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+8.end +0 -0
  414. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+9.end +0 -0
  415. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+1.end +0 -0
  416. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+10.end +0 -0
  417. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+11.end +0 -0
  418. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+2.end +0 -0
  419. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+3.end +0 -0
  420. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+4.end +0 -0
  421. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+5.end +0 -0
  422. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+6.end +0 -0
  423. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+7.end +0 -0
  424. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+8.end +0 -0
  425. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+9.end +0 -0
  426. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+1.end +0 -0
  427. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+10.end +0 -0
  428. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+11.end +0 -0
  429. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+2.end +0 -0
  430. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+3.end +0 -0
  431. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+4.end +0 -0
  432. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+5.end +0 -0
  433. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+6.end +0 -0
  434. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+7.end +0 -0
  435. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+8.end +0 -0
  436. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+9.end +0 -0
  437. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.end +0 -0
  438. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc.end +0 -0
  439. cimsi-0.7.8/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm.end +0 -0
  440. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/clean_exp_workspace.waiting +0 -0
  441. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop/clean_loop_files.+1.waiting +0 -0
  442. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop/model_run.+0.submit +0 -0
  443. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop/model_run.+1.abort.stop +0 -0
  444. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop.+1.abort.stop +0 -0
  445. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop.abort.stop +0 -0
  446. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model.abort.stop +0 -0
  447. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/diagnostics_loop.+1.waiting +0 -0
  448. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/diagnostics_loop.begin +0 -0
  449. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/netcdf_concat.waiting +0 -0
  450. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/rebuild_loop.+1.waiting +0 -0
  451. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/rebuild_loop.begin +0 -0
  452. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/wrap_up_loop.+1.waiting +0 -0
  453. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/wrap_up_loop.begin +0 -0
  454. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc.begin +0 -0
  455. cimsi-0.7.8/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm.abort.stop +0 -0
  456. cimsi-0.7.8/tests/test_status/test_status.py +126 -0
  457. cimsi-0.7.8/tests/test_time_manager/dont_test_chunk_manager.py +102 -0
  458. cimsi-0.7.8/tests/test_time_manager/dont_test_test_time_manager.py +71 -0
  459. cimsi-0.7.8/tests/test_user_interface/test_setup_manager.py +153 -0
  460. cimsi-0.7.8/uv.lock +918 -0
@@ -0,0 +1,21 @@
1
+ # http://editorconfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ indent_style = space
7
+ indent_size = 4
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+ charset = utf-8
11
+ end_of_line = lf
12
+
13
+ [*.bat]
14
+ indent_style = tab
15
+ end_of_line = crlf
16
+
17
+ [LICENSE]
18
+ insert_final_newline = false
19
+
20
+ [Makefile]
21
+ indent_style = tab
cimsi-0.7.8/.gitignore ADDED
@@ -0,0 +1,112 @@
1
+
2
+ # local version tracking
3
+ _version.py
4
+
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ *.py[cod]
8
+ *$py.class
9
+
10
+ # C extensions
11
+ *.so
12
+
13
+ # Distribution / packaging
14
+ .Python
15
+ env/
16
+ build/
17
+ develop-eggs/
18
+ dist/
19
+ downloads/
20
+ eggs/
21
+ .eggs/
22
+ lib/
23
+ lib64/
24
+ parts/
25
+ sdist/
26
+ var/
27
+ wheels/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ # Installer logs
39
+ pip-log.txt
40
+ pip-delete-this-directory.txt
41
+
42
+ # Unit test / coverage reports
43
+ htmlcov/
44
+ .tox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *.cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+
62
+ # Flask stuff:
63
+ instance/
64
+ .webassets-cache
65
+
66
+ # Scrapy stuff:
67
+ .scrapy
68
+
69
+ # Sphinx documentation
70
+ docs/_build/
71
+
72
+ # PyBuilder
73
+ target/
74
+
75
+ # Jupyter Notebook
76
+ .ipynb_checkpoints
77
+
78
+ # pyenv
79
+ .python-version
80
+
81
+ # celery beat schedule file
82
+ celerybeat-schedule
83
+
84
+ # SageMath parsed files
85
+ *.sage.py
86
+
87
+ # dotenv
88
+ .env
89
+
90
+ # virtualenv
91
+ .venv
92
+ venv/
93
+ ENV/
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
+ # IDE settings
109
+ .vscode/
110
+
111
+ # Vi swap files
112
+ *.swp
@@ -0,0 +1,82 @@
1
+ stages:
2
+ - test
3
+ - deploy
4
+ - publish
5
+
6
+ variables:
7
+ GIT_DEPTH: "0"
8
+ UV_LINK_MODE: copy
9
+ UV_PUBLISH_TOKEN: $UV_PUBLISH_TOKEN
10
+ CI_RUN_PATH: "/home/scrd105/s5-runpath/imsi-ci/$CI_JOB_ID"
11
+ IMSI_DEPLOYED_PYTHON_VER: "3.10"
12
+ IMSI_DEPLOY_PATH: "/home/scrd105/canesm_libs/imsi/"
13
+ UV_BINARY: "/home/scrd102/.local/bin/uv"
14
+ CANESM_REF_REPO: "/home/scrd102/cccma_libs/canesm/" # change once we have CD for CanESM
15
+
16
+ before_script:
17
+ - git fetch --tags --prune
18
+ # create run path where the job will run
19
+ - mkdir -p ${CI_RUN_PATH}
20
+ # make the deploy location
21
+ - mkdir -p ${IMSI_DEPLOY_PATH}
22
+ - mkdir -p ${IMSI_DEPLOY_PATH}/latest
23
+
24
+ .test_job_template: &test_job_template
25
+ # note that tests will run on the defined branch, repo, model and experiment
26
+ # in the .env.test file
27
+ script: |
28
+ git clone "$CI_PROJECT_DIR" "$CI_RUN_PATH"
29
+ git fetch --unshallow --tags || git fetch --tags
30
+
31
+ # Ensure cleanup happens even if tests fail
32
+ trap 'echo "Cleaning up CI path"; rm -rf ${CI_RUN_PATH}' EXIT
33
+
34
+ # move into runpath
35
+ cd ${CI_RUN_PATH}
36
+
37
+ # setup environment
38
+ ${UV_BINARY} venv --python=${PYTHON_VERSION}
39
+ source .venv/bin/activate && ${UV_BINARY} pip install pip
40
+ pip install --upgrade setuptools
41
+ pip install $CI_PROJECT_DIR[tests]
42
+
43
+ # Run tests
44
+ coverage run -m pytest ${CI_PROJECT_DIR}/tests/
45
+ coverage report -m
46
+ coverage xml -o coverage.xml
47
+ coverage: '/TOTAL\s+[0-9]+\s+[0-9]+\s+([0-9]+)%/'
48
+
49
+ .matrix_job_template: &matrix_job_template
50
+ <<: *test_job_template
51
+ parallel:
52
+ matrix:
53
+ - PYTHON_VERSION: ['3.10', '3.11', '3.12', '3.13']
54
+
55
+ test:
56
+ stage: test
57
+ <<: *matrix_job_template
58
+ rules:
59
+ - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
60
+ - if: '$CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"'
61
+
62
+ deploy:
63
+ stage: deploy
64
+ before_script:
65
+ - git fetch --unshallow --tags || git fetch --tags
66
+ script: |
67
+ cd ${IMSI_DEPLOY_PATH}
68
+ # pass Python version, tag, and deploy path as arguments
69
+ source ${CI_PROJECT_DIR}/tests/deploy_imsi_env.sh "${IMSI_DEPLOYED_PYTHON_VER}" "${CI_COMMIT_TAG}" "${IMSI_DEPLOY_PATH}" "${CANESM_REF_REPO}"
70
+ rules:
71
+ - if: $CI_COMMIT_TAG
72
+
73
+ publish:
74
+ stage: publish
75
+ before_script:
76
+ - git fetch --unshallow --tags || git fetch --tags
77
+ script:
78
+ - ${UV_BINARY} build
79
+ - ${UV_BINARY} publish
80
+ rules:
81
+ - if: $CI_COMMIT_TAG
82
+
@@ -0,0 +1,23 @@
1
+ # Read the Docs configuration file for Sphinx projects
2
+ # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
3
+
4
+ # Required
5
+ version: 2
6
+
7
+ # Set the OS, Python version and other tools you might need
8
+ build:
9
+ os: ubuntu-22.04
10
+ tools:
11
+ python: "3.12"
12
+
13
+ # Build documentation in the "docs/" directory with Sphinx
14
+ sphinx:
15
+ configuration: docs/conf.py
16
+
17
+
18
+ python:
19
+ install:
20
+ - method: pip
21
+ path: .
22
+ extra_requirements:
23
+ - docs
cimsi-0.7.8/LICENSE ADDED
@@ -0,0 +1 @@
1
+ [Open Government License - Canada version 2.0](https://open.canada.ca/en/open-government-licence-canada)
@@ -0,0 +1,10 @@
1
+ include CONTRIBUTING.rst
2
+ include HISTORY.rst
3
+ include LICENSE
4
+ include README.rst
5
+
6
+ recursive-include tests *
7
+ recursive-exclude * __pycache__
8
+ recursive-exclude * *.py[co]
9
+
10
+ recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif
cimsi-0.7.8/Makefile ADDED
@@ -0,0 +1,85 @@
1
+ .PHONY: clean clean-test clean-pyc clean-build docs help
2
+ .DEFAULT_GOAL := help
3
+
4
+ define BROWSER_PYSCRIPT
5
+ import os, webbrowser, sys
6
+
7
+ from urllib.request import pathname2url
8
+
9
+ webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1])))
10
+ endef
11
+ export BROWSER_PYSCRIPT
12
+
13
+ define PRINT_HELP_PYSCRIPT
14
+ import re, sys
15
+
16
+ for line in sys.stdin:
17
+ match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line)
18
+ if match:
19
+ target, help = match.groups()
20
+ print("%-20s %s" % (target, help))
21
+ endef
22
+ export PRINT_HELP_PYSCRIPT
23
+
24
+ BROWSER := python -c "$$BROWSER_PYSCRIPT"
25
+
26
+ help:
27
+ @python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST)
28
+
29
+ clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts
30
+
31
+ clean-build: ## remove build artifacts
32
+ rm -fr build/
33
+ rm -fr dist/
34
+ rm -fr .eggs/
35
+ find . -name '*.egg-info' -exec rm -fr {} +
36
+ find . -name '*.egg' -exec rm -f {} +
37
+
38
+ clean-pyc: ## remove Python file artifacts
39
+ find . -name '*.pyc' -exec rm -f {} +
40
+ find . -name '*.pyo' -exec rm -f {} +
41
+ find . -name '*~' -exec rm -f {} +
42
+ find . -name '__pycache__' -exec rm -fr {} +
43
+
44
+ clean-test: ## remove test and coverage artifacts
45
+ rm -fr .tox/
46
+ rm -f .coverage
47
+ rm -fr htmlcov/
48
+ rm -fr .pytest_cache
49
+
50
+ lint: ## check style with flake8
51
+ flake8 imsi tests
52
+
53
+ test: ## run tests quickly with the default Python
54
+ python setup.py test
55
+
56
+ test-all: ## run tests on every Python version with tox
57
+ tox
58
+
59
+ coverage: ## check code coverage quickly with the default Python
60
+ coverage run --source imsi setup.py test
61
+ coverage report -m
62
+ coverage html
63
+ $(BROWSER) htmlcov/index.html
64
+
65
+ docs: ## generate Sphinx HTML documentation, including API docs
66
+ rm -f docs/imsi.rst
67
+ rm -f docs/modules.rst
68
+ sphinx-apidoc -o docs/ imsi
69
+ $(MAKE) -C docs clean
70
+ $(MAKE) -C docs html
71
+ $(BROWSER) docs/_build/html/index.html
72
+
73
+ servedocs: docs ## compile the docs watching for changes
74
+ watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D .
75
+
76
+ release: dist ## package and upload a release
77
+ twine upload dist/*
78
+
79
+ dist: clean ## builds source and wheel package
80
+ python setup.py sdist
81
+ python setup.py bdist_wheel
82
+ ls -l dist
83
+
84
+ install: clean ## install the package to the active Python's site-packages
85
+ python setup.py install
cimsi-0.7.8/PKG-INFO ADDED
@@ -0,0 +1,80 @@
1
+ Metadata-Version: 2.4
2
+ Name: cimsi
3
+ Version: 0.7.8
4
+ Summary: Integrated Modelling System Infrastructure (IMSI) is a comprehensive software project used to download, configure, build and run the suite of models in the CCCma Integrated Modelling System.
5
+ Author: CCCma Technical Development Team
6
+ License: OGL-Canada-2.0
7
+ Project-URL: Homepage, https://imsi.readthedocs.io/en/latest/
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Natural Language :: English
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: isodate
15
+ Requires-Dist: cftime
16
+ Requires-Dist: xarray
17
+ Requires-Dist: dataclasses
18
+ Requires-Dist: json5
19
+ Requires-Dist: click
20
+ Requires-Dist: pydantic
21
+ Requires-Dist: omegaconf
22
+ Requires-Dist: pandas
23
+ Requires-Dist: rich
24
+ Requires-Dist: pyarrow
25
+ Requires-Dist: python-dotenv
26
+ Requires-Dist: questionary
27
+ Provides-Extra: tests
28
+ Requires-Dist: coverage; extra == "tests"
29
+ Requires-Dist: pytest; extra == "tests"
30
+ Requires-Dist: python-dotenv; extra == "tests"
31
+ Provides-Extra: docs
32
+ Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
33
+ Requires-Dist: sphinx-rtd-theme==1.2.2; extra == "docs"
34
+ Requires-Dist: recommonmark; extra == "docs"
35
+
36
+ # Integrated Modelling System Infrastructure (IMSI)
37
+
38
+ [![Documentation Status](https://readthedocs.org/projects/imsi/badge/?version=latest)](https://imsi.readthedocs.io/en/latest/?version=latest)
39
+ ![Pipeline Status](https://gitlab.com/cccma/imsi/badges/main/pipeline.svg)
40
+ ![Coverage Status](https://gitlab.com/cccma/imsi/badges/main/coverage.svg)
41
+
42
+ The **Integrated Modelling System Infrastructure (IMSI)** is a comprehensive Python-based package used to download, configure, build, and run the suite of models in the CCCma Integrated Modelling System.
43
+
44
+ - **Documentation:** [https://imsi.readthedocs.io](https://imsi.readthedocs.io)
45
+
46
+ ---
47
+
48
+ ## License
49
+
50
+ - [Open Government License – Canada version 2.0](https://open.canada.ca/en/open-government-licence-canada)
51
+
52
+ ---
53
+
54
+ ## Installation
55
+
56
+ IMSI is normally pre-installed on support machines by technical staff, and users need only source an environment.
57
+
58
+ You can install IMSI manually as shown below. It is recommended to install it inside a Python or Conda virtual environment.
59
+
60
+ ```bash
61
+ python3 -m venv /path/to/new/virtual/environment
62
+ source /path/to/new/virtual/environment/activate
63
+ # conda create -n imsi-test python=3.10
64
+
65
+ git clone git@gitlab.science.gc.ca:CanESM/imsi.git
66
+ cd imsi
67
+ pip install . # for usage
68
+ # pip install -e . # for development
69
+ ```
70
+
71
+ ## Basic usage
72
+ ```bash
73
+ imsi -h # for help
74
+
75
+ # Setup a CanESM5.1 p1 CMIP6 piControl run
76
+ imsi setup --repo=https://gitlab.com/cccma/canesm --ver=develop_canesm --exp=cmip6-piControl --model=canesm51_p1 --runid=imsi-test
77
+ imsi build # compile executables
78
+ imsi save-restarts # save desired restarts
79
+ imsi submit # submit the run
80
+ ```
cimsi-0.7.8/README.md ADDED
@@ -0,0 +1,45 @@
1
+ # Integrated Modelling System Infrastructure (IMSI)
2
+
3
+ [![Documentation Status](https://readthedocs.org/projects/imsi/badge/?version=latest)](https://imsi.readthedocs.io/en/latest/?version=latest)
4
+ ![Pipeline Status](https://gitlab.com/cccma/imsi/badges/main/pipeline.svg)
5
+ ![Coverage Status](https://gitlab.com/cccma/imsi/badges/main/coverage.svg)
6
+
7
+ The **Integrated Modelling System Infrastructure (IMSI)** is a comprehensive Python-based package used to download, configure, build, and run the suite of models in the CCCma Integrated Modelling System.
8
+
9
+ - **Documentation:** [https://imsi.readthedocs.io](https://imsi.readthedocs.io)
10
+
11
+ ---
12
+
13
+ ## License
14
+
15
+ - [Open Government License – Canada version 2.0](https://open.canada.ca/en/open-government-licence-canada)
16
+
17
+ ---
18
+
19
+ ## Installation
20
+
21
+ IMSI is normally pre-installed on support machines by technical staff, and users need only source an environment.
22
+
23
+ You can install IMSI manually as shown below. It is recommended to install it inside a Python or Conda virtual environment.
24
+
25
+ ```bash
26
+ python3 -m venv /path/to/new/virtual/environment
27
+ source /path/to/new/virtual/environment/activate
28
+ # conda create -n imsi-test python=3.10
29
+
30
+ git clone git@gitlab.science.gc.ca:CanESM/imsi.git
31
+ cd imsi
32
+ pip install . # for usage
33
+ # pip install -e . # for development
34
+ ```
35
+
36
+ ## Basic usage
37
+ ```bash
38
+ imsi -h # for help
39
+
40
+ # Setup a CanESM5.1 p1 CMIP6 piControl run
41
+ imsi setup --repo=https://gitlab.com/cccma/canesm --ver=develop_canesm --exp=cmip6-piControl --model=canesm51_p1 --runid=imsi-test
42
+ imsi build # compile executables
43
+ imsi save-restarts # save desired restarts
44
+ imsi submit # submit the run
45
+ ```
@@ -0,0 +1,80 @@
1
+ Metadata-Version: 2.4
2
+ Name: cimsi
3
+ Version: 0.7.8
4
+ Summary: Integrated Modelling System Infrastructure (IMSI) is a comprehensive software project used to download, configure, build and run the suite of models in the CCCma Integrated Modelling System.
5
+ Author: CCCma Technical Development Team
6
+ License: OGL-Canada-2.0
7
+ Project-URL: Homepage, https://imsi.readthedocs.io/en/latest/
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Natural Language :: English
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Requires-Python: >=3.10
13
+ Description-Content-Type: text/markdown
14
+ Requires-Dist: isodate
15
+ Requires-Dist: cftime
16
+ Requires-Dist: xarray
17
+ Requires-Dist: dataclasses
18
+ Requires-Dist: json5
19
+ Requires-Dist: click
20
+ Requires-Dist: pydantic
21
+ Requires-Dist: omegaconf
22
+ Requires-Dist: pandas
23
+ Requires-Dist: rich
24
+ Requires-Dist: pyarrow
25
+ Requires-Dist: python-dotenv
26
+ Requires-Dist: questionary
27
+ Provides-Extra: tests
28
+ Requires-Dist: coverage; extra == "tests"
29
+ Requires-Dist: pytest; extra == "tests"
30
+ Requires-Dist: python-dotenv; extra == "tests"
31
+ Provides-Extra: docs
32
+ Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
33
+ Requires-Dist: sphinx-rtd-theme==1.2.2; extra == "docs"
34
+ Requires-Dist: recommonmark; extra == "docs"
35
+
36
+ # Integrated Modelling System Infrastructure (IMSI)
37
+
38
+ [![Documentation Status](https://readthedocs.org/projects/imsi/badge/?version=latest)](https://imsi.readthedocs.io/en/latest/?version=latest)
39
+ ![Pipeline Status](https://gitlab.com/cccma/imsi/badges/main/pipeline.svg)
40
+ ![Coverage Status](https://gitlab.com/cccma/imsi/badges/main/coverage.svg)
41
+
42
+ The **Integrated Modelling System Infrastructure (IMSI)** is a comprehensive Python-based package used to download, configure, build, and run the suite of models in the CCCma Integrated Modelling System.
43
+
44
+ - **Documentation:** [https://imsi.readthedocs.io](https://imsi.readthedocs.io)
45
+
46
+ ---
47
+
48
+ ## License
49
+
50
+ - [Open Government License – Canada version 2.0](https://open.canada.ca/en/open-government-licence-canada)
51
+
52
+ ---
53
+
54
+ ## Installation
55
+
56
+ IMSI is normally pre-installed on support machines by technical staff, and users need only source an environment.
57
+
58
+ You can install IMSI manually as shown below. It is recommended to install it inside a Python or Conda virtual environment.
59
+
60
+ ```bash
61
+ python3 -m venv /path/to/new/virtual/environment
62
+ source /path/to/new/virtual/environment/activate
63
+ # conda create -n imsi-test python=3.10
64
+
65
+ git clone git@gitlab.science.gc.ca:CanESM/imsi.git
66
+ cd imsi
67
+ pip install . # for usage
68
+ # pip install -e . # for development
69
+ ```
70
+
71
+ ## Basic usage
72
+ ```bash
73
+ imsi -h # for help
74
+
75
+ # Setup a CanESM5.1 p1 CMIP6 piControl run
76
+ imsi setup --repo=https://gitlab.com/cccma/canesm --ver=develop_canesm --exp=cmip6-piControl --model=canesm51_p1 --runid=imsi-test
77
+ imsi build # compile executables
78
+ imsi save-restarts # save desired restarts
79
+ imsi submit # submit the run
80
+ ```