dpdispatcher 0.6.9__tar.gz → 0.6.10__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 (258) hide show
  1. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/test.yml +1 -1
  2. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/PKG-INFO +1 -1
  3. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/_version.py +2 -2
  4. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/contexts/openapi_context.py +67 -11
  5. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/openapi.py +38 -8
  6. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/slurm.py +1 -1
  7. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher.egg-info/PKG-INFO +1 -1
  8. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.git_archival.txt +0 -0
  9. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.gitattributes +0 -0
  10. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/dependabot.yml +0 -0
  11. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/ci-docker.yml +0 -0
  12. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/machines.yml +0 -0
  13. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/mirror_gitee.yml +0 -0
  14. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/publish_conda.yml +0 -0
  15. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/pyright.yml +0 -0
  16. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/release.yml +0 -0
  17. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.github/workflows/test-bohrium.yml +0 -0
  18. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.gitignore +0 -0
  19. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.pre-commit-config.yaml +0 -0
  20. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/.readthedocs.yaml +0 -0
  21. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/CONTRIBUTING.md +0 -0
  22. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/Dockerfile +0 -0
  23. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/LICENSE +0 -0
  24. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/README.md +0 -0
  25. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/LICENSE +0 -0
  26. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/README.md +0 -0
  27. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/pbs/docker-compose.yml +0 -0
  28. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/pbs/start-pbs.sh +0 -0
  29. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/pbs.sh +0 -0
  30. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/slurm/docker-compose.yml +0 -0
  31. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/slurm/register_cluster.sh +0 -0
  32. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/slurm/start-slurm.sh +0 -0
  33. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/slurm.sh +0 -0
  34. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/ssh/docker-compose.yml +0 -0
  35. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/ssh/start-ssh.sh +0 -0
  36. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/ssh.sh +0 -0
  37. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/ci/ssh_rsync.sh +0 -0
  38. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/codecov.yml +0 -0
  39. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/conda/conda_build_config.yaml +0 -0
  40. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/conda/meta.yaml +0 -0
  41. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/.gitignore +0 -0
  42. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/Makefile +0 -0
  43. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/batch.md +0 -0
  44. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/cli.rst +0 -0
  45. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/conf.py +0 -0
  46. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/context.md +0 -0
  47. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/credits.rst +0 -0
  48. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/dpdispatcher_on_yarn.md +0 -0
  49. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/env.md +0 -0
  50. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/examples/expanse.md +0 -0
  51. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/examples/g16.md +0 -0
  52. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/examples/shell.md +0 -0
  53. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/examples/template.md +0 -0
  54. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/getting-started.md +0 -0
  55. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/index.rst +0 -0
  56. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/install.md +0 -0
  57. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/machine.rst +0 -0
  58. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/make.bat +0 -0
  59. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/pep723.rst +0 -0
  60. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/requirements.txt +0 -0
  61. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/resources.rst +0 -0
  62. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/run.md +0 -0
  63. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/doc/task.rst +0 -0
  64. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/__init__.py +0 -0
  65. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/__main__.py +0 -0
  66. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/arginfo.py +0 -0
  67. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/base_context.py +0 -0
  68. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/contexts/__init__.py +0 -0
  69. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/contexts/dp_cloud_server_context.py +0 -0
  70. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/contexts/hdfs_context.py +0 -0
  71. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/contexts/lazy_local_context.py +0 -0
  72. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/contexts/local_context.py +0 -0
  73. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/contexts/ssh_context.py +0 -0
  74. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/dlog.py +0 -0
  75. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/dpcloudserver/__init__.py +0 -0
  76. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/dpcloudserver/client.py +0 -0
  77. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/dpdisp.py +0 -0
  78. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/entrypoints/__init__.py +0 -0
  79. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/entrypoints/gui.py +0 -0
  80. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/entrypoints/run.py +0 -0
  81. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/entrypoints/submission.py +0 -0
  82. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machine.py +0 -0
  83. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/JH_UniScheduler.py +0 -0
  84. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/__init__.py +0 -0
  85. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/distributed_shell.py +0 -0
  86. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/dp_cloud_server.py +0 -0
  87. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/fugaku.py +0 -0
  88. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/lsf.py +0 -0
  89. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/pbs.py +0 -0
  90. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/machines/shell.py +0 -0
  91. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/run.py +0 -0
  92. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/submission.py +0 -0
  93. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/__init__.py +0 -0
  94. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/dpcloudserver/__init__.py +0 -0
  95. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/dpcloudserver/client.py +0 -0
  96. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/dpcloudserver/config.py +0 -0
  97. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/dpcloudserver/retcode.py +0 -0
  98. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/dpcloudserver/zip_file.py +0 -0
  99. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/hdfs_cli.py +0 -0
  100. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/job_status.py +0 -0
  101. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/record.py +0 -0
  102. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher/utils/utils.py +0 -0
  103. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher.egg-info/SOURCES.txt +0 -0
  104. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher.egg-info/dependency_links.txt +0 -0
  105. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher.egg-info/entry_points.txt +0 -0
  106. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher.egg-info/requires.txt +0 -0
  107. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/dpdispatcher.egg-info/top_level.txt +0 -0
  108. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/dpdisp_run.py +0 -0
  109. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/machine/expanse.json +0 -0
  110. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/machine/lazy_local.json +0 -0
  111. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/machine/mandu.json +0 -0
  112. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/resources/expanse_cpu.json +0 -0
  113. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/resources/mandu.json +0 -0
  114. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/resources/template.slurm +0 -0
  115. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/resources/tiger.json +0 -0
  116. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/task/deepmd-kit.json +0 -0
  117. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/examples/task/g16.json +0 -0
  118. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/pyproject.toml +0 -0
  119. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/scripts/script_gen_dargs_docs.py +0 -0
  120. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/scripts/script_gen_dargs_json.py +0 -0
  121. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/setup.cfg +0 -0
  122. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/.gitignore +0 -0
  123. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/__init__.py +0 -0
  124. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/batch.json +0 -0
  125. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/context.py +0 -0
  126. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/debug_test_class_submission_init.py +0 -0
  127. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_JH_UniScheduler.py +0 -0
  128. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_ali_ehpc.py +0 -0
  129. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_dp_cloud_server.py +0 -0
  130. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_lazy_ali_ehpc.py +0 -0
  131. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_lsf.py +0 -0
  132. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_shell.py +0 -0
  133. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_slurm.py +0 -0
  134. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/devel_test_ssh_ali_ehpc.py +0 -0
  135. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/graph.pb +0 -0
  136. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/hello_world.py +0 -0
  137. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/job.json +0 -0
  138. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine.json +0 -0
  139. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_JH_UniScheduler.json +0 -0
  140. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_ali_ehpc.json +0 -0
  141. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_center.json +0 -0
  142. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_diffenert.json +0 -0
  143. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_dp_cloud_server.json +0 -0
  144. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_fugaku.json +0 -0
  145. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_if_cuda_multi_devices.json +0 -0
  146. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_lazy_local_jh_unischeduler.json +0 -0
  147. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_lazy_local_lsf.json +0 -0
  148. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_lazy_local_slurm.json +0 -0
  149. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_lazylocal_shell.json +0 -0
  150. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_local_fugaku.json +0 -0
  151. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_local_shell.json +0 -0
  152. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_lsf.json +0 -0
  153. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_openapi.json +0 -0
  154. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_slurm.json +0 -0
  155. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/machine_yarn.json +0 -0
  156. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/resources.json +0 -0
  157. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/submission.json +0 -0
  158. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/jsons/task.json +0 -0
  159. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/sample_class.py +0 -0
  160. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/script_gen_json.py +0 -0
  161. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/slurm_test.env +0 -0
  162. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_JH_UniScheduler_script_generation.py +0 -0
  163. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_argcheck.py +0 -0
  164. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_class_job.py +0 -0
  165. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_class_machine.py +0 -0
  166. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_class_machine_dispatch.py +0 -0
  167. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_class_resources.py +0 -0
  168. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_class_submission.py +0 -0
  169. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_class_submission_init.py +0 -0
  170. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_class_task.py +0 -0
  171. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_cli.py +0 -0
  172. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-1/conf.lmp +0 -0
  173. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-1/input.lammps +0 -0
  174. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-1/some_dir/some_file +0 -0
  175. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-2/conf.lmp +0 -0
  176. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-2/input.lammps +0 -0
  177. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-3/conf.lmp +0 -0
  178. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-3/input.lammps +0 -0
  179. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-4/conf.lmp +0 -0
  180. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/bct-4/input.lammps +0 -0
  181. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/dir with space/file with space +0 -0
  182. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/graph.pb +0 -0
  183. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_context_dir/0_md/some_dir/some_file +0 -0
  184. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_examples.py +0 -0
  185. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_group_size.py +0 -0
  186. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_gui.py +0 -0
  187. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_context.py +0 -0
  188. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-1/conf.lmp +0 -0
  189. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-1/input.lammps +0 -0
  190. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-2/conf.lmp +0 -0
  191. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-2/input.lammps +0 -0
  192. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-3/conf.lmp +0 -0
  193. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-3/input.lammps +0 -0
  194. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-4/conf.lmp +0 -0
  195. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/bct-4/input.lammps +0 -0
  196. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_hdfs_dir/0_md/graph.pb +0 -0
  197. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_if_cuda_multi_devices/test_dir/test.txt +0 -0
  198. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_import_classes.py +0 -0
  199. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-1/conf.lmp +0 -0
  200. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-1/input.lammps +0 -0
  201. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-2/conf.lmp +0 -0
  202. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-2/input.lammps +0 -0
  203. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-3/conf.lmp +0 -0
  204. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-3/input.lammps +0 -0
  205. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-4/conf.lmp +0 -0
  206. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/bct-4/input.lammps +0 -0
  207. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_jh_unischeduler/0_md/graph.pb +0 -0
  208. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lazy_local_context.py +0 -0
  209. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_local_context.py +0 -0
  210. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-1/conf.lmp +0 -0
  211. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-1/input.lammps +0 -0
  212. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-2/conf.lmp +0 -0
  213. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-2/input.lammps +0 -0
  214. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-3/conf.lmp +0 -0
  215. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-3/input.lammps +0 -0
  216. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-4/conf.lmp +0 -0
  217. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/bct-4/input.lammps +0 -0
  218. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/graph.pb +0 -0
  219. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_dir/0_md/submission.json +0 -0
  220. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_lsf_script_generation.py +0 -0
  221. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-1/conf.lmp +0 -0
  222. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-1/input.lammps +0 -0
  223. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-2/conf.lmp +0 -0
  224. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-2/input.lammps +0 -0
  225. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-3/conf.lmp +0 -0
  226. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-3/input.lammps +0 -0
  227. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-4/conf.lmp +0 -0
  228. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/bct-4/input.lammps +0 -0
  229. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_pbs_dir/0_md/graph.pb +0 -0
  230. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_retry.py +0 -0
  231. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_run.py +0 -0
  232. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_run_submission.py +0 -0
  233. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_run_submission_bohrium.py +0 -0
  234. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_run_submission_ratio_unfinished.py +0 -0
  235. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_cuda_multi_devices.py +0 -0
  236. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival.py +0 -0
  237. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/fail_dir/mock_fail_task.txt +0 -0
  238. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/parent_dir/dir with space/example.txt +0 -0
  239. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/parent_dir/dir1/example.txt +0 -0
  240. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/parent_dir/dir2/example.txt +0 -0
  241. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/parent_dir/dir3/example.txt +0 -0
  242. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/parent_dir/dir4/example.txt +0 -0
  243. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/parent_dir/graph.pb +0 -0
  244. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_shell_trival_dir/recover_dir/mock_recover_task.txt +0 -0
  245. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-1/conf.lmp +0 -0
  246. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-1/input.lammps +0 -0
  247. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-2/conf.lmp +0 -0
  248. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-2/input.lammps +0 -0
  249. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-3/conf.lmp +0 -0
  250. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-3/input.lammps +0 -0
  251. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-4/conf.lmp +0 -0
  252. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/bct-4/input.lammps +0 -0
  253. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/d3c842c5b9476e48f7145b370cd330372b9293e1.json +0 -0
  254. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/graph.pb +0 -0
  255. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_dir/0_md/submission.json +0 -0
  256. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_slurm_script_generation.py +0 -0
  257. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_ssh_context.py +0 -0
  258. {dpdispatcher-0.6.9 → dpdispatcher-0.6.10}/tests/test_work_path/.gitkeep +0 -0
