cimsi 0.8.2__tar.gz → 0.8.2.dev1__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 (475) hide show
  1. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/.gitlab-ci.yml +3 -5
  2. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/CONTRIBUTING.md +1 -26
  3. {cimsi-0.8.2/cimsi.egg-info → cimsi-0.8.2.dev1}/PKG-INFO +1 -1
  4. {cimsi-0.8.2 → cimsi-0.8.2.dev1/cimsi.egg-info}/PKG-INFO +1 -1
  5. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/cimsi.egg-info/SOURCES.txt +0 -6
  6. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/developing_configurations.rst +2 -23
  7. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/imsi_tracking.rst +0 -1
  8. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/usage.rst +19 -10
  9. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/_version.py +3 -3
  10. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/core_cli.py +14 -22
  11. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/entry.py +0 -1
  12. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/config_manager.py +11 -27
  13. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/experiment.py +0 -1
  14. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/model.py +0 -1
  15. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/sequencer_interface/maestro_cap.py +4 -4
  16. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/disk_tools/disk_tools_cli.py +1 -0
  17. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/user_interface/ui_manager.py +49 -53
  18. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/user_interface/ui_utils.py +0 -29
  19. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/deploy_imsi_env.sh +11 -17
  20. cimsi-0.8.2/.gitlab/issue_templates/bug.md +0 -50
  21. cimsi-0.8.2/.gitlab/issue_templates/documentation.md +0 -26
  22. cimsi-0.8.2/.gitlab/issue_templates/enhancement.md +0 -48
  23. cimsi-0.8.2/.gitlab/issue_templates/feature.md +0 -48
  24. cimsi-0.8.2/tests/test_override/test_apply_options_overrides.py +0 -97
  25. cimsi-0.8.2/tests/test_override/test_parse_override_cli.py +0 -56
  26. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/.editorconfig +0 -0
  27. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/.gitignore +0 -0
  28. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/.gitlab/merge_request_templates/imsi_mr.md +0 -0
  29. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/.readthedocs.yaml +0 -0
  30. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/LICENSE +0 -0
  31. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/MANIFEST.in +0 -0
  32. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/Makefile +0 -0
  33. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/README.md +0 -0
  34. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/cimsi.egg-info/dependency_links.txt +0 -0
  35. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/cimsi.egg-info/entry_points.txt +0 -0
  36. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/cimsi.egg-info/requires.txt +0 -0
  37. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/cimsi.egg-info/top_level.txt +0 -0
  38. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/config/imsi-user-config.json +0 -0
  39. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/Makefile +0 -0
  40. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/_static/assets/favicon.ico +0 -0
  41. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/_static/assets/logo/logo_imsi_wordmark-400px-transparent.png +0 -0
  42. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/_static/custom.css +0 -0
  43. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/_static/imsi_configuration_hierarchy.png +0 -0
  44. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/_static/imsi_owl.png +0 -0
  45. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/_static/maestro_status.png +0 -0
  46. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/_static/setup-menu.gif +0 -0
  47. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/conf.py +0 -0
  48. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/config_breaking_changes.rst +0 -0
  49. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/design.md +0 -0
  50. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/developing_imsi.rst +0 -0
  51. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/ensemble.rst +0 -0
  52. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/imsi.rst +0 -0
  53. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/imsi_simple_shell_sequencer.rst +0 -0
  54. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/index.rst +0 -0
  55. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/installation.rst +0 -0
  56. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/make.bat +0 -0
  57. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/modules.rst +0 -0
  58. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/docs/requirements.txt +0 -0
  59. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/environment.yml +0 -0
  60. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/__init__.py +0 -0
  61. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/__init__.py +0 -0
  62. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/cli_snapshot_state.sh +0 -0
  63. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/core_tracking.py +0 -0
  64. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/lazy.py +0 -0
  65. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/post_install.py +0 -0
  66. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/cli/sectioned_group.py +0 -0
  67. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/.gitignore +0 -0
  68. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/__init__.py +0 -0
  69. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/databases.py +0 -0
  70. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/__init__.py +0 -0
  71. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/compiler.py +0 -0
  72. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/components.py +0 -0
  73. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/machine.py +0 -0
  74. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/post_processing.py +0 -0
  75. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/sequencing.py +0 -0
  76. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/setup_params.py +0 -0
  77. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/types.py +0 -0
  78. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/schema/utilities.py +0 -0
  79. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/config_manager/tests.py +0 -0
  80. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/imsi.site.rc +0 -0
  81. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/scheduler_interface/__init__.py +0 -0
  82. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/scheduler_interface/scheduler_tools.py +0 -0
  83. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/scheduler_interface/schedulers.py +0 -0
  84. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/sequencer_interface/__init__.py +0 -0
  85. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/sequencer_interface/iss_cap.py +0 -0
  86. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/sequencer_interface/maestro_status.py +0 -0
  87. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/sequencer_interface/sequencers.py +0 -0
  88. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/__init__.py +0 -0
  89. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/config_hooks_collection.py +0 -0
  90. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/config_hooks_collection_config.yaml +0 -0
  91. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/config_hooks_manager.py +0 -0
  92. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/parse_dbs_example.py +0 -0
  93. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/shell_comp_environment.py +0 -0
  94. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/shell_config_parameters.py +0 -0
  95. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/shell_diag_parameters.py +0 -0
  96. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/shell_inputs_outputs.py +0 -0
  97. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/shell_interface_manager.py +0 -0
  98. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/shell_interface_utilities.py +0 -0
  99. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/shell_interface/shell_timing_vars.py +0 -0
  100. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/__init__.py +0 -0
  101. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/disk_tools/__init__.py +0 -0
  102. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/disk_tools/disk_tools.py +0 -0
  103. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/README.md +0 -0
  104. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/__init__.py +0 -0
  105. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/all_supported_exp.yaml +0 -0
  106. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/config/example_table.csv +0 -0
  107. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/config/example_table.yaml +0 -0
  108. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/config.py +0 -0
  109. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/config.yaml +0 -0
  110. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/ensemble_cli.py +0 -0
  111. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/ensemble_manager.py +0 -0
  112. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/table_utils/__init__.py +0 -0
  113. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/table_utils/data_model.py +0 -0
  114. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/table_utils/table_model.py +0 -0
  115. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/ensemble/table_utils/table_utils.py +0 -0
  116. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/list/__init__.py +0 -0
  117. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/list/list_cli.py +0 -0
  118. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/list/list_manager.py +0 -0
  119. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/menu/menu_cli.py +0 -0
  120. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/menu/menu_helpers.py +0 -0
  121. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/simple_sequencer/__init__.py +0 -0
  122. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/simple_sequencer/iss.py +0 -0
  123. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/simple_sequencer/iss_cli.py +0 -0
  124. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/simple_sequencer/iss_globals.py +0 -0
  125. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/time_manager/__init__.py +0 -0
  126. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/time_manager/cftime_utils.py +0 -0
  127. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/time_manager/chunk_manager.py +0 -0
  128. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/time_manager/time_manager.py +0 -0
  129. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/time_manager/timer_cli.py +0 -0
  130. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/tools/validate/validate_cli.py +0 -0
  131. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/user_interface/__init__.py +0 -0
  132. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/user_interface/setup_manager.py +0 -0
  133. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/utils/__init__.py +0 -0
  134. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/utils/dict_tools.py +0 -0
  135. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/utils/general.py +0 -0
  136. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/utils/git_tools.py +0 -0
  137. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/utils/multiple_inheritance_test.py +0 -0
  138. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/utils/nml_tools.py +0 -0
  139. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/imsi/utils/repo_query_status.sh +0 -0
  140. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/logo.png +0 -0
  141. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/pyproject.toml +0 -0
  142. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/setup.cfg +0 -0
  143. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/.env.test +0 -0
  144. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/README.md +0 -0
  145. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/__init__.py +0 -0
  146. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/conftest.py +0 -0
  147. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_cli/__init__.py +0 -0
  148. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_cli/test_build.py +0 -0
  149. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_cli/test_core.py +0 -0
  150. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_cli/test_entry.py +0 -0
  151. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_disk_tools/__init__.py +0 -0
  152. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_disk_tools/imsi_configuration_imsi-test.yaml +0 -0
  153. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_disk_tools/test_clean.py +0 -0
  154. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_cli.py +0 -0
  155. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/config.yaml +0 -0
  156. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/config_csv.yaml +0 -0
  157. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/config_txt.yaml +0 -0
  158. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/config_yaml.yaml +0 -0
  159. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/example.csv +0 -0
  160. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/example.txt +0 -0
  161. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/example.yaml +0 -0
  162. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_comprehensive/test_run_comprehensive.py +0 -0
  163. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_config.py +0 -0
  164. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/config.yaml +0 -0
  165. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/config_table.yaml +0 -0
  166. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/config_table_identical_keypaths.yaml +0 -0
  167. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_broadcasted_config.py +0 -0
  168. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config.csv +0 -0
  169. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config.txt +0 -0
  170. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config_alias.csv +0 -0
  171. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config_alias.txt +0 -0
  172. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config_alias_nested.csv +0 -0
  173. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config_alias_nested.txt +0 -0
  174. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config_alias_nested_conflict.csv +0 -0
  175. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config_alias_nested_conflict.txt +0 -0
  176. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_config_unsupported_file_type.db +0 -0
  177. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_csv_table_vars.py +0 -0
  178. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_ensemble_level_vars.py +0 -0
  179. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_member_level_vars.py +0 -0
  180. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_table_utils.py +0 -0
  181. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_text_table_vars.py +0 -0
  182. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_unique_runids.py +0 -0
  183. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_yaml_table_vars.py +0 -0
  184. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_table_utils/test_yaml_vars.py +0 -0
  185. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_ensemble/test_utils.py +0 -0
  186. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_list/test_list_cli.py +0 -0
  187. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_list/test_list_manager.py +0 -0
  188. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_compiler.py +0 -0
  189. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_components.py +0 -0
  190. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_experiment.py +0 -0
  191. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_machine.py +0 -0
  192. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_model.py +0 -0
  193. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_postproc.py +0 -0
  194. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_sequencing.py +0 -0
  195. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_schema/test_setup_params.py +0 -0
  196. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/clean_exp_workspace.waiting +0 -0
  197. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/clean_loop_files.+1.end +0 -0
  198. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/clean_loop_files.+2.waiting +0 -0
  199. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/model_run.+1.end +0 -0
  200. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop/model_run.+2.begin +0 -0
  201. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.+1.end +0 -0
  202. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.+2.begin +0 -0
  203. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.+3.begin +0 -0
  204. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model/model_loop.begin +0 -0
  205. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/model.begin +0 -0
  206. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/agcm_diag.+1.begin +0 -0
  207. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/clean_loop_files.+1.waiting +0 -0
  208. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/ocean_diag.+1.end +0 -0
  209. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+1.begin +0 -0
  210. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+1.end +0 -0
  211. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop/runtime_diagnostics.+1.begin +0 -0
  212. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop.+1.begin +0 -0
  213. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/diagnostics_loop.begin +0 -0
  214. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/netcdf_concat.waiting +0 -0
  215. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop/clean_loop_files.+1.end +0 -0
  216. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+1.end +0 -0
  217. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+1.end +0 -0
  218. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop.+1.end +0 -0
  219. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop.+2.waiting +0 -0
  220. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/rebuild_loop.begin +0 -0
  221. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/wrap_up_loop.+1.waiting +0 -0
  222. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc/wrap_up_loop.begin +0 -0
  223. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm/postproc.begin +0 -0
  224. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/canesm.begin +0 -0
  225. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_begin/sequencer/sequencing/status/12345678910123/multi_indexer.py +0 -0
  226. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/clean_exp_workspace.end +0 -0
  227. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+1.end +0 -0
  228. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+10.end +0 -0
  229. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+11.end +0 -0
  230. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+2.end +0 -0
  231. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+3.end +0 -0
  232. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+4.end +0 -0
  233. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+5.end +0 -0
  234. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+6.end +0 -0
  235. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+7.end +0 -0
  236. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+8.end +0 -0
  237. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/clean_loop_files.+9.end +0 -0
  238. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+1.end +0 -0
  239. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+10.end +0 -0
  240. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+11.end +0 -0
  241. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+2.end +0 -0
  242. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+3.end +0 -0
  243. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+4.end +0 -0
  244. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+5.end +0 -0
  245. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+6.end +0 -0
  246. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+7.end +0 -0
  247. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+8.end +0 -0
  248. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop/model_run.+9.end +0 -0
  249. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+1.end +0 -0
  250. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+10.end +0 -0
  251. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+11.end +0 -0
  252. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+2.end +0 -0
  253. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+3.end +0 -0
  254. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+4.end +0 -0
  255. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+5.end +0 -0
  256. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+6.end +0 -0
  257. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+7.end +0 -0
  258. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+8.end +0 -0
  259. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.+9.end +0 -0
  260. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model/model_loop.end +0 -0
  261. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/model.end +0 -0
  262. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+1.end +0 -0
  263. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+10.end +0 -0
  264. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+11.end +0 -0
  265. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+2.end +0 -0
  266. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+3.end +0 -0
  267. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+4.end +0 -0
  268. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+5.end +0 -0
  269. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+6.end +0 -0
  270. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+7.end +0 -0
  271. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+8.end +0 -0
  272. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/agcm_diag.+9.end +0 -0
  273. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+1.end +0 -0
  274. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+10.end +0 -0
  275. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+11.end +0 -0
  276. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+2.end +0 -0
  277. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+3.end +0 -0
  278. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+4.end +0 -0
  279. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+5.end +0 -0
  280. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+6.end +0 -0
  281. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+7.end +0 -0
  282. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+8.end +0 -0
  283. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/clean_loop_files.+9.end +0 -0
  284. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+1.end +0 -0
  285. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+10.end +0 -0
  286. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+11.end +0 -0
  287. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+2.end +0 -0
  288. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+3.end +0 -0
  289. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+4.end +0 -0
  290. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+5.end +0 -0
  291. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+6.end +0 -0
  292. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+7.end +0 -0
  293. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+8.end +0 -0
  294. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/ocean_diag.+9.end +0 -0
  295. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+1.end +0 -0
  296. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+10.end +0 -0
  297. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+11.end +0 -0
  298. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+2.end +0 -0
  299. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+3.end +0 -0
  300. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+4.end +0 -0
  301. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+5.end +0 -0
  302. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+6.end +0 -0
  303. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+7.end +0 -0
  304. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+8.end +0 -0
  305. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/agcm_runtime_diag.+9.end +0 -0
  306. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+1.end +0 -0
  307. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+10.end +0 -0
  308. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+11.end +0 -0
  309. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+2.end +0 -0
  310. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+3.end +0 -0
  311. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+4.end +0 -0
  312. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+5.end +0 -0
  313. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+6.end +0 -0
  314. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+7.end +0 -0
  315. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+8.end +0 -0
  316. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics/ocean_runtime_diag.+9.end +0 -0
  317. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+1.end +0 -0
  318. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+10.end +0 -0
  319. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+11.end +0 -0
  320. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+2.end +0 -0
  321. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+3.end +0 -0
  322. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+4.end +0 -0
  323. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+5.end +0 -0
  324. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+6.end +0 -0
  325. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+7.end +0 -0
  326. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+8.end +0 -0
  327. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/runtime_diagnostics.+9.end +0 -0
  328. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+1.end +0 -0
  329. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+10.end +0 -0
  330. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+11.end +0 -0
  331. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+2.end +0 -0
  332. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+3.end +0 -0
  333. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+4.end +0 -0
  334. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+5.end +0 -0
  335. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+6.end +0 -0
  336. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+7.end +0 -0
  337. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+8.end +0 -0
  338. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop/split_agcm_files.+9.end +0 -0
  339. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+1.end +0 -0
  340. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+10.end +0 -0
  341. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+11.end +0 -0
  342. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+2.end +0 -0
  343. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+3.end +0 -0
  344. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+4.end +0 -0
  345. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+5.end +0 -0
  346. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+6.end +0 -0
  347. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+7.end +0 -0
  348. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+8.end +0 -0
  349. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.+9.end +0 -0
  350. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/diagnostics_loop.end +0 -0
  351. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/netcdf_concat.end +0 -0
  352. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+1.end +0 -0
  353. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+10.end +0 -0
  354. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+11.end +0 -0
  355. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+2.end +0 -0
  356. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+3.end +0 -0
  357. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+4.end +0 -0
  358. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+5.end +0 -0
  359. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+6.end +0 -0
  360. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+7.end +0 -0
  361. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+8.end +0 -0
  362. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/clean_loop_files.+9.end +0 -0
  363. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+1.end +0 -0
  364. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+10.end +0 -0
  365. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+11.end +0 -0
  366. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+2.end +0 -0
  367. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+3.end +0 -0
  368. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+4.end +0 -0
  369. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+5.end +0 -0
  370. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+6.end +0 -0
  371. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+7.end +0 -0
  372. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+8.end +0 -0
  373. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_agcm_tiles.+9.end +0 -0
  374. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+1.end +0 -0
  375. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+10.end +0 -0
  376. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+11.end +0 -0
  377. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+2.end +0 -0
  378. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+3.end +0 -0
  379. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+4.end +0 -0
  380. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+5.end +0 -0
  381. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+6.end +0 -0
  382. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+7.end +0 -0
  383. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+8.end +0 -0
  384. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop/rebuild_ocean_tiles.+9.end +0 -0
  385. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+1.end +0 -0
  386. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+10.end +0 -0
  387. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+11.end +0 -0
  388. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+2.end +0 -0
  389. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+3.end +0 -0
  390. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+4.end +0 -0
  391. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+5.end +0 -0
  392. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+6.end +0 -0
  393. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+7.end +0 -0
  394. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+8.end +0 -0
  395. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.+9.end +0 -0
  396. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/rebuild_loop.end +0 -0
  397. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+1.end +0 -0
  398. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+10.end +0 -0
  399. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+11.end +0 -0
  400. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+2.end +0 -0
  401. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+3.end +0 -0
  402. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+4.end +0 -0
  403. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+5.end +0 -0
  404. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+6.end +0 -0
  405. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+7.end +0 -0
  406. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+8.end +0 -0
  407. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/archive_data.+9.end +0 -0
  408. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+1.end +0 -0
  409. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+10.end +0 -0
  410. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+11.end +0 -0
  411. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+2.end +0 -0
  412. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+3.end +0 -0
  413. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+4.end +0 -0
  414. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+5.end +0 -0
  415. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+6.end +0 -0
  416. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+7.end +0 -0
  417. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+8.end +0 -0
  418. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_loop_files.+9.end +0 -0
  419. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+1.end +0 -0
  420. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+10.end +0 -0
  421. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+11.end +0 -0
  422. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+2.end +0 -0
  423. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+3.end +0 -0
  424. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+4.end +0 -0
  425. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+5.end +0 -0
  426. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+6.end +0 -0
  427. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+7.end +0 -0
  428. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+8.end +0 -0
  429. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/clean_run_files.+9.end +0 -0
  430. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+1.end +0 -0
  431. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+10.end +0 -0
  432. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+11.end +0 -0
  433. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+2.end +0 -0
  434. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+3.end +0 -0
  435. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+4.end +0 -0
  436. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+5.end +0 -0
  437. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+6.end +0 -0
  438. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+7.end +0 -0
  439. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+8.end +0 -0
  440. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop/netcdf_conv.+9.end +0 -0
  441. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+1.end +0 -0
  442. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+10.end +0 -0
  443. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+11.end +0 -0
  444. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+2.end +0 -0
  445. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+3.end +0 -0
  446. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+4.end +0 -0
  447. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+5.end +0 -0
  448. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+6.end +0 -0
  449. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+7.end +0 -0
  450. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+8.end +0 -0
  451. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.+9.end +0 -0
  452. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc/wrap_up_loop.end +0 -0
  453. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm/postproc.end +0 -0
  454. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_end/sequencer/sequencing/status/20250224220900/canesm.end +0 -0
  455. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/clean_exp_workspace.waiting +0 -0
  456. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop/clean_loop_files.+1.waiting +0 -0
  457. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop/model_run.+0.submit +0 -0
  458. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop/model_run.+1.abort.stop +0 -0
  459. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop.+1.abort.stop +0 -0
  460. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model/model_loop.abort.stop +0 -0
  461. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/model.abort.stop +0 -0
  462. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/diagnostics_loop.+1.waiting +0 -0
  463. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/diagnostics_loop.begin +0 -0
  464. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/netcdf_concat.waiting +0 -0
  465. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/rebuild_loop.+1.waiting +0 -0
  466. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/rebuild_loop.begin +0 -0
  467. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/wrap_up_loop.+1.waiting +0 -0
  468. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc/wrap_up_loop.begin +0 -0
  469. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm/postproc.begin +0 -0
  470. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/mock_stop/sequencer/sequencing/status/20250222000900/canesm.abort.stop +0 -0
  471. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_status/test_status.py +0 -0
  472. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_time_manager/dont_test_chunk_manager.py +0 -0
  473. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_time_manager/dont_test_test_time_manager.py +0 -0
  474. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/tests/test_user_interface/test_setup_manager.py +0 -0
  475. {cimsi-0.8.2 → cimsi-0.8.2.dev1}/uv.lock +0 -0
