dpdispatcher 0.6.9__tar.gz → 0.6.11__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.

Potentially problematic release.


This version of dpdispatcher might be problematic. Click here for more details.

Files changed (258) hide show
  1. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/ci-docker.yml +1 -1
  2. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/machines.yml +1 -1
  3. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/publish_conda.yml +1 -1
  4. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/pyright.yml +1 -1
  5. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/release.yml +1 -1
  6. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/test-bohrium.yml +1 -1
  7. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/test.yml +2 -2
  8. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.pre-commit-config.yaml +2 -2
  9. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/PKG-INFO +1 -1
  10. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/_version.py +16 -3
  11. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/contexts/openapi_context.py +68 -11
  12. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/contexts/ssh_context.py +0 -2
  13. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/openapi.py +38 -8
  14. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/slurm.py +1 -1
  15. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher.egg-info/PKG-INFO +1 -1
  16. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.git_archival.txt +0 -0
  17. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.gitattributes +0 -0
  18. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/dependabot.yml +0 -0
  19. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.github/workflows/mirror_gitee.yml +0 -0
  20. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.gitignore +0 -0
  21. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/.readthedocs.yaml +0 -0
  22. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/CONTRIBUTING.md +0 -0
  23. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/Dockerfile +0 -0
  24. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/LICENSE +0 -0
  25. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/README.md +0 -0
  26. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/LICENSE +0 -0
  27. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/README.md +0 -0
  28. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/pbs/docker-compose.yml +0 -0
  29. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/pbs/start-pbs.sh +0 -0
  30. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/pbs.sh +0 -0
  31. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/slurm/docker-compose.yml +0 -0
  32. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/slurm/register_cluster.sh +0 -0
  33. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/slurm/start-slurm.sh +0 -0
  34. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/slurm.sh +0 -0
  35. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/ssh/docker-compose.yml +0 -0
  36. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/ssh/start-ssh.sh +0 -0
  37. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/ssh.sh +0 -0
  38. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/ci/ssh_rsync.sh +0 -0
  39. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/codecov.yml +0 -0
  40. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/conda/conda_build_config.yaml +0 -0
  41. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/conda/meta.yaml +0 -0
  42. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/.gitignore +0 -0
  43. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/Makefile +0 -0
  44. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/batch.md +0 -0
  45. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/cli.rst +0 -0
  46. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/conf.py +0 -0
  47. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/context.md +0 -0
  48. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/credits.rst +0 -0
  49. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/dpdispatcher_on_yarn.md +0 -0
  50. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/env.md +0 -0
  51. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/examples/expanse.md +0 -0
  52. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/examples/g16.md +0 -0
  53. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/examples/shell.md +0 -0
  54. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/examples/template.md +0 -0
  55. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/getting-started.md +0 -0
  56. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/index.rst +0 -0
  57. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/install.md +0 -0
  58. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/machine.rst +0 -0
  59. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/make.bat +0 -0
  60. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/pep723.rst +0 -0
  61. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/requirements.txt +0 -0
  62. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/resources.rst +0 -0
  63. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/run.md +0 -0
  64. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/doc/task.rst +0 -0
  65. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/__init__.py +0 -0
  66. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/__main__.py +0 -0
  67. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/arginfo.py +0 -0
  68. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/base_context.py +0 -0
  69. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/contexts/__init__.py +0 -0
  70. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/contexts/dp_cloud_server_context.py +0 -0
  71. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/contexts/hdfs_context.py +0 -0
  72. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/contexts/lazy_local_context.py +0 -0
  73. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/contexts/local_context.py +0 -0
  74. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/dlog.py +0 -0
  75. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/dpcloudserver/__init__.py +0 -0
  76. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/dpcloudserver/client.py +0 -0
  77. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/dpdisp.py +0 -0
  78. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/entrypoints/__init__.py +0 -0
  79. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/entrypoints/gui.py +0 -0
  80. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/entrypoints/run.py +0 -0
  81. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/entrypoints/submission.py +0 -0
  82. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machine.py +0 -0
  83. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/JH_UniScheduler.py +0 -0
  84. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/__init__.py +0 -0
  85. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/distributed_shell.py +0 -0
  86. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/dp_cloud_server.py +0 -0
  87. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/fugaku.py +0 -0
  88. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/lsf.py +0 -0
  89. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/pbs.py +0 -0
  90. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/machines/shell.py +0 -0
  91. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/run.py +0 -0
  92. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/submission.py +0 -0
  93. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/__init__.py +0 -0
  94. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/dpcloudserver/__init__.py +0 -0
  95. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/dpcloudserver/client.py +0 -0
  96. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/dpcloudserver/config.py +0 -0
  97. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/dpcloudserver/retcode.py +0 -0
  98. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/dpcloudserver/zip_file.py +0 -0
  99. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/hdfs_cli.py +0 -0
  100. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/job_status.py +0 -0
  101. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/record.py +0 -0
  102. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher/utils/utils.py +0 -0
  103. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher.egg-info/SOURCES.txt +0 -0
  104. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher.egg-info/dependency_links.txt +0 -0
  105. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher.egg-info/entry_points.txt +0 -0
  106. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher.egg-info/requires.txt +0 -0
  107. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/dpdispatcher.egg-info/top_level.txt +0 -0
  108. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/dpdisp_run.py +0 -0
  109. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/machine/expanse.json +0 -0
  110. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/machine/lazy_local.json +0 -0
  111. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/machine/mandu.json +0 -0
  112. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/resources/expanse_cpu.json +0 -0
  113. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/resources/mandu.json +0 -0
  114. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/resources/template.slurm +0 -0
  115. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/resources/tiger.json +0 -0
  116. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/task/deepmd-kit.json +0 -0
  117. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/examples/task/g16.json +0 -0
  118. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/pyproject.toml +0 -0
  119. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/scripts/script_gen_dargs_docs.py +0 -0
  120. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/scripts/script_gen_dargs_json.py +0 -0
  121. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/setup.cfg +0 -0
  122. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/.gitignore +0 -0
  123. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/__init__.py +0 -0
  124. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/batch.json +0 -0
  125. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/context.py +0 -0
  126. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/debug_test_class_submission_init.py +0 -0
  127. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_JH_UniScheduler.py +0 -0
  128. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_ali_ehpc.py +0 -0
  129. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_dp_cloud_server.py +0 -0
  130. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_lazy_ali_ehpc.py +0 -0
  131. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_lsf.py +0 -0
  132. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_shell.py +0 -0
  133. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_slurm.py +0 -0
  134. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/devel_test_ssh_ali_ehpc.py +0 -0
  135. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/graph.pb +0 -0
  136. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/hello_world.py +0 -0
  137. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/job.json +0 -0
  138. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine.json +0 -0
  139. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_JH_UniScheduler.json +0 -0
  140. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_ali_ehpc.json +0 -0
  141. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_center.json +0 -0
  142. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_diffenert.json +0 -0
  143. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_dp_cloud_server.json +0 -0
  144. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_fugaku.json +0 -0
  145. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_if_cuda_multi_devices.json +0 -0
  146. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_lazy_local_jh_unischeduler.json +0 -0
  147. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_lazy_local_lsf.json +0 -0
  148. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_lazy_local_slurm.json +0 -0
  149. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_lazylocal_shell.json +0 -0
  150. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_local_fugaku.json +0 -0
  151. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_local_shell.json +0 -0
  152. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_lsf.json +0 -0
  153. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_openapi.json +0 -0
  154. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_slurm.json +0 -0
  155. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/machine_yarn.json +0 -0
  156. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/resources.json +0 -0
  157. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/submission.json +0 -0
  158. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/jsons/task.json +0 -0
  159. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/sample_class.py +0 -0
  160. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/script_gen_json.py +0 -0
  161. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/slurm_test.env +0 -0
  162. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_JH_UniScheduler_script_generation.py +0 -0
  163. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_argcheck.py +0 -0
  164. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_class_job.py +0 -0
  165. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_class_machine.py +0 -0
  166. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_class_machine_dispatch.py +0 -0
  167. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_class_resources.py +0 -0
  168. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_class_submission.py +0 -0
  169. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_class_submission_init.py +0 -0
  170. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_class_task.py +0 -0
  171. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_cli.py +0 -0
  172. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-1/conf.lmp +0 -0
  173. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-1/input.lammps +0 -0
  174. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-1/some_dir/some_file +0 -0
  175. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-2/conf.lmp +0 -0
  176. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-2/input.lammps +0 -0
  177. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-3/conf.lmp +0 -0
  178. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-3/input.lammps +0 -0
  179. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-4/conf.lmp +0 -0
  180. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/bct-4/input.lammps +0 -0
  181. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/dir with space/file with space +0 -0
  182. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/graph.pb +0 -0
  183. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_context_dir/0_md/some_dir/some_file +0 -0
  184. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_examples.py +0 -0
  185. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_group_size.py +0 -0
  186. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_gui.py +0 -0
  187. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_context.py +0 -0
  188. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-1/conf.lmp +0 -0
  189. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-1/input.lammps +0 -0
  190. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-2/conf.lmp +0 -0
  191. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-2/input.lammps +0 -0
  192. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-3/conf.lmp +0 -0
  193. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-3/input.lammps +0 -0
  194. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-4/conf.lmp +0 -0
  195. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/bct-4/input.lammps +0 -0
  196. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_hdfs_dir/0_md/graph.pb +0 -0
  197. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_if_cuda_multi_devices/test_dir/test.txt +0 -0
  198. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_import_classes.py +0 -0
  199. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-1/conf.lmp +0 -0
  200. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-1/input.lammps +0 -0
  201. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-2/conf.lmp +0 -0
  202. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-2/input.lammps +0 -0
  203. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-3/conf.lmp +0 -0
  204. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-3/input.lammps +0 -0
  205. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-4/conf.lmp +0 -0
  206. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/bct-4/input.lammps +0 -0
  207. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_jh_unischeduler/0_md/graph.pb +0 -0
  208. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lazy_local_context.py +0 -0
  209. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_local_context.py +0 -0
  210. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-1/conf.lmp +0 -0
  211. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-1/input.lammps +0 -0
  212. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-2/conf.lmp +0 -0
  213. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-2/input.lammps +0 -0
  214. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-3/conf.lmp +0 -0
  215. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-3/input.lammps +0 -0
  216. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-4/conf.lmp +0 -0
  217. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/bct-4/input.lammps +0 -0
  218. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/graph.pb +0 -0
  219. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_dir/0_md/submission.json +0 -0
  220. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_lsf_script_generation.py +0 -0
  221. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-1/conf.lmp +0 -0
  222. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-1/input.lammps +0 -0
  223. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-2/conf.lmp +0 -0
  224. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-2/input.lammps +0 -0
  225. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-3/conf.lmp +0 -0
  226. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-3/input.lammps +0 -0
  227. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-4/conf.lmp +0 -0
  228. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/bct-4/input.lammps +0 -0
  229. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_pbs_dir/0_md/graph.pb +0 -0
  230. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_retry.py +0 -0
  231. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_run.py +0 -0
  232. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_run_submission.py +0 -0
  233. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_run_submission_bohrium.py +0 -0
  234. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_run_submission_ratio_unfinished.py +0 -0
  235. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_cuda_multi_devices.py +0 -0
  236. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival.py +0 -0
  237. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/fail_dir/mock_fail_task.txt +0 -0
  238. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/parent_dir/dir with space/example.txt +0 -0
  239. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/parent_dir/dir1/example.txt +0 -0
  240. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/parent_dir/dir2/example.txt +0 -0
  241. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/parent_dir/dir3/example.txt +0 -0
  242. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/parent_dir/dir4/example.txt +0 -0
  243. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/parent_dir/graph.pb +0 -0
  244. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_shell_trival_dir/recover_dir/mock_recover_task.txt +0 -0
  245. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-1/conf.lmp +0 -0
  246. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-1/input.lammps +0 -0
  247. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-2/conf.lmp +0 -0
  248. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-2/input.lammps +0 -0
  249. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-3/conf.lmp +0 -0
  250. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-3/input.lammps +0 -0
  251. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-4/conf.lmp +0 -0
  252. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/bct-4/input.lammps +0 -0
  253. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/d3c842c5b9476e48f7145b370cd330372b9293e1.json +0 -0
  254. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/graph.pb +0 -0
  255. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_dir/0_md/submission.json +0 -0
  256. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_slurm_script_generation.py +0 -0
  257. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_ssh_context.py +0 -0
  258. {dpdispatcher-0.6.9 → dpdispatcher-0.6.11}/tests/test_work_path/.gitkeep +0 -0