@@ -31,7 +31,7 @@ jobs:
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: |
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dpdispatcher
3
- Version: 0.6.9
3
+ Version: 0.6.10
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
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.6.9'
21
- __version_tuple__ = version_tuple = (0, 6, 9)
20
+ __version__ = version = '0.6.10'
21
+ __version_tuple__ = version_tuple = (0, 6, 10)
@@ -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,15 +67,39 @@ 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
48
104
 
49
105
  @classmethod
@@ -97,7 +153,7 @@ class OpenAPIContext(BaseContext):
97
153
  for file in task.forward_files:
98
154
  upload_file_list.append(os.path.join(task.task_work_path, file))
99
155
 
100
- upload_zip = Util.zip_file_list(
156
+ upload_zip = zip_file_list(
101
157
  self.local_root, zip_task_file, file_list=upload_file_list
102
158
  )
103
159
  project_id = self.remote_profile.get("project_id", 0)
@@ -189,7 +245,7 @@ class OpenAPIContext(BaseContext):
189
245
  ):
190
246
  continue
191
247
  self.storage.download_from_url(info["resultUrl"], target_result_zip)
192
- Util.unzip_file(target_result_zip, out_dir=self.local_root)
248
+ unzip_file(target_result_zip, out_dir=self.local_root)
193
249
  self._backup(self.local_root, target_result_zip)
194
250
  self._clean_backup(
195
251
  self.local_root, keep_backup=self.remote_profile.get("keep_backup", True)
@@ -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.10
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
File without changes