@@ -21,9 +21,7 @@ before_script:
21
21
  - mkdir -p "${CI_JOB_RUN_DIR}"
22
22
  - git clone "${CI_REPOSITORY_URL}" "${CI_JOB_RUN_DIR}"
23
23
  - cd "${CI_JOB_RUN_DIR}"
24
- # this will checkout the tag name if assigned
25
- # if not, the SHA of this commit will be used
26
- - git checkout "${CI_COMMIT_TAG:-$CI_COMMIT_SHA}"
24
+ - git checkout "${CI_COMMIT_SHA}"
27
25
 
28
26
 
29
27
  after_script:
@@ -125,9 +123,10 @@ deploy:
125
123
  script: |
126
124
  # make the deploy location
127
125
  mkdir -p ${IMSI_DEPLOY_PATH}/latest
126
+ cd ${IMSI_DEPLOY_PATH}
128
127
 
129
128
  # pass Python version, tag, and deploy path as arguments
130
- source tests/deploy_imsi_env.sh "${IMSI_DEPLOYED_PYTHON_VER}" "${CI_COMMIT_TAG}" "${IMSI_DEPLOY_PATH}" "${CANESM_REF_REPO}"
129
+ source ${CI_JOB_RUN_DIR}/tests/deploy_imsi_env.sh "${IMSI_DEPLOYED_PYTHON_VER}" "${CI_COMMIT_TAG}" "${IMSI_DEPLOY_PATH}" "${CANESM_REF_REPO}"
131
130
  rules:
132
131
  # Only run these rules on gitlab.science.gc.ca
133
132
  - if: '$CI_SERVER_HOST != "gitlab.science.gc.ca"'
@@ -146,7 +145,6 @@ publish:
146
145
  when: never
147
146
 
148
147
  - if: $CI_COMMIT_TAG
149
- allow_failure: true
150
148
 
151
149
 
152
150
  cleanup:
@@ -77,29 +77,4 @@ Integration Reviewers will:
77
77
 
78
78
  - [ ] The change is compatible with CCCma systems and operational pipelines.
79
79
  - [ ] Integration dependencies and environments are respected.
80
- - [ ] Broader model interactions have been considered.
81
-
82
-
83
- ## Creating an Issue
84
-
85
- **Before you open an Issue**, search the issue tracker for similar entries. If you find an existing Issue is already open, upvote it or add context there is needed.
86
-
87
- ### Opening an Issue
88
-
89
- - Open an Issue for bugs, requests, or documentation.
90
- - Use the appropriate Issue template.
91
- - Use the template to describe the Issue.
92
- - Do not open an Issue for general disussion or support.
93
-
94
- ### Types of Issues
95
-
96
- All Issues must be opened as one of the following types:
97
-
98
- | Label | Description |
99
- |:-- | :-- |
100
- | **bug** | Something is broken. |
101
- | **enhancement** | Improvement to an existing feature. |
102
- | **feature** | New additions or functionality. |
103
- | **docs** | Standalone changes or additions to documentation. |
104
-
105
- The Issue template you use will be pre-populated with one of these labels. **For Contributors, do not** add other labels to the Issue.
80
+ - [ ] Broader model interactions have been considered.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cimsi
3
- Version: 0.8.2
3
+ Version: 0.8.2.dev1
4
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
5
  Author: CCCma Technical Development Team
6
6
  License: OGL-Canada-2.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cimsi
3
- Version: 0.8.2
3
+ Version: 0.8.2.dev1
4
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
5
  Author: CCCma Technical Development Team
6
6
  License: OGL-Canada-2.0
@@ -11,10 +11,6 @@ environment.yml
11
11
  logo.png
12
12
  pyproject.toml
13
13
  uv.lock
14
- .gitlab/issue_templates/bug.md
15
- .gitlab/issue_templates/documentation.md
16
- .gitlab/issue_templates/enhancement.md
17
- .gitlab/issue_templates/feature.md
18
14
  .gitlab/merge_request_templates/imsi_mr.md
19
15
  cimsi.egg-info/PKG-INFO
20
16
  cimsi.egg-info/SOURCES.txt
@@ -182,8 +178,6 @@ tests/test_ensemble/test_table_utils/test_yaml_table_vars.py
182
178
  tests/test_ensemble/test_table_utils/test_yaml_vars.py
183
179
  tests/test_list/test_list_cli.py
184
180
  tests/test_list/test_list_manager.py
185
- tests/test_override/test_apply_options_overrides.py
186
- tests/test_override/test_parse_override_cli.py
187
181
  tests/test_schema/test_compiler.py
188
182
  tests/test_schema/test_components.py
189
183
  tests/test_schema/test_experiment.py
@@ -87,7 +87,6 @@ interconnected nature between:
87
87
  - models & experiments, which dictate:
88
88
  - what jobs you want to run
89
89
  - how many simulated years you might want
90
- - the explicit `flow` that you might want to use and configure
91
90
  - machines, which dictates:
92
91
  - what sequencers are available
93
92
  - what resource configurations are allowed (i.e. how many days can be simulated in the allowable wall-clock?)
@@ -179,7 +178,7 @@ To define what jobs will run and with what resources, ``imsi`` relies on the
179
178
  key path.
180
179
 
181
180
  Specifically, ``imsi`` will look for ``sequencing:sequencing_flow:FLOW_NAME``, where
182
- the flow name is determined by one of three methods:
181
+ the flow name is determined by one of two methods:
183
182
 
184
183
  1. **automatically via the** ``machine`` **and sequencer specific configuration**
185
184
 
@@ -191,27 +190,7 @@ the flow name is determined by one of three methods:
191
190
  4. extracts the `non-machine specific` ``FLOW_NAME`` from ``sequencing:sequencers:SEQUENCER_NAME:baseflows:model_type``
192
191
  5. appends ``default_sequencing_suffix`` to the `non-machine specific` ``FLOW_NAME`` such that ``FLOW_NAME=${FLOW_NAME}-${default_sequencing_suffix}``
193
192
 
194
- 2. **from the** ``flow: FLOW_NAME`` **entry in the experiment/model configuration**
195
-
196
- This is an extension of the above automatic method, but allows users to explicitly
197
- define what `non-machine specific` flow they want to use for this experiment/model. The machine specific suffixing
198
- still occurs as per the automatic method. For example, if a user wanted to use the
199
- ``basic`` flow for a ``ESM`` model type on a machine with a ``-maestro`` suffix, they would
200
- add the following to their experiment/model configuration:
201
-
202
- .. code-block:: yaml
203
- models:
204
- some_canesm_model:
205
- flow: basic
206
-
207
- and to their sequencing flow configuration, ``imsi`` would look for
208
- ``sequencing:sequencing_flow:canesm_split_job_flow-basic-hallN``.
209
-
210
- If the user does not provide a ``flow: FLOW_NAME`` entry in the experiment/model configuration,
211
- ``imsi`` will fall back to the automatic method described in (1) above. If ``flow`` is specified under
212
- both ``model`` and ``experiment``, the experiment definition takes precedence.
213
-
214
- 3. **from the** ``--flow`` **argument to** ``imsi setup``
193
+ 2. **from the** ``--flow`` **argument to** ``imsi setup``
215
194
 
216
195
  With this in mind, modifications/development of sequencer flows can be achieved via:
217
196
 
@@ -79,7 +79,6 @@ By default, ``imsi`` only logs the above information for certain ``cli`` command
79
79
 
80
80
  * ``imsi config``
81
81
  * ``imsi reload``
82
- * ``imsi override``
83
82
  * ``imsi set``
84
83
  * ``imsi build```
85
84
  * ``imsi submit``
@@ -257,30 +257,34 @@ on the workflow.
257
257
  >> imsi set -s model=model-x -s exp=exp-y
258
258
 
259
259
 
260
- 4\. Apply blocks of pre-defined modifications using ``imsi override --option``
260
+ 4\. Apply blocks of pre-defined modifications using ``imsi set --options``
261
261
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
262
262
 
263
+ .. warning::
264
+
265
+ imsi |version|: this command is a WIP and there may be unexpected behaviour.
263
266
 
264
267
  +------------------+------------------------------------------------------------------+
265
268
  | **Command** | .. code-block:: bash |
266
269
  | | |
267
- | | >> imsi override --option <option_block>/<option_file> |
270
+ | | >> imsi set --options <option_block>=<option_key> |
268
271
  | | |
269
272
  +------------------+------------------------------------------------------------------+
270
273
  | **Steps** | Run the command above. The options are defined in the imsi |
271
- | | Configuration Files for the source, nominally in YAML files |
272
- | | under ``imsi-config/options/<option_block>/<option_file>``. |
274
+ | | Configuration Files for the source, nominally in |
275
+ | | ``model_options.yaml``. |
273
276
  +------------------+------------------------------------------------------------------+
274
277
  | **Purpose** | Apply pre-defined sets of modifications to the run |
275
- | | configuration. The directory ``<option_block>`` and its contents |
276
- | | can be generally thought of as common modifications to |
277
- | | configuration that are not otherwise captured in the structured |
278
- | | configuration system. |
278
+ | | configuration. The ``option_block`` and contents can be generally|
279
+ | | thought of as common modifications to configuration that are not |
280
+ | | otherwise captured in the structured imsi Configuration Files. |
281
+ +------------------+------------------------------------------------------------------+
282
+ | **Caveats** | **This command is currently under development** |
279
283
  +------------------+------------------------------------------------------------------+
280
284
 
281
- **What does** ``imsi override --option`` **do?**
285
+ **What does** ``imsi set -o`` **do?**
282
286
 
283
- In simple terms, ``imsi override --option`` is analogous to manually modifying the Resolved
287
+ In simple terms, ``imsi set -o`` is analogous to manually modifying the Resolved
284
288
  Configuration File and running ``imsi config``.
285
289
 
286
290
  .. warning::
@@ -348,6 +352,11 @@ Any further modifications to the upstream Configuration File for ``exp-B``
348
352
  can be applied by using ``imsi reload`` for simplicity thereafter.
349
353
 
350
354
 
355
+ .. warning::
356
+
357
+ ``imsi set --options`` is a WIP.
358
+
359
+
351
360
  Validating imsi configuration files with ``imsi validate``
352
361
  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
353
362
 
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.8.2'
32
- __version_tuple__ = version_tuple = (0, 8, 2)
31
+ __version__ = version = '0.8.2.dev1'
32
+ __version_tuple__ = version_tuple = (0, 8, 2, 'dev1')
33
33
 
34
- __commit_id__ = commit_id = 'ge9cd69fb8'
34
+ __commit_id__ = commit_id = 'g904569cbb'
@@ -300,38 +300,30 @@ def reload(ctx):
300
300
  help="""A key-value pair for a setup parameter and it's value.
301
301
  [Example: exp=exp_y]"""
302
302
  )
303
- @click.pass_context
304
- @log_cli
305
- def set(ctx, selections):
306
- import imsi.user_interface.ui_manager as uim
307
-
308
- force_dirs(Path("src"))
309
- uim.validate_version_reqs()
310
- # tmp disabling parm_file -> None
311
- uim.set_selections(None, selections, force=ctx.obj["FORCE"])
312
-
313
-
314
- @click.command(
315
- short_help="Override settings.",
316
- help="Override configuration options from imsi-config."
317
- )
318
303
  @click.option(
319
- "-o", "--option",
320
- metavar="PATH/FILE.yaml",
304
+ "-o",
305
+ "--options",
306
+ metavar="OPTION_BLOCK=VALUE",
321
307
  multiple=True,
322
- help="File paths under imsi-config/options. If specifying multiple paths, options are applied in the order provided."
308
+ help="""A key-value pair for an option block and it's value, as
309
+ stored in the *_options.yaml files of the imsi Configuration Files.
310
+ [Example: block_a=option_1]""",
323
311
  )
324
312
  @click.pass_context
325
313
  @log_cli
326
- def override(ctx, option):
314
+ def set(ctx, selections, options):
327
315
  import imsi.user_interface.ui_manager as uim
328
316
 
329
317
  force_dirs(Path("src"))
330
318
  uim.validate_version_reqs()
331
- if option:
332
- uim.parse_override(option, force=ctx.obj["FORCE"])
319
+ if any([selections, options]):
320
+ # tmp disabling parm_file -> None
321
+ uim.set_selections(None, selections, options, force=ctx.obj["FORCE"])
333
322
  else:
334
- click.echo("Error: Provide at least one --option.", err=True)
323
+ click.echo(
324
+ "Error: Must provide at least one --selections or --options",
325
+ err=True,
326
+ )
335
327
 
336
328
 
337
329
  @click.command(
@@ -73,7 +73,6 @@ cli.add_lazy_command("imsi.cli.core_cli.status")
73
73
  cli.add_lazy_command("imsi.cli.core_cli.reload")
74
74
  cli.add_lazy_command("imsi.cli.core_cli.set")
75
75
  cli.add_lazy_command("imsi.cli.core_cli.get_src", name='get-src')
76
- cli.add_lazy_command("imsi.cli.core_cli.override")
77
76
  cli.add_lazy_command("imsi.tools.disk_tools.disk_tools_cli.clean")
78
77
  cli.add_lazy_command("imsi.tools.list.list_cli.list")
79
78
  cli.add_lazy_command("imsi.tools.menu.menu_cli.setup_menu", name="setup-menu")
@@ -90,8 +90,6 @@ class SequencingFactory:
90
90
  def create_from_database(
91
91
  db: ConfigDatabase,
92
92
  machine: Machine,
93
- experiment: Experiment,
94
- model: Model,
95
93
  sequencer_name: str,
96
94
  flow_name: str = None,
97
95
  model_type: str = None,
@@ -118,10 +116,8 @@ class SequencingFactory:
118
116
  model_type,
119
117
  sequencer_name,
120
118
  sequencing_config["sequencer"].get("baseflows"),
121
- machine_specific_flows=sequencing_configs["sequencing_flow"],
119
+ flows=sequencing_configs["sequencing_flow"],
122
120
  machine=machine,
123
- experiment=experiment,
124
- model=model
125
121
  )
126
122
 
127
123
  sequencing_config["sequencing_flow"] = SequencingFactory.set_flow_config(
@@ -164,10 +160,8 @@ class SequencingFactory:
164
160
  model_type: str,
165
161
  sequencer_name: str,
166
162
  sequencer_baseflows: dict,
167
- machine_specific_flows,
163
+ flows,
168
164
  machine: Machine,
169
- experiment: Experiment,
170
- model: Model,
171
165
  ):
172
166
  """Get the default sequencing flow, which handles the selected model_type, and
173
167
  also has configuration support for the selected sequencer and machine.
@@ -189,24 +183,17 @@ class SequencingFactory:
189
183
  # The platform/machine specific implementation of baseflows is denoted with a suffix on baseflow
190
184
  # This will return the first baseflow/machine specific flow in the list (which is constrain to be
191
185
  # only those suppoting the specific model_type)
192
- # Prefer explicit 'experiment' field, fall back to 'model'; error if neither present
193
- experiment_or_model_flow = experiment.flow or model.flow
194
-
195
186
  for baseflow in base_flows:
196
- if experiment_or_model_flow is not None:
197
- machine_specific_flow = f"{baseflow}-{experiment_or_model_flow}-{machine.default_sequencing_suffix}"
198
- else:
199
- machine_specific_flow = f"{baseflow}-{machine.default_sequencing_suffix}"
200
- if machine_specific_flow in machine_specific_flows:
187
+ machine_specific_flow = f"{baseflow}-{machine.default_sequencing_suffix}" # convention for the naming
188
+ if machine_specific_flow in flows:
201
189
  return machine_specific_flow
202
-
203
190
  supported_base_flows = ", ".join(base_flows)
204
191
  raise KeyError(
205
- f"Could not determine a default sequencing flow for sequencer '{sequencer_name}' "
206
- f"on machine '{machine.name}' (suffix '{machine.default_sequencing_suffix}'), "
207
- f"for model_type '{model_type}' and experiment or model flow '{experiment_or_model_flow}'. "
208
- f"Supported baseflows for this model_type are: {supported_base_flows}. "
209
- "Machine-specific versions for this combination are not implemented but required."
192
+ f"Could not determine a default sequencing flow for sequencer: {sequencer_name} "
193
+ f"on machine: {machine.name}/{machine.default_sequencing_suffix} that supports model_type: {model_type}. "
194
+ f"Support baseflows found for {model_type} are: {supported_base_flows}. "
195
+ f"Machine specific version(s) for {machine.default_sequencing_suffix} are "
196
+ "not implemented but required."
210
197
  )
211
198
 
212
199
  @staticmethod
@@ -427,7 +414,7 @@ class ConfigManager:
427
414
  setup_params = self.create_SetupParams(setup_params, machine) # improvable
428
415
  utilities = self.create_utilities()
429
416
  (SEQ_N, FLOW_N), sequencing = self.create_sequencing(
430
- machine, experiment, model, setup_params.sequencer_name, flow_name
417
+ machine, setup_params.sequencer_name, flow_name, experiment
431
418
  )
432
419
  POST_N, postproc = self.create_postproc(model, experiment, postproc_profile)
433
420
 
@@ -496,16 +483,13 @@ class ConfigManager:
496
483
  def create_sequencing(
497
484
  self,
498
485
  machine: Machine,
499
- experiment: Experiment,
500
- model: Model,
501
486
  sequencer_name: str,
502
487
  flow_name: str,
488
+ experiment: Experiment,
503
489
  ) -> Sequencing:
504
490
  return SequencingFactory.create_from_database(
505
491
  self.db,
506
492
  machine=machine,
507
- experiment=experiment,
508
- model=model,
509
493
  sequencer_name=sequencer_name,
510
494
  flow_name=flow_name,
511
495
  model_type=experiment.model_type,
@@ -25,7 +25,6 @@ class Experiment(BaseModel):
25
25
  parent_branch_time: str
26
26
  inherits_from: Optional[str] = None
27
27
  supported_models: List[str]
28
- flow: Optional[str] = None # overrides flow specified in model
29
28
 
30
29
  def validate_model_name(self, model_name: str):
31
30
  if model_name not in self.supported_models:
@@ -19,4 +19,3 @@ class Model(BaseModel):
19
19
  prefix: Optional[str] = None
20
20
  model_filename_prefix: Optional[str] = None
21
21
  model_rs_filename_prefix: Optional[str] = None
22
- flow: Optional[str] = None
@@ -133,7 +133,7 @@ class MaestroSequencerInterface(Sequencer):
133
133
  maestro_dst = maestro_config['SEQ_EXP_HOME'] # destination for setup
134
134
  modules_provided = exp_flow['flow_definitions'].keys() # ie folder names
135
135
 
136
- setup_maestro_from_src(maestro_src, maestro_dst, modules_provided, runid=runid)
136
+ setup_maestro_from_src(maestro_src, maestro_dst, modules_provided, runid=runid, force=force)
137
137
 
138
138
  def config(self, configuration: Configuration, **kwargs):
139
139
  """Configure maestro experiment."""
@@ -467,7 +467,7 @@ def config_hub(seq_exp_home, experiment):
467
467
  try:
468
468
  proc = subprocess.run(cmd, cwd=seq_exp_home, env=maestro_env, capture_output=True)
469
469
  proc.check_returncode()
470
- except subprocess.CalledProcessError:
470
+ except subprocess.CalledProcessError as e:
471
471
  raise Exception("Failed call: '{cmd}': {err}".format(cmd=' '.join(proc.args), err=proc.stderr))
472
472
 
473
473
  def copy_default_main_config(src: str, dst: str):
@@ -505,7 +505,7 @@ def init_maestro_module_folders(path: str, entry_module: str = 'module', modules
505
505
  if modules is None:
506
506
  modules = [entry_module]
507
507
 
508
- if entry_module not in modules:
508
+ if not entry_module in modules:
509
509
  raise ValueError('entry_module must match one of modules provided')
510
510
 
511
511
  for m in modules:
@@ -1134,7 +1134,7 @@ def validate_maestro_exp(seq_exp_home: str):
1134
1134
  try:
1135
1135
  proc = subprocess.run(cmd, cwd=seq_exp_home, env=maestro_env, capture_output=True)
1136
1136
  proc.check_returncode()
1137
- except subprocess.CalledProcessError:
1137
+ except subprocess.CalledProcessError as e:
1138
1138
  stdout = proc.stdout.decode().strip()
1139
1139
  stderr = proc.stderr.decode().strip()
1140
1140
  if not stderr.startswith(err_startswith):
@@ -9,6 +9,7 @@ import click
9
9
  )
10
10
  @click.option(
11
11
  "--runid_path",
12
+ default=None,
12
13
  required=True,
13
14
  type=click.Path(),
14
15
  help="Path to a valid run setup directory.",
@@ -1,20 +1,20 @@
1
1
  import os
2
2
  import copy
3
+ import glob
3
4
  from omegaconf import OmegaConf
4
5
  from pathlib import Path
5
6
  import subprocess
6
7
  import shlex
7
8
  import shutil
8
9
  from typing import Dict
9
- from pydantic import BaseModel, field_validator
10
- from typing import Iterable
11
10
 
12
11
  from imsi.config_manager import config_manager as cm
13
12
  from imsi.sequencer_interface.sequencers import create_sequencer
14
13
  from imsi.shell_interface import shell_interface_manager
15
14
  from imsi.shell_interface.config_hooks_manager import call_hooks
16
15
  from imsi.utils.dict_tools import parse_vars, update, load_json
17
- from imsi.user_interface.ui_utils import save_setup_configuration, load_run_config, apply_options_overrides
16
+ from imsi.user_interface.ui_utils import save_setup_configuration, load_run_config
17
+ from imsi.sequencer_interface.sequencers import create_sequencer
18
18
  from imsi.utils.general import is_broken_symlink, _return_with_message
19
19
  from imsi.utils.git_tools import is_repo_clean
20
20
  from imsi import __version__
@@ -53,7 +53,6 @@ def validate_version_reqs(source_config_path: Path = Path("src/imsi-config"), ve
53
53
  See https://imsi.readthedocs.io/en/main/config_breaking_changes.html for more information"""
54
54
  )
55
55
 
56
-
57
56
  def create_imsi_configuration(
58
57
  imsi_config_path: str, setup_params: Dict
59
58
  ) -> (cm.Configuration, cm.ConfigDatabase):
@@ -138,55 +137,7 @@ def update_config_from_state(force=False):
138
137
  )
139
138
  build_run_config_on_disk(state_configuration, db, force=force)
140
139
 
141
-
142
- class Override(BaseModel):
143
- options: str
144
-
145
- @field_validator("options")
146
- def validate_options(cls, v):
147
- if "/" not in v:
148
- raise ValueError("Option must be in the format <group>/<option>")
149
- return v
150
-
151
-
152
- def parse_override_options(options: Iterable[str]) -> list[dict]:
153
- return [Override(options=o).model_dump() for o in options]
154
-
155
-
156
- def parse_override(options: Iterable[str], force=False):
157
- """Parse and apply command-line option overrides to the current IMSI run configuration.
158
-
159
- Parameters:
160
- - options: An iterable of option identifier strings. Each string must contain
161
- a '/' separating the group and option name (e.g. "group/option" or
162
- "group/option=value").
163
- - force: If True, forces rebuilding of on-disk run artifacts
164
- and other actions performed by build_run_config_on_disk even if not strictly
165
- necessary. Defaults to False.
166
- """
167
-
168
- # get existing simulation config
169
- configuration = load_run_config()
170
- db = cm.database_factory(configuration.get_unique_key_value("imsi_config_path"))
171
-
172
- print(f"Overriding configuration with: {options}")
173
- options_list = parse_override_options(options)
174
-
175
- configuration_with_overrides = apply_options_overrides(
176
- config_dictionary=configuration.model_dump(), options=options_list
177
- )
178
- new_configuration = cm.Configuration(**configuration_with_overrides)
179
-
180
- # Update the saved configuration file accordingly
181
- # (including triggering rebuilding of /sequencer folder too, running
182
- # hooks, etc):
183
- build_run_config_on_disk(new_configuration, db, force=force)
184
-
185
- # Update the saved configuration file accordingly
186
- save_setup_configuration(new_configuration, save_config=True)
187
-
188
-
189
- def set_selections(parm_file=None, selections=None, force=False):
140
+ def set_selections(parm_file=None, selections=None, options=None, force=False):
190
141
  """Parse key=value pairs of selection given on the command line
191
142
  Try to apply these to the imsi selections for the sim.
192
143
  """
@@ -229,6 +180,14 @@ def set_selections(parm_file=None, selections=None, force=False):
229
180
  # Create a new simulation that we imbue with these properties
230
181
  new_configuration = config_manager.create_configuration(**updated_setup_params.model_dump())
231
182
 
183
+ if options:
184
+ print(f"set options: {options}")
185
+ options_config = db.get_config("model_options")
186
+ selected_option_names = parse_vars(options)
187
+ new_configuration = apply_options(
188
+ options_config, configuration, selected_option_names
189
+ )
190
+
232
191
  # Update the saved configuration file accordingly
233
192
  # (including triggering rebuilding of /sequencer folder too, running
234
193
  # hooks, etc):
@@ -237,6 +196,43 @@ def set_selections(parm_file=None, selections=None, force=False):
237
196
  # Update the saved configuration file accordingly
238
197
  save_setup_configuration(new_configuration, save_config=True)
239
198
 
199
+ def apply_options(
200
+ options_config: Dict, configuration: cm.Configuration, selected_option_names: Dict
201
+ ) -> cm.Configuration:
202
+ """
203
+ Take a set of options or 'patches' and apply them to the simulation configuration and
204
+ return an updated configuration.
205
+
206
+ Input:
207
+ ------
208
+ selected_options : dict
209
+ k-v pairs of option name and selection
210
+ """
211
+ # Check first the option is valid
212
+ for option, selection in selected_option_names.items():
213
+ if option in options_config.keys():
214
+ if selection in options_config[option].keys():
215
+ for target_config, target_values in options_config[option][
216
+ selection
217
+ ].items():
218
+ # Add to list of applied options
219
+ # self.options[option] = selection
220
+ # Set the options in the simulations internal state
221
+ new_config_dict = configuration.model_dump()
222
+ update(new_config_dict[target_config], target_values)
223
+ print(f"Updated {option} with {selection}")
224
+ else:
225
+ raise ValueError(
226
+ f"\n**ERROR**: there is no valid selection {selection} under the option named {option}. "
227
+ + f"Available selections are {list(options_config[option]['options'].keys())}"
228
+ )
229
+ else:
230
+ raise ValueError(
231
+ f"\n**ERROR**: there is no option named {option}. Available options are {list(options_config.keys())}"
232
+ )
233
+ return cm.Configuration(**new_config_dict)
234
+
235
+
240
236
  def compile_model_execs(args, force=False):
241
237
  """
242
238
  Builds all component executables by calling an upstream script from the
@@ -3,9 +3,6 @@ import shutil
3
3
  from pathlib import Path
4
4
  import warnings
5
5
 
6
- import yaml
7
-
8
- from imsi.utils.dict_tools import update
9
6
  from imsi.config_manager.config_manager import Configuration, ConfigManager
10
7
 
11
8
 
@@ -57,32 +54,6 @@ def _get_config_filename(serialized=False) -> str:
57
54
  return guessed
58
55
 
59
56
 
60
- def apply_options_overrides(config_dictionary: dict, options: list) -> dict:
61
- """Merge YAML option files into config_dictionary.
62
-
63
- Each item in options must be a single-key dict mapping a subdirectory name to
64
- a filename (without suffix). Example: [{"some_dir": "option_name"}, ...].
65
-
66
- If any loaded YAML defines keys whose full key-paths overlap with existing
67
- keys in config_dictionary, a warning is emitted listing the overlapping paths.
68
- """
69
- options_root = Path(config_dictionary["setup_params"]["work_dir"]) / "src" / "imsi-config"
70
-
71
- for option in options:
72
- parent_dir, filename = next(iter(option.items()))
73
- option_file = (options_root / parent_dir / filename).with_suffix(".yaml")
74
-
75
- if not option_file.exists():
76
- raise FileNotFoundError(f"Option file not found: {option_file}")
77
-
78
- with option_file.open() as stream:
79
- cfg = yaml.safe_load(stream) or {}
80
-
81
- config_dictionary = update(config_dictionary, cfg)
82
-
83
- return config_dictionary
84
-
85
-
86
57
  def load_run_config(serialized=True):
87
58
  # relative to cwd/pwd
88
59
  config_file = _get_config_filename(serialized=serialized)