@@ -12,7 +12,7 @@ jobs:
12
12
  runs-on: ubuntu-latest
13
13
  steps:
14
14
  - name: Check out the repo
15
- uses: actions/checkout@v4
15
+ uses: actions/checkout@v5
16
16
 
17
17
  - name: Log in to Docker Hub
18
18
  uses: docker/login-action@v3
@@ -15,7 +15,7 @@ jobs:
15
15
  - ssh
16
16
  - ssh_rsync
17
17
  steps:
18
- - uses: actions/checkout@v4
18
+ - uses: actions/checkout@v5
19
19
  - run: ./ci/${{ matrix.machine }}.sh
20
20
  env:
21
21
  CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -9,7 +9,7 @@ jobs:
9
9
  publish:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@v4
12
+ - uses: actions/checkout@v5
13
13
  - name: publish-to-conda
14
14
  uses: felix5572/conda-publish-action@v1.9
15
15
  with:
@@ -7,7 +7,7 @@ jobs:
7
7
  name: pyright
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
- - uses: actions/checkout@v4
10
+ - uses: actions/checkout@v5
11
11
  - uses: actions/setup-python@v5
12
12
  with:
13
13
  python-version: '3.11'
@@ -8,7 +8,7 @@ jobs:
8
8
  # IMPORTANT: this permission is mandatory for trusted publishing
