py-modelrunner 0.20.1__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.
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/PKG-INFO +19 -7
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/README.md +18 -6
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/_version.py +3 -3
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/templates/sbatch.jinja +1 -2
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/templates/srun.jinja +1 -2
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/base.py +4 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/PKG-INFO +19 -7
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/scm_file_list.json +163 -163
- py_modelrunner-0.20.2/py_modelrunner.egg-info/scm_version.json +8 -0
- py_modelrunner-0.20.1/py_modelrunner.egg-info/scm_version.json +0 -8
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/.github/workflows/build.yml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/.github/workflows/check_docs.yml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/.github/workflows/coverage_report.yml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/.github/workflows/release_pip.yml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/.gitignore +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/.readthedocs.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/LICENSE +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/Makefile +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/build_all.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/requirements.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/.gitignore +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/conf.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/examples.rst +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/index.rst +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/installation.rst +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/parse_examples.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/run_autodoc.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/sphinx_simplify_typehints.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/docs/source/user_manual.rst +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/io_hdf.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/io_json.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/io_yaml.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/model_class.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/model_decorator.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/model_function.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/model_storage_output.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/read_many.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/script_custom_func.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/script_function.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/script_many_classes.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/script_minimal.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/script_model_class.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/submit_function.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/submit_many_func.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/submit_many_iter.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/examples/submit_shebang.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/.gitignore +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/__init__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/__main__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/config.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/model/__init__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/model/base.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/model/factory.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/model/parameters.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/py.typed +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/__init__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/__main__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/__init__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/triage.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/version0.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/version1.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/compatibility/version2.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/job.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/launch.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/results.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/templates/background.jinja +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/templates/foreground.jinja +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/run/templates/qsub.jinja +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/__init__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/access_modes.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/attributes.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/__init__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/_zarr2.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/_zarr3.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/hdf.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/json.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/memory.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/text_base.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/utils.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/yaml.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/backend/zarr.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/group.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/tools.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/trajectory.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/storage/utils.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/modelrunner/utils.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/SOURCES.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/dependency_links.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/not-zip-safe +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/requires.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/py_modelrunner.egg-info/top_level.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/pyproject.toml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/requirements.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/requirements_full.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/create_compatibility_files.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/format_code.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/performance_hdf5_zarr.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/requirements.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/run_tests.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/tests_all.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/tests_codestyle.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/tests_coverage.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/tests_debug.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/tests_parallel.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/tests_run.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/scripts/tests_types.sh +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/setup.cfg +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/0/result.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/0/result.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/0/result.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/0/result.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/_dict.zarr +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/_object.zarr +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array.zarr +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/array_col.zarr +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/dict.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/dict.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/dict.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/object.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/object.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/1/object.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/array_col.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/dict.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/2/nested.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/array_col.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/dict.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_array_col.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_dict.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/model_nested.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.hdf +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.json +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.pkl +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.yaml +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/3/nested.zip +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/compatibility/test_compatibility.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/conftest.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/helpers/__init__.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/helpers/asserts.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/helpers/storage.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/scripts/empty.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/scripts/function.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/scripts/function_main.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/scripts/function_marked.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/scripts/make_model.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/scripts/make_model_class.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/scripts/make_model_marked.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/test_model.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/model/test_parameters.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/requirements.txt +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/scripts/custom.jinja +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/scripts/fail.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/scripts/function.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/scripts/print.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/scripts/script.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/test_job.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/test_results.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/run/test_run_main.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/storage/test_group.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/storage/test_register_action.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/storage/test_storage_generic.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/storage/test_storage_special.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/storage/test_trajectory.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/storage/test_utils.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/test_config.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/test_examples.py +0 -0
- {py_modelrunner-0.20.1 → py_modelrunner-0.20.2}/tests/test_main.py +0 -0
- {py_modelrunner-0.20.1 → 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.
|
|
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
|
|
81
|
+
res = a**b
|
|
82
82
|
if negate:
|
|
83
|
-
|
|
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"
|
|
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(
|
|
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(
|
|
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
|
|
39
|
+
res = a**b
|
|
40
40
|
if negate:
|
|
41
|
-
|
|
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"
|
|
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(
|
|
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(
|
|
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.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 20,
|
|
21
|
+
__version__ = version = '0.20.2'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 20, 2)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g9f5fb441d'
|
|
@@ -10,13 +10,12 @@
|
|
|
10
10
|
#SBATCH --job-name={{ JOB_NAME }}
|
|
11
11
|
# Queue (Partition):
|
|
12
12
|
{% if CONFIG['partition'] is defined %}
|
|
13
|
-
#SBATCH
|
|
13
|
+
#SBATCH --partition {{ CONFIG['partition'] }}
|
|
14
14
|
{% endif %}
|
|
15
15
|
# Set max. runtime
|
|
16
16
|
{% if CONFIG['time'] is defined %}
|
|
17
17
|
#SBATCH --time={{ TIME }}
|
|
18
18
|
{% endif %}
|
|
19
|
-
#SBATCH --time=12:00:00
|
|
20
19
|
|
|
21
20
|
hostname
|
|
22
21
|
echo $JOB_ID
|
|
@@ -10,13 +10,12 @@
|
|
|
10
10
|
#SBATCH --job-name={{ JOB_NAME }}
|
|
11
11
|
# Queue (Partition):
|
|
12
12
|
{% if CONFIG['partition'] is defined %}
|
|
13
|
-
#SBATCH
|
|
13
|
+
#SBATCH --partition {{ CONFIG['partition'] }}
|
|
14
14
|
{% endif %}
|
|
15
15
|
# Set max. runtime
|
|
16
16
|
{% if CONFIG['time'] is defined %}
|
|
17
17
|
#SBATCH --time={{ TIME }}
|
|
18
18
|
{% endif %}
|
|
19
|
-
#SBATCH --time=12:00:00
|
|
20
19
|
|
|
21
20
|
hostname
|
|
22
21
|
echo $JOB_ID
|
|
@@ -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
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: py-modelrunner
|
|
3
|
-
Version: 0.20.
|
|
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
|
|
81
|
+
res = a**b
|
|
82
82
|
if negate:
|
|
83
|
-
|
|
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"
|
|
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(
|
|
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(
|
|
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
|