py-modelrunner 0.20.0__tar.gz → 0.20.2__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 (219) hide show
  1. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/PKG-INFO +19 -7
  2. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/README.md +18 -6
  3. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/_version.py +3 -3
  4. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/job.py +4 -4
  5. py_modelrunner-0.20.2/modelrunner/run/templates/sbatch.jinja +41 -0
  6. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/templates/srun.jinja +5 -1
  7. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/base.py +4 -0
  8. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/trajectory.py +3 -1
  9. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/PKG-INFO +19 -7
  10. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/SOURCES.txt +3 -0
  11. py_modelrunner-0.20.2/py_modelrunner.egg-info/scm_file_list.json +212 -0
  12. py_modelrunner-0.20.2/py_modelrunner.egg-info/scm_version.json +8 -0
  13. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/.github/workflows/build.yml +0 -0
  14. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/.github/workflows/check_docs.yml +0 -0
  15. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/.github/workflows/coverage_report.yml +0 -0
  16. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/.github/workflows/release_pip.yml +0 -0
  17. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/.gitignore +0 -0
  18. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/.readthedocs.yaml +0 -0
  19. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/LICENSE +0 -0
  20. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/Makefile +0 -0
  21. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/build_all.sh +0 -0
  22. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/requirements.txt +0 -0
  23. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/.gitignore +0 -0
  24. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/conf.py +0 -0
  25. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/examples.rst +0 -0
  26. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/index.rst +0 -0
  27. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/installation.rst +0 -0
  28. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/parse_examples.py +0 -0
  29. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/run_autodoc.py +0 -0
  30. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/sphinx_simplify_typehints.py +0 -0
  31. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/docs/source/user_manual.rst +0 -0
  32. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/io_hdf.py +0 -0
  33. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/io_json.py +0 -0
  34. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/io_yaml.py +0 -0
  35. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/model_class.py +0 -0
  36. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/model_decorator.py +0 -0
  37. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/model_function.py +0 -0
  38. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/model_storage_output.py +0 -0
  39. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/read_many.py +0 -0
  40. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/script_custom_func.py +0 -0
  41. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/script_function.py +0 -0
  42. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/script_many_classes.py +0 -0
  43. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/script_minimal.py +0 -0
  44. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/script_model_class.py +0 -0
  45. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/submit_function.py +0 -0
  46. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/submit_many_func.py +0 -0
  47. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/submit_many_iter.py +0 -0
  48. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/examples/submit_shebang.py +0 -0
  49. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/.gitignore +0 -0
  50. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/__init__.py +0 -0
  51. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/__main__.py +0 -0
  52. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/config.py +0 -0
  53. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/model/__init__.py +0 -0
  54. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/model/base.py +0 -0
  55. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/model/factory.py +0 -0
  56. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/model/parameters.py +0 -0
  57. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/py.typed +0 -0
  58. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/__init__.py +0 -0
  59. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/__main__.py +0 -0
  60. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/__init__.py +0 -0
  61. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/triage.py +0 -0
  62. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/version0.py +0 -0
  63. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/version1.py +0 -0
  64. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/version2.py +0 -0
  65. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/launch.py +0 -0
  66. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/results.py +0 -0
  67. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/templates/background.jinja +0 -0
  68. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/templates/foreground.jinja +0 -0
  69. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/run/templates/qsub.jinja +0 -0
  70. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/__init__.py +0 -0
  71. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/access_modes.py +0 -0
  72. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/attributes.py +0 -0
  73. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/__init__.py +0 -0
  74. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/_zarr2.py +0 -0
  75. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/_zarr3.py +0 -0
  76. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/hdf.py +0 -0
  77. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/json.py +0 -0
  78. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/memory.py +0 -0
  79. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/text_base.py +0 -0
  80. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/utils.py +0 -0
  81. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/yaml.py +0 -0
  82. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/backend/zarr.py +0 -0
  83. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/group.py +0 -0
  84. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/tools.py +0 -0
  85. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/storage/utils.py +0 -0
  86. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/modelrunner/utils.py +0 -0
  87. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/dependency_links.txt +0 -0
  88. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/not-zip-safe +0 -0
  89. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/requires.txt +0 -0
  90. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/top_level.txt +0 -0
  91. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/pyproject.toml +0 -0
  92. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/requirements.txt +0 -0
  93. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/requirements_full.txt +0 -0
  94. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/create_compatibility_files.py +0 -0
  95. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/format_code.sh +0 -0
  96. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/performance_hdf5_zarr.py +0 -0
  97. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/requirements.txt +0 -0
  98. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/run_tests.py +0 -0
  99. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/tests_all.sh +0 -0
  100. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/tests_codestyle.sh +0 -0
  101. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/tests_coverage.sh +0 -0
  102. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/tests_debug.sh +0 -0
  103. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/tests_parallel.sh +0 -0
  104. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/tests_run.sh +0 -0
  105. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/scripts/tests_types.sh +0 -0
  106. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/setup.cfg +0 -0
  107. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/0/result.hdf +0 -0
  108. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/0/result.json +0 -0
  109. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/0/result.pkl +0 -0
  110. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/0/result.yaml +0 -0
  111. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/_dict.zarr +0 -0
  112. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/_object.zarr +0 -0
  113. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array.json +0 -0
  114. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array.pkl +0 -0
  115. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array.yaml +0 -0
  116. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array.zarr +0 -0
  117. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.json +0 -0
  118. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.pkl +0 -0
  119. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.yaml +0 -0
  120. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.zarr +0 -0
  121. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/dict.json +0 -0
  122. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/dict.pkl +0 -0
  123. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/dict.yaml +0 -0
  124. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/object.json +0 -0
  125. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/object.pkl +0 -0
  126. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/1/object.yaml +0 -0
  127. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array.hdf +0 -0
  128. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array.json +0 -0
  129. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array.pkl +0 -0
  130. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array.yaml +0 -0
  131. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array.zip +0 -0
  132. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.hdf +0 -0
  133. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.json +0 -0
  134. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.pkl +0 -0
  135. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.yaml +0 -0
  136. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.zip +0 -0
  137. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.hdf +0 -0
  138. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.json +0 -0
  139. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.pkl +0 -0
  140. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.yaml +0 -0
  141. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.zip +0 -0
  142. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.hdf +0 -0
  143. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.json +0 -0
  144. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.pkl +0 -0
  145. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.yaml +0 -0
  146. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.zip +0 -0
  147. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array.hdf +0 -0
  148. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array.json +0 -0
  149. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array.pkl +0 -0
  150. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array.yaml +0 -0
  151. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array.zip +0 -0
  152. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.hdf +0 -0
  153. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.json +0 -0
  154. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.pkl +0 -0
  155. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.yaml +0 -0
  156. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.zip +0 -0
  157. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.hdf +0 -0
  158. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.json +0 -0
  159. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.pkl +0 -0
  160. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.yaml +0 -0
  161. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.zip +0 -0
  162. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.hdf +0 -0
  163. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.json +0 -0
  164. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.pkl +0 -0
  165. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.yaml +0 -0
  166. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.zip +0 -0
  167. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.hdf +0 -0
  168. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.json +0 -0
  169. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.pkl +0 -0
  170. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.yaml +0 -0
  171. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.zip +0 -0
  172. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.hdf +0 -0
  173. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.json +0 -0
  174. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.pkl +0 -0
  175. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.yaml +0 -0
  176. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.zip +0 -0
  177. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.hdf +0 -0
  178. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.json +0 -0
  179. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.pkl +0 -0
  180. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.yaml +0 -0
  181. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.zip +0 -0
  182. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.hdf +0 -0
  183. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.json +0 -0
  184. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.pkl +0 -0
  185. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.yaml +0 -0
  186. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.zip +0 -0
  187. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/compatibility/test_compatibility.py +0 -0
  188. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/conftest.py +0 -0
  189. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/helpers/__init__.py +0 -0
  190. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/helpers/asserts.py +0 -0
  191. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/helpers/storage.py +0 -0
  192. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/scripts/empty.py +0 -0
  193. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/scripts/function.py +0 -0
  194. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/scripts/function_main.py +0 -0
  195. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/scripts/function_marked.py +0 -0
  196. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/scripts/make_model.py +0 -0
  197. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/scripts/make_model_class.py +0 -0
  198. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/scripts/make_model_marked.py +0 -0
  199. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/test_model.py +0 -0
  200. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/model/test_parameters.py +0 -0
  201. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/requirements.txt +0 -0
  202. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/scripts/custom.jinja +0 -0
  203. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/scripts/fail.py +0 -0
  204. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/scripts/function.py +0 -0
  205. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/scripts/print.py +0 -0
  206. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/scripts/script.py +0 -0
  207. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/test_job.py +0 -0
  208. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/test_results.py +0 -0
  209. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/run/test_run_main.py +0 -0
  210. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/storage/test_group.py +0 -0
  211. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/storage/test_register_action.py +0 -0
  212. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/storage/test_storage_generic.py +0 -0
  213. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/storage/test_storage_special.py +0 -0
  214. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/storage/test_trajectory.py +0 -0
  215. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/storage/test_utils.py +0 -0
  216. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/test_config.py +0 -0
  217. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/test_examples.py +0 -0
  218. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/test_main.py +0 -0
  219. {py_modelrunner-0.20.0 → py_modelrunner-0.20.2}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py-modelrunner
3
- Version: 0.20.0
3
+ Version: 0.20.2
4
4
  Summary: Python classes for organizing (HPC) simulations
5
5
  Author-email: David Zwicker <david.zwicker@ds.mpg.de>
6
6
  License: MIT
@@ -78,9 +78,9 @@ function with several arguments, like so
78
78
 
79
79
  ```python
80
80
  def main(a: float = 1, b: int = 2, negate: bool = False):
81
- res = a ** b
81
+ res = a**b
82
82
  if negate:
83
- res *= -1
83
+ res *= -1
84
84
  return res
85
85
  ```
86
86
 
@@ -133,8 +133,8 @@ parameters:
133
133
  ```python
134
134
  from modelrunner import ModelBase
135
135
 
136
- class MyModel(ModelBase): # define custom model
137
136
 
137
+ class MyModel(ModelBase): # define custom model
138
138
  # defines supported parameters with default values
139
139
  parameters_default = {"a": 1, "b": 2}
140
140
 
@@ -143,7 +143,7 @@ class MyModel(ModelBase): # define custom model
143
143
  return self.parameters["a"] * self.parameters["b"]
144
144
 
145
145
 
146
- model = MyModel({"a" : 3})
146
+ model = MyModel({"a": 3})
147
147
  ```
148
148
 
149
149
  The last line actually creates an instance of the model with custom parameters.
@@ -153,10 +153,12 @@ Alternatively, a model can also be defined from a simple function:
153
153
  ```python
154
154
  from modelrunner import make_model
155
155
 
156
+
156
157
  @make_model
157
158
  def multiply(a=1, b=2):
158
159
  return a * b
159
160
 
161
+
160
162
  model = multiply(a=3)
161
163
  ```
162
164
 
@@ -219,10 +221,12 @@ A simple full script displaying this reads
219
221
  ```python
220
222
  from modelrunner import make_model, submit_job
221
223
 
224
+
222
225
  @make_model
223
226
  def multiply(a=1, b=2):
224
227
  return a * b
225
228
 
229
+
226
230
  if __name__ == "__main__":
227
231
  submit_job(__file__, parameters={"a": 2}, output="data.hdf5", method="foreground")
228
232
  ```
@@ -235,13 +239,17 @@ parameters to conduct a parameter study:
235
239
  ```python
236
240
  from modelrunner import make_model, submit_job
237
241
 
242
+
238
243
  @make_model
239
244
  def multiply(a=1, b=2):
240
245
  return a * b
241
246
 
247
+
242
248
  if __name__ == "__main__":
243
249
  for a in range(5):
244
- submit_job(__file__, parameters={"a": a}, output=f"data_{a}.hdf5", method="foreground")
250
+ submit_job(
251
+ __file__, parameters={"a": a}, output=f"data_{a}.hdf5", method="foreground"
252
+ )
245
253
  ```
246
254
 
247
255
  Note that the safe-guard `if __name__ == "__main__"` is absolutely crucial to ensure that
@@ -254,12 +262,16 @@ We also support submitting multiple jobs of a parameter study:
254
262
  ```python
255
263
  from modelrunner import make_model, submit_jobs
256
264
 
265
+
257
266
  @make_model
258
267
  def multiply(a=1, b=2):
259
268
  return a * b
260
269
 
270
+
261
271
  if __name__ == "__main__":
262
- submit_jobs(__file__, parameters={"a": range(5)}, output_folder="data", method="foreground")
272
+ submit_jobs(
273
+ __file__, parameters={"a": range(5)}, output_folder="data", method="foreground"
274
+ )
263
275
  ```
264
276
 
265
277
  Finally, the packages also offers a method to submit a model script to the cluster using
@@ -36,9 +36,9 @@ function with several arguments, like so
36
36
 
37
37
  ```python
38
38
  def main(a: float = 1, b: int = 2, negate: bool = False):
39
- res = a ** b
39
+ res = a**b
40
40
  if negate:
41
- res *= -1
41
+ res *= -1
42
42
  return res
43
43
  ```
44
44
 
@@ -91,8 +91,8 @@ parameters:
91
91
  ```python
92
92
  from modelrunner import ModelBase
93
93
 
94
- class MyModel(ModelBase): # define custom model
95
94
 
95
+ class MyModel(ModelBase): # define custom model
96
96
  # defines supported parameters with default values
97
97
  parameters_default = {"a": 1, "b": 2}
98
98
 
@@ -101,7 +101,7 @@ class MyModel(ModelBase): # define custom model
101
101
  return self.parameters["a"] * self.parameters["b"]
102
102
 
103
103
 
104
- model = MyModel({"a" : 3})
104
+ model = MyModel({"a": 3})
105
105
  ```
106
106
 
107
107
  The last line actually creates an instance of the model with custom parameters.
@@ -111,10 +111,12 @@ Alternatively, a model can also be defined from a simple function:
111
111
  ```python
112
112
  from modelrunner import make_model
113
113
 
114
+
114
115
  @make_model
115
116
  def multiply(a=1, b=2):
116
117
  return a * b
117
118
 
119
+
118
120
  model = multiply(a=3)
119
121
  ```
120
122
 
@@ -177,10 +179,12 @@ A simple full script displaying this reads
177
179
  ```python
178
180
  from modelrunner import make_model, submit_job
179
181
 
182
+
180
183
  @make_model
181
184
  def multiply(a=1, b=2):
182
185
  return a * b
183
186
 
187
+
184
188
  if __name__ == "__main__":
185
189
  submit_job(__file__, parameters={"a": 2}, output="data.hdf5", method="foreground")
186
190
  ```
@@ -193,13 +197,17 @@ parameters to conduct a parameter study:
193
197
  ```python
194
198
  from modelrunner import make_model, submit_job
195
199
 
200
+
196
201
  @make_model
197
202
  def multiply(a=1, b=2):
198
203
  return a * b
199
204
 
205
+
200
206
  if __name__ == "__main__":
201
207
  for a in range(5):
202
- submit_job(__file__, parameters={"a": a}, output=f"data_{a}.hdf5", method="foreground")
208
+ submit_job(
209
+ __file__, parameters={"a": a}, output=f"data_{a}.hdf5", method="foreground"
210
+ )
203
211
  ```
204
212
 
205
213
  Note that the safe-guard `if __name__ == "__main__"` is absolutely crucial to ensure that
@@ -212,12 +220,16 @@ We also support submitting multiple jobs of a parameter study:
212
220
  ```python
213
221
  from modelrunner import make_model, submit_jobs
214
222
 
223
+
215
224
  @make_model
216
225
  def multiply(a=1, b=2):
217
226
  return a * b
218
227
 
228
+
219
229
  if __name__ == "__main__":
220
- submit_jobs(__file__, parameters={"a": range(5)}, output_folder="data", method="foreground")
230
+ submit_jobs(
231
+ __file__, parameters={"a": range(5)}, output_folder="data", method="foreground"
232
+ )
221
233
  ```
222
234
 
223
235
  Finally, the packages also offers a method to submit a model script to the cluster using
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.20.0'
22
- __version_tuple__ = version_tuple = (0, 20, 0)
21
+ __version__ = version = '0.20.2'
22
+ __version_tuple__ = version_tuple = (0, 20, 2)
23
23
 
24
- __commit_id__ = commit_id = 'ga172a6158'
24
+ __commit_id__ = commit_id = 'g9f5fb441d'
@@ -54,7 +54,7 @@ DEFAULT_CONFIG = [
54
54
  "qsub",
55
55
  str,
56
56
  "The job submission method.",
57
- choices=["background", "foreground", "qsub", "srun"],
57
+ choices=["background", "foreground", "qsub", "sbatch", "srun"],
58
58
  ),
59
59
  Parameter(
60
60
  "partition", "", str, "The partition to which the job will be submitted."
@@ -159,8 +159,8 @@ def submit_job(
159
159
  working directory for remote jobs.
160
160
  method (str):
161
161
  Specifies the submission method. Currently `background`, `foreground`,
162
- 'srun', and `qsub` are supported. The special value `auto` reads the method
163
- from the `config` argument.
162
+ 'sbatch', and `qsub` are supported. The special value `auto` reads the
163
+ method from the `config` argument.
164
164
  use_modelrunner (bool):
165
165
  If True, `script` is envoked with the modelrunner library, e.g. by calling
166
166
  `python -m modelrunner {script}`.
@@ -267,7 +267,7 @@ def submit_job(
267
267
  script_content = Template(script_template).render(script_args)
268
268
  logger.debug("Script: `%s`", script_content)
269
269
 
270
- if method in {"qsub", "srun"}:
270
+ if method in {"qsub", "srun", "sbatch"}:
271
271
  # submit job to queue
272
272
  proc = sp.Popen(
273
273
  [method],
@@ -0,0 +1,41 @@
1
+ #!/bin/bash -l
2
+
3
+ {% if LOG_FOLDER is defined %}
4
+ # Standard output and error
5
+ #SBATCH --output={{ LOG_FOLDER }}/{{ JOB_NAME }}.out.txt
6
+ #SBATCH --error={{ LOG_FOLDER }}/{{ JOB_NAME }}.err.txt
7
+ {% endif %}
8
+ # Preserve environment variables:
9
+ #SBATCH --export=ALL
10
+ #SBATCH --job-name={{ JOB_NAME }}
11
+ # Queue (Partition):
12
+ {% if CONFIG['partition'] is defined %}
13
+ #SBATCH --partition {{ CONFIG['partition'] }}
14
+ {% endif %}
15
+ # Set max. runtime
16
+ {% if CONFIG['time'] is defined %}
17
+ #SBATCH --time={{ TIME }}
18
+ {% endif %}
19
+
20
+ hostname
21
+ echo $JOB_ID
22
+
23
+ {% if CONFIG.num_threads is number %}
24
+ # set the number of threads to use
25
+ export MKL_NUM_THREADS={{ CONFIG.num_threads }}
26
+ export NUMBA_NUM_THREADS={{ CONFIG.num_threads }}
27
+ export NUMEXPR_NUM_THREADS={{ CONFIG.num_threads }}
28
+ export OMP_NUM_THREADS={{ CONFIG.num_threads }}
29
+ export OPENBLAS_NUM_THREADS={{ CONFIG.num_threads }}
30
+ {% endif %}
31
+
32
+ {% if OUTPUT_FOLDER is defined and OUTPUT_FOLDER %}
33
+ mkdir -p {{ OUTPUT_FOLDER }}
34
+ {% endif %}
35
+
36
+ # Run the program
37
+ {% if USE_MODELRUNNER is defined and USE_MODELRUNNER %}
38
+ {{ CONFIG.python_bin }} -m modelrunner {{ MODEL_FILE }} {{ JOB_ARGS }}
39
+ {% else %}
40
+ {{ CONFIG.python_bin }} {{ MODEL_FILE }} {{ JOB_ARGS }}
41
+ {% endif %}
@@ -10,7 +10,11 @@
10
10
  #SBATCH --job-name={{ JOB_NAME }}
11
11
  # Queue (Partition):
12
12
  {% if CONFIG['partition'] is defined %}
13
- #SBATCH -p {{ CONFIG['partition'] }}
13
+ #SBATCH --partition {{ CONFIG['partition'] }}
14
+ {% endif %}
15
+ # Set max. runtime
16
+ {% if CONFIG['time'] is defined %}
17
+ #SBATCH --time={{ TIME }}
14
18
  {% endif %}
15
19
 
16
20
  hostname
@@ -38,6 +38,10 @@ from .utils import encode_class
38
38
  if TYPE_CHECKING:
39
39
  from .group import StorageGroup
40
40
 
41
+
42
+ # we allow unpickling since we otherwise cannot store arbitrary Python objects
43
+ numcodecs.pickles.ALLOW_UNSAFE_PICKLE_DECODE = True
44
+
41
45
  _base_logger = logging.getLogger(__name__.rsplit(".", 1)[0])
42
46
  """:class:`logging.Logger`: Base logger for fields."""
43
47
 
@@ -124,7 +124,9 @@ class TrajectoryWriter:
124
124
  shape: tuple[int, ...] = data.shape
125
125
  self._item_type = "array"
126
126
  else:
127
- raise NotImplementedError("Trajectories must be arrays for zarr3")
127
+ raise NotImplementedError(
128
+ f"Trajectories must be arrays for zarr3, not {data.__class__}"
129
+ )
128
130
  self._trajectory.create_dynamic_array("data", shape=shape, dtype=dtype)
129
131
  self._trajectory.create_dynamic_array("time", shape=(), dtype=float)
130
132
  self._trajectory.write_attrs(None, {"item_type": self._item_type})
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: py-modelrunner
3
- Version: 0.20.0
3
+ Version: 0.20.2
4
4
  Summary: Python classes for organizing (HPC) simulations
5
5
  Author-email: David Zwicker <david.zwicker@ds.mpg.de>
6
6
  License: MIT
@@ -78,9 +78,9 @@ function with several arguments, like so
78
78
 
79
79
  ```python
80
80
  def main(a: float = 1, b: int = 2, negate: bool = False):
81
- res = a ** b
81
+ res = a**b
82
82
  if negate:
83
- res *= -1
83
+ res *= -1
84
84
  return res
85
85
  ```
86
86
 
@@ -133,8 +133,8 @@ parameters:
133
133
  ```python
134
134
  from modelrunner import ModelBase
135
135
 
136
- class MyModel(ModelBase): # define custom model
137
136
 
137
+ class MyModel(ModelBase): # define custom model
138
138
  # defines supported parameters with default values
139
139
  parameters_default = {"a": 1, "b": 2}
140
140
 
@@ -143,7 +143,7 @@ class MyModel(ModelBase): # define custom model
143
143
  return self.parameters["a"] * self.parameters["b"]
144
144
 
145
145
 
146
- model = MyModel({"a" : 3})
146
+ model = MyModel({"a": 3})
147
147
  ```
148
148
 
149
149
  The last line actually creates an instance of the model with custom parameters.
@@ -153,10 +153,12 @@ Alternatively, a model can also be defined from a simple function:
153
153
  ```python
154
154
  from modelrunner import make_model
155
155
 
156
+
156
157
  @make_model
157
158
  def multiply(a=1, b=2):
158
159
  return a * b
159
160
 
161
+
160
162
  model = multiply(a=3)
161
163
  ```
162
164
 
@@ -219,10 +221,12 @@ A simple full script displaying this reads
219
221
  ```python
220
222
  from modelrunner import make_model, submit_job
221
223
 
224
+
222
225
  @make_model
223
226
  def multiply(a=1, b=2):
224
227
  return a * b
225
228
 
229
+
226
230
  if __name__ == "__main__":
227
231
  submit_job(__file__, parameters={"a": 2}, output="data.hdf5", method="foreground")
228
232
  ```
@@ -235,13 +239,17 @@ parameters to conduct a parameter study:
235
239
  ```python
236
240
  from modelrunner import make_model, submit_job
237
241
 
242
+
238
243
  @make_model
239
244
  def multiply(a=1, b=2):
240
245
  return a * b
241
246
 
247
+
242
248
  if __name__ == "__main__":
243
249
  for a in range(5):
244
- submit_job(__file__, parameters={"a": a}, output=f"data_{a}.hdf5", method="foreground")
250
+ submit_job(
251
+ __file__, parameters={"a": a}, output=f"data_{a}.hdf5", method="foreground"
252
+ )
245
253
  ```
246
254
 
247
255
  Note that the safe-guard `if __name__ == "__main__"` is absolutely crucial to ensure that
@@ -254,12 +262,16 @@ We also support submitting multiple jobs of a parameter study:
254
262
  ```python
255
263
  from modelrunner import make_model, submit_jobs
256
264
 
265
+
257
266
  @make_model
258
267
  def multiply(a=1, b=2):
259
268
  return a * b
260
269
 
270
+
261
271
  if __name__ == "__main__":
262
- submit_jobs(__file__, parameters={"a": range(5)}, output_folder="data", method="foreground")
272
+ submit_jobs(
273
+ __file__, parameters={"a": range(5)}, output_folder="data", method="foreground"
274
+ )
263
275
  ```
264
276
 
265
277
  Finally, the packages also offers a method to submit a model script to the cluster using
@@ -62,6 +62,7 @@ modelrunner/run/compatibility/version2.py
62
62
  modelrunner/run/templates/background.jinja
63
63
  modelrunner/run/templates/foreground.jinja
64
64
  modelrunner/run/templates/qsub.jinja
65
+ modelrunner/run/templates/sbatch.jinja
65
66
  modelrunner/run/templates/srun.jinja
66
67
  modelrunner/storage/__init__.py
67
68
  modelrunner/storage/access_modes.py
@@ -86,6 +87,8 @@ py_modelrunner.egg-info/SOURCES.txt
86
87
  py_modelrunner.egg-info/dependency_links.txt
87
88
  py_modelrunner.egg-info/not-zip-safe
88
89
  py_modelrunner.egg-info/requires.txt
90
+ py_modelrunner.egg-info/scm_file_list.json
91
+ py_modelrunner.egg-info/scm_version.json
89
92
  py_modelrunner.egg-info/top_level.txt
90
93
  scripts/create_compatibility_files.py
91
94
  scripts/format_code.sh
@@ -0,0 +1,212 @@
1
+ {
2
+ "files": [
3
+ ".github/workflows/build.yml",
4
+ ".github/workflows/check_docs.yml",
5
+ ".github/workflows/coverage_report.yml",
6
+ ".github/workflows/release_pip.yml",
7
+ ".gitignore",
8
+ ".readthedocs.yaml",
9
+ "LICENSE",
10
+ "README.md",
11
+ "docs/Makefile",
12
+ "docs/build_all.sh",
13
+ "docs/requirements.txt",
14
+ "docs/source/.gitignore",
15
+ "docs/source/conf.py",
16
+ "docs/source/examples.rst",
17
+ "docs/source/index.rst",
18
+ "docs/source/installation.rst",
19
+ "docs/source/parse_examples.py",
20
+ "docs/source/run_autodoc.py",
21
+ "docs/source/sphinx_simplify_typehints.py",
22
+ "docs/source/user_manual.rst",
23
+ "examples/io_hdf.py",
24
+ "examples/io_json.py",
25
+ "examples/io_yaml.py",
26
+ "examples/model_class.py",
27
+ "examples/model_decorator.py",
28
+ "examples/model_function.py",
29
+ "examples/model_storage_output.py",
30
+ "examples/read_many.py",
31
+ "examples/script_custom_func.py",
32
+ "examples/script_function.py",
33
+ "examples/script_many_classes.py",
34
+ "examples/script_minimal.py",
35
+ "examples/script_model_class.py",
36
+ "examples/submit_function.py",
37
+ "examples/submit_many_func.py",
38
+ "examples/submit_many_iter.py",
39
+ "examples/submit_shebang.py",
40
+ "modelrunner/.gitignore",
41
+ "modelrunner/__init__.py",
42
+ "modelrunner/__main__.py",
43
+ "modelrunner/config.py",
44
+ "modelrunner/model/__init__.py",
45
+ "modelrunner/model/base.py",
46
+ "modelrunner/model/factory.py",
47
+ "modelrunner/model/parameters.py",
48
+ "modelrunner/py.typed",
49
+ "modelrunner/run/__init__.py",
50
+ "modelrunner/run/__main__.py",
51
+ "modelrunner/run/compatibility/__init__.py",
52
+ "modelrunner/run/compatibility/triage.py",
53
+ "modelrunner/run/compatibility/version0.py",
54
+ "modelrunner/run/compatibility/version1.py",
55
+ "modelrunner/run/compatibility/version2.py",
56
+ "modelrunner/run/job.py",
57
+ "modelrunner/run/launch.py",
58
+ "modelrunner/run/results.py",
59
+ "modelrunner/run/templates/background.jinja",
60
+ "modelrunner/run/templates/foreground.jinja",
61
+ "modelrunner/run/templates/qsub.jinja",
62
+ "modelrunner/run/templates/sbatch.jinja",
63
+ "modelrunner/run/templates/srun.jinja",
64
+ "modelrunner/storage/__init__.py",
65
+ "modelrunner/storage/access_modes.py",
66
+ "modelrunner/storage/attributes.py",
67
+ "modelrunner/storage/backend/__init__.py",
68
+ "modelrunner/storage/backend/_zarr2.py",
69
+ "modelrunner/storage/backend/_zarr3.py",
70
+ "modelrunner/storage/backend/hdf.py",
71
+ "modelrunner/storage/backend/json.py",
72
+ "modelrunner/storage/backend/memory.py",
73
+ "modelrunner/storage/backend/text_base.py",
74
+ "modelrunner/storage/backend/utils.py",
75
+ "modelrunner/storage/backend/yaml.py",
76
+ "modelrunner/storage/backend/zarr.py",
77
+ "modelrunner/storage/base.py",
78
+ "modelrunner/storage/group.py",
79
+ "modelrunner/storage/tools.py",
80
+ "modelrunner/storage/trajectory.py",
81
+ "modelrunner/storage/utils.py",
82
+ "modelrunner/utils.py",
83
+ "pyproject.toml",
84
+ "requirements.txt",
85
+ "requirements_full.txt",
86
+ "scripts/create_compatibility_files.py",
87
+ "scripts/format_code.sh",
88
+ "scripts/performance_hdf5_zarr.py",
89
+ "scripts/requirements.txt",
90
+ "scripts/run_tests.py",
91
+ "scripts/tests_all.sh",
92
+ "scripts/tests_codestyle.sh",
93
+ "scripts/tests_coverage.sh",
94
+ "scripts/tests_debug.sh",
95
+ "scripts/tests_parallel.sh",
96
+ "scripts/tests_run.sh",
97
+ "scripts/tests_types.sh",
98
+ "tests/compatibility/0/result.hdf",
99
+ "tests/compatibility/0/result.json",
100
+ "tests/compatibility/0/result.pkl",
101
+ "tests/compatibility/0/result.yaml",
102
+ "tests/compatibility/1/_dict.zarr",
103
+ "tests/compatibility/1/_object.zarr",
104
+ "tests/compatibility/1/array.json",
105
+ "tests/compatibility/1/array.pkl",
106
+ "tests/compatibility/1/array.yaml",
107
+ "tests/compatibility/1/array.zarr",
108
+ "tests/compatibility/1/array_col.json",
109
+ "tests/compatibility/1/array_col.pkl",
110
+ "tests/compatibility/1/array_col.yaml",
111
+ "tests/compatibility/1/array_col.zarr",
112
+ "tests/compatibility/1/dict.json",
113
+ "tests/compatibility/1/dict.pkl",
114
+ "tests/compatibility/1/dict.yaml",
115
+ "tests/compatibility/1/object.json",
116
+ "tests/compatibility/1/object.pkl",
117
+ "tests/compatibility/1/object.yaml",
118
+ "tests/compatibility/2/array.hdf",
119
+ "tests/compatibility/2/array.json",
120
+ "tests/compatibility/2/array.pkl",
121
+ "tests/compatibility/2/array.yaml",
122
+ "tests/compatibility/2/array.zip",
123
+ "tests/compatibility/2/array_col.hdf",
124
+ "tests/compatibility/2/array_col.json",
125
+ "tests/compatibility/2/array_col.pkl",
126
+ "tests/compatibility/2/array_col.yaml",
127
+ "tests/compatibility/2/array_col.zip",
128
+ "tests/compatibility/2/dict.hdf",
129
+ "tests/compatibility/2/dict.json",
130
+ "tests/compatibility/2/dict.pkl",
131
+ "tests/compatibility/2/dict.yaml",
132
+ "tests/compatibility/2/dict.zip",
133
+ "tests/compatibility/2/nested.hdf",
134
+ "tests/compatibility/2/nested.json",
135
+ "tests/compatibility/2/nested.pkl",
136
+ "tests/compatibility/2/nested.yaml",
137
+ "tests/compatibility/2/nested.zip",
138
+ "tests/compatibility/3/array.hdf",
139
+ "tests/compatibility/3/array.json",
140
+ "tests/compatibility/3/array.pkl",
141
+ "tests/compatibility/3/array.yaml",
142
+ "tests/compatibility/3/array.zip",
143
+ "tests/compatibility/3/array_col.hdf",
144
+ "tests/compatibility/3/array_col.json",
145
+ "tests/compatibility/3/array_col.pkl",
146
+ "tests/compatibility/3/array_col.yaml",
147
+ "tests/compatibility/3/array_col.zip",
148
+ "tests/compatibility/3/dict.hdf",
149
+ "tests/compatibility/3/dict.json",
150
+ "tests/compatibility/3/dict.pkl",
151
+ "tests/compatibility/3/dict.yaml",
152
+ "tests/compatibility/3/dict.zip",
153
+ "tests/compatibility/3/model_array.hdf",
154
+ "tests/compatibility/3/model_array.json",
155
+ "tests/compatibility/3/model_array.pkl",
156
+ "tests/compatibility/3/model_array.yaml",
157
+ "tests/compatibility/3/model_array.zip",
158
+ "tests/compatibility/3/model_array_col.hdf",
159
+ "tests/compatibility/3/model_array_col.json",
160
+ "tests/compatibility/3/model_array_col.pkl",
161
+ "tests/compatibility/3/model_array_col.yaml",
162
+ "tests/compatibility/3/model_array_col.zip",
163
+ "tests/compatibility/3/model_dict.hdf",
164
+ "tests/compatibility/3/model_dict.json",
165
+ "tests/compatibility/3/model_dict.pkl",
166
+ "tests/compatibility/3/model_dict.yaml",
167
+ "tests/compatibility/3/model_dict.zip",
168
+ "tests/compatibility/3/model_nested.hdf",
169
+ "tests/compatibility/3/model_nested.json",
170
+ "tests/compatibility/3/model_nested.pkl",
171
+ "tests/compatibility/3/model_nested.yaml",
172
+ "tests/compatibility/3/model_nested.zip",
173
+ "tests/compatibility/3/nested.hdf",
174
+ "tests/compatibility/3/nested.json",
175
+ "tests/compatibility/3/nested.pkl",
176
+ "tests/compatibility/3/nested.yaml",
177
+ "tests/compatibility/3/nested.zip",
178
+ "tests/compatibility/test_compatibility.py",
179
+ "tests/conftest.py",
180
+ "tests/helpers/__init__.py",
181
+ "tests/helpers/asserts.py",
182
+ "tests/helpers/storage.py",
183
+ "tests/model/scripts/empty.py",
184
+ "tests/model/scripts/function.py",
185
+ "tests/model/scripts/function_main.py",
186
+ "tests/model/scripts/function_marked.py",
187
+ "tests/model/scripts/make_model.py",
188
+ "tests/model/scripts/make_model_class.py",
189
+ "tests/model/scripts/make_model_marked.py",
190
+ "tests/model/test_model.py",
191
+ "tests/model/test_parameters.py",
192
+ "tests/requirements.txt",
193
+ "tests/run/scripts/custom.jinja",
194
+ "tests/run/scripts/fail.py",
195
+ "tests/run/scripts/function.py",
196
+ "tests/run/scripts/print.py",
197
+ "tests/run/scripts/script.py",
198
+ "tests/run/test_job.py",
199
+ "tests/run/test_results.py",
200
+ "tests/run/test_run_main.py",
201
+ "tests/storage/test_group.py",
202
+ "tests/storage/test_register_action.py",
203
+ "tests/storage/test_storage_generic.py",
204
+ "tests/storage/test_storage_special.py",
205
+ "tests/storage/test_trajectory.py",
206
+ "tests/storage/test_utils.py",
207
+ "tests/test_config.py",
208
+ "tests/test_examples.py",
209
+ "tests/test_main.py",
210
+ "tests/test_version.py"
211
+ ]
212
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.20.2",
3
+ "distance": 0,
4
+ "node": "g9f5fb441db31fb91d4ca247a2c45c834aebafb04",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-10-28"
8
+ }
File without changes