9
9
  id-token: write
10
10
  steps:
11
- - uses: actions/checkout@v4
11
+ - uses: actions/checkout@v5
12
12
  - name: Setup python
13
13
  uses: actions/setup-python@v5
14
14
  with:
@@ -12,7 +12,7 @@ jobs:
12
12
  environment: bohrium
13
13
  if: github.repository_owner == 'deepmodeling' && (github.event.label.name == 'Test Bohrium' || github.event_name == 'push')
14
14
  steps:
15
- - uses: actions/checkout@v4
15
+ - uses: actions/checkout@v5
16
16
  with:
17
17
  ref: "${{ github.event.pull_request.merge_commit_sha }}"
18
18
  - name: Set up Python 3.12
@@ -26,12 +26,12 @@ jobs:
26
26
  - python-version: "3.7"
27
27
  platform: macos-13
28
28
  steps:
29
- - uses: actions/checkout@v4
29
+ - uses: actions/checkout@v5
30
30
  - name: Set up Python ${{ matrix.python-version }}
31
31
  uses: actions/setup-python@v5
32
32
  with:
33
33
  python-version: ${{ matrix.python-version }}
34
- - uses: astral-sh/setup-uv@v5
34
+ - uses: astral-sh/setup-uv@v6
35
35
  with:
36
36
  enable-cache: true
37
37
  cache-dependency-glob: |
@@ -2,7 +2,7 @@
2
2
  # See https://pre-commit.com/hooks.html for more hooks
3
3
  repos:
4
4
  - repo: https://github.com/pre-commit/pre-commit-hooks
5
- rev: v5.0.0
5
+ rev: v6.0.0
6
6
  hooks:
7
7
  - id: trailing-whitespace
8
8
  exclude: "^tests/"
@@ -18,7 +18,7 @@ repos:
18
18
  # Python
19
19
  - repo: https://github.com/astral-sh/ruff-pre-commit
20
20
  # Ruff version.
21
- rev: v0.9.3
21
+ rev: v0.12.8
22
22
  hooks:
23
23
  - id: ruff
24
24
  args: ["--fix"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dpdispatcher
3
- Version: 0.6.9
3
+ Version: 0.6.11
4
4
  Summary: Generate HPC scheduler systems jobs input scripts, submit these scripts to HPC systems, and poke until they finish
5
5
  Author: DeepModeling
6
6
  License: GNU LESSER GENERAL PUBLIC LICENSE
@@ -1,7 +1,14 @@
1
1
  # file generated by setuptools-scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
4
+ __all__ = [
5
+ "__version__",
6
+ "__version_tuple__",
7
+ "version",
8
+ "version_tuple",
9
+ "__commit_id__",
10
+ "commit_id",
11
+ ]
5
12
 
6
13
  TYPE_CHECKING = False
7
14
  if TYPE_CHECKING:
@@ -9,13 +16,19 @@ if TYPE_CHECKING:
9
16
  from typing import Union
10
17
 
11
18
  VERSION_TUPLE = Tuple[Union[int, str], ...]
19
+ COMMIT_ID = Union[str, None]
12
20
  else:
13
21
  VERSION_TUPLE = object
22
+ COMMIT_ID = object
14
23
 
15
24
  version: str
16
25
  __version__: str
17
26
  __version_tuple__: VERSION_TUPLE
18
27
  version_tuple: VERSION_TUPLE
28
+ commit_id: COMMIT_ID
29
+ __commit_id__: COMMIT_ID
19
30
 
20
- __version__ = version = '0.6.9'
21
- __version_tuple__ = version_tuple = (0, 6, 9)
31
+ __version__ = version = '0.6.11'
32
+ __version_tuple__ = version_tuple = (0, 6, 11)
33
+
34
+ __commit_id__ = commit_id = 'gce67803b9'
@@ -1,18 +1,20 @@
1
+ import glob
1
2
  import os
2
3
  import shutil
3
4
  import uuid
5
+ from zipfile import ZipFile
4
6
 
5
7
  import tqdm
6
8
 
7
9
  try:
8
- from bohriumsdk.client import Client
9
- from bohriumsdk.job import Job
10
- from bohriumsdk.storage import Storage
11
- from bohriumsdk.util import Util
12
- except ModuleNotFoundError:
10
+ from bohrium import Bohrium
11
+ from bohrium.resources import Job, Tiefblue
12
+ except ModuleNotFoundError as e:
13
13
  found_bohriumsdk = False
14
+ import_bohrium_error = e
14
15
  else:
15
16
  found_bohriumsdk = True
17
+ import_bohrium_error = None
16
18
 
17
19
  from dpdispatcher.base_context import BaseContext
18
20
  from dpdispatcher.dlog import dlog
@@ -23,6 +25,36 @@ DP_CLOUD_SERVER_HOME_DIR = os.path.join(
23
25
  )
24
26
 
25
27
 
28
+ def unzip_file(zip_file, out_dir="./"):
29
+ obj = ZipFile(zip_file, "r")
30
+ for item in obj.namelist():
31
+ obj.extract(item, out_dir)
32
+
33
+
34
+ def zip_file_list(root_path, zip_filename, file_list=[]):
35
+ out_zip_file = os.path.join(root_path, zip_filename)
36
+ # print('debug: file_list', file_list)
37
+ zip_obj = ZipFile(out_zip_file, "w")
38
+ for f in file_list:
39
+ matched_files = os.path.join(root_path, f)
40
+ for ii in glob.glob(matched_files):
41
+ # print('debug: matched_files:ii', ii)
42
+ if os.path.isdir(ii):
43
+ arcname = os.path.relpath(ii, start=root_path)
44
+ zip_obj.write(ii, arcname)
45
+ for root, dirs, files in os.walk(ii):
46
+ for file in files:
47
+ filename = os.path.join(root, file)
48
+ arcname = os.path.relpath(filename, start=root_path)
49
+ # print('debug: filename:arcname:root_path', filename, arcname, root_path)
50
+ zip_obj.write(filename, arcname)
51
+ else:
52
+ arcname = os.path.relpath(ii, start=root_path)
53
+ zip_obj.write(ii, arcname)
54
+ zip_obj.close()
55
+ return out_zip_file
56
+
57
+
26
58
  class OpenAPIContext(BaseContext):
27
59
  def __init__(
28
60
  self,
@@ -35,16 +67,41 @@ class OpenAPIContext(BaseContext):
35
67
  if not found_bohriumsdk:
36
68
  raise ModuleNotFoundError(
37
69
  "bohriumsdk not installed. Install dpdispatcher with `pip install dpdispatcher[bohrium]`"
38
- )
70
+ ) from import_bohrium_error
39
71
  self.init_local_root = local_root
40
72
  self.init_remote_root = remote_root
41
73
  self.temp_local_root = os.path.abspath(local_root)
42
74
  self.remote_profile = remote_profile
43
- self.client = Client()
44
- self.storage = Storage(client=self.client)
75
+ access_key = (
76
+ remote_profile.get("access_key", None)
77
+ or os.getenv("BOHRIUM_ACCESS_KEY", None)
78
+ or os.getenv("ACCESS_KEY", None)
79
+ )
80
+ project_id = (
81
+ remote_profile.get("project_id", None)
82
+ or os.getenv("BOHRIUM_PROJECT_ID", None)
83
+ or os.getenv("PROJECT_ID", None)
84
+ )
85
+ app_key = (
86
+ remote_profile.get("app_key", None)
87
+ or os.getenv("BOHRIUM_APP_KEY", None)
88
+ or os.getenv("APP_KEY", None)
89
+ )
90
+ if access_key is None:
91
+ raise ValueError(
92
+ "remote_profile must contain 'access_key' or set environment variable 'BOHRIUM_ACCESS_KEY'"
93
+ )
94
+ if project_id is None:
95
+ raise ValueError(
96
+ "remote_profile must contain 'project_id' or set environment variable 'BOHRIUM_PROJECT_ID'"
97
+ )
98
+ self.client = Bohrium(
99
+ access_key=access_key, project_id=project_id, app_key=app_key
100
+ )
101
+ self.storage = Tiefblue()
45
102
  self.job = Job(client=self.client)
46
- self.util = Util()
47
103
  self.jgid = None
104
+ os.makedirs(DP_CLOUD_SERVER_HOME_DIR, exist_ok=True)
48
105
 
49
106
  @classmethod
50
107
  def load_from_dict(cls, context_dict):
@@ -97,7 +154,7 @@ class OpenAPIContext(BaseContext):
97
154
  for file in task.forward_files:
98
155
  upload_file_list.append(os.path.join(task.task_work_path, file))
99
156
 
100
- upload_zip = Util.zip_file_list(
157
+ upload_zip = zip_file_list(
101
158
  self.local_root, zip_task_file, file_list=upload_file_list
102
159
  )
103
160
  project_id = self.remote_profile.get("project_id", 0)
@@ -189,7 +246,7 @@ class OpenAPIContext(BaseContext):
189
246
  ):
190
247
  continue
191
248
  self.storage.download_from_url(info["resultUrl"], target_result_zip)
192
- Util.unzip_file(target_result_zip, out_dir=self.local_root)
249
+ unzip_file(target_result_zip, out_dir=self.local_root)
193
250
  self._backup(self.local_root, target_result_zip)
194
251
  self._clean_backup(
195
252
  self.local_root, keep_backup=self.remote_profile.get("keep_backup", True)
@@ -163,7 +163,6 @@ class SSHSession:
163
163
  if os.path.exists(key_path):
164
164
  for pkey_class in (
165
165
  paramiko.RSAKey,
166
- paramiko.DSSKey,
167
166
  paramiko.ECDSAKey,
168
167
  paramiko.Ed25519Key,
169
168
  ):
@@ -181,7 +180,6 @@ class SSHSession:
181
180
  elif self.look_for_keys:
182
181
  for keytype, name in [
183
182
  (paramiko.RSAKey, "rsa"),
184
- (paramiko.DSSKey, "dsa"),
185
183
  (paramiko.ECDSAKey, "ecdsa"),
186
184
  (paramiko.Ed25519Key, "ed25519"),
187
185
  ]:
@@ -1,14 +1,13 @@
1
1
  import os
2
2
  import shutil
3
3
  import time
4
+ from zipfile import ZipFile
4
5
 
5
6
  from dpdispatcher.utils.utils import customized_script_header_template
6
7
 
7
8
  try:
8
- from bohriumsdk.client import Client
9
- from bohriumsdk.job import Job
10
- from bohriumsdk.storage import Storage
11
- from bohriumsdk.util import Util
9
+ from bohrium import Bohrium
10
+ from bohrium.resources import Job, Tiefblue
12
11
  except ModuleNotFoundError:
13
12
  found_bohriumsdk = False
14
13
  else:
@@ -23,6 +22,12 @@ shell_script_header_template = """
23
22
  """
24
23
 
25
24
 
25
+ def unzip_file(zip_file, out_dir="./"):
26
+ obj = ZipFile(zip_file, "r")
27
+ for item in obj.namelist():
28
+ obj.extract(item, out_dir)
29
+
30
+
26
31
  class OpenAPI(Machine):
27
32
  def __init__(self, context):
28
33
  if not found_bohriumsdk:
@@ -35,9 +40,35 @@ class OpenAPI(Machine):
35
40
  self.grouped = self.remote_profile.get("grouped", True)
36
41
  self.retry_count = self.remote_profile.get("retry_count", 3)
37
42
  self.ignore_exit_code = context.remote_profile.get("ignore_exit_code", True)
38
- self.client = Client()
43
+
44
+ access_key = (
45
+ self.remote_profile.get("access_key", None)
46
+ or os.getenv("BOHRIUM_ACCESS_KEY", None)
47
+ or os.getenv("ACCESS_KEY", None)
48
+ )
49
+ project_id = (
50
+ self.remote_profile.get("project_id", None)
51
+ or os.getenv("BOHRIUM_PROJECT_ID", None)
52
+ or os.getenv("PROJECT_ID", None)
53
+ )
54
+ app_key = (
55
+ self.remote_profile.get("app_key", None)
56
+ or os.getenv("BOHRIUM_APP_KEY", None)
57
+ or os.getenv("APP_KEY", None)
58
+ )
59
+ if access_key is None:
60
+ raise ValueError(
61
+ "remote_profile must contain 'access_key' or set environment variable 'BOHRIUM_ACCESS_KEY'"
62
+ )
63
+ if project_id is None:
64
+ raise ValueError(
65
+ "remote_profile must contain 'project_id' or set environment variable 'BOHRIUM_PROJECT_ID'"
66
+ )
67
+ self.client = Bohrium(
68
+ access_key=access_key, project_id=project_id, app_key=app_key
69
+ )
70
+ self.storage = Tiefblue()
39
71
  self.job = Job(client=self.client)
40
- self.storage = Storage(client=self.client)
41
72
  self.group_id = None
42
73
 
43
74
  def gen_script(self, job):
@@ -102,7 +133,6 @@ class OpenAPI(Machine):
102
133
  }
103
134
  if job.job_state == JobStatus.unsubmitted:
104
135
  openapi_params["job_id"] = job.job_id
105
-
106
136
  data = self.job.insert(**openapi_params)
107
137
 
108
138
  job.job_id = data.get("jobId", 0) # type: ignore
@@ -170,7 +200,7 @@ class OpenAPI(Machine):
170
200
  result_filename = job_hash + "_back.zip"
171
201
  target_result_zip = os.path.join(self.context.local_root, result_filename)
172
202
  self.storage.download_from_url(job_url, target_result_zip)
173
- Util.unzip_file(target_result_zip, out_dir=self.context.local_root)
203
+ unzip_file(target_result_zip, out_dir=self.context.local_root)
174
204
  try:
175
205
  os.makedirs(os.path.join(self.context.local_root, "backup"), exist_ok=True)
176
206
  shutil.move(
@@ -85,7 +85,7 @@ class Slurm(Machine):
85
85
  # self.context.write_file(fname=os.path.join(self.context.submission.work_base, script_file_name), write_str=script_str)
86
86
  command = "cd {} && {} {}".format(
87
87
  shlex.quote(self.context.remote_root),
88
- "sbatch",
88
+ "sbatch --parsable",
89
89
  shlex.quote(script_file_name),
90
90
  )
91
91
  ret, stdin, stdout, stderr = self.context.block_call(command)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dpdispatcher
3
- Version: 0.6.9
3
+ Version: 0.6.11
4
4
  Summary: Generate HPC scheduler systems jobs input scripts, submit these scripts to HPC systems, and poke until they finish
5
5
  Author: DeepModeling
6
6
  License: GNU LESSER GENERAL PUBLIC LICENSE
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes