dpdispatcher 0.6.5__tar.gz → 0.6.6__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 (257) hide show
  1. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.git_archival.txt +0 -1
  2. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.pre-commit-config.yaml +2 -2
  3. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/PKG-INFO +2 -2
  4. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/_version.py +2 -2
  5. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/contexts/ssh_context.py +55 -42
  6. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machine.py +1 -2
  7. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/pbs.py +73 -12
  8. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher.egg-info/PKG-INFO +2 -2
  9. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher.egg-info/requires.txt +1 -1
  10. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/pyproject.toml +1 -1
  11. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_script_generation.py +2 -2
  12. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.gitattributes +0 -0
  13. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/dependabot.yml +0 -0
  14. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/ci-docker.yml +0 -0
  15. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/machines.yml +0 -0
  16. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/mirror_gitee.yml +0 -0
  17. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/publish_conda.yml +0 -0
  18. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/pyright.yml +0 -0
  19. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/release.yml +0 -0
  20. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/test-bohrium.yml +0 -0
  21. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.github/workflows/test.yml +0 -0
  22. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.gitignore +0 -0
  23. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/.readthedocs.yaml +0 -0
  24. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/CONTRIBUTING.md +0 -0
  25. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/Dockerfile +0 -0
  26. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/LICENSE +0 -0
  27. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/README.md +0 -0
  28. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/LICENSE +0 -0
  29. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/README.md +0 -0
  30. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/pbs/docker-compose.yml +0 -0
  31. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/pbs/start-pbs.sh +0 -0
  32. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/pbs.sh +0 -0
  33. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/slurm/docker-compose.yml +0 -0
  34. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/slurm/register_cluster.sh +0 -0
  35. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/slurm/start-slurm.sh +0 -0
  36. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/slurm.sh +0 -0
  37. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/ssh/docker-compose.yml +0 -0
  38. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/ssh/start-ssh.sh +0 -0
  39. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/ssh.sh +0 -0
  40. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/ci/ssh_rsync.sh +0 -0
  41. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/codecov.yml +0 -0
  42. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/conda/conda_build_config.yaml +0 -0
  43. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/conda/meta.yaml +0 -0
  44. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/.gitignore +0 -0
  45. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/Makefile +0 -0
  46. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/batch.md +0 -0
  47. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/cli.rst +0 -0
  48. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/conf.py +0 -0
  49. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/context.md +0 -0
  50. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/credits.rst +0 -0
  51. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/dpdispatcher_on_yarn.md +0 -0
  52. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/examples/expanse.md +0 -0
  53. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/examples/g16.md +0 -0
  54. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/examples/shell.md +0 -0
  55. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/examples/template.md +0 -0
  56. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/getting-started.md +0 -0
  57. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/index.rst +0 -0
  58. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/install.md +0 -0
  59. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/machine.rst +0 -0
  60. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/make.bat +0 -0
  61. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/pep723.rst +0 -0
  62. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/requirements.txt +0 -0
  63. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/resources.rst +0 -0
  64. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/run.md +0 -0
  65. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/doc/task.rst +0 -0
  66. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/__init__.py +0 -0
  67. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/__main__.py +0 -0
  68. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/arginfo.py +0 -0
  69. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/base_context.py +0 -0
  70. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/contexts/__init__.py +0 -0
  71. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/contexts/dp_cloud_server_context.py +0 -0
  72. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/contexts/hdfs_context.py +0 -0
  73. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/contexts/lazy_local_context.py +0 -0
  74. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/contexts/local_context.py +0 -0
  75. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/contexts/openapi_context.py +0 -0
  76. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/dlog.py +0 -0
  77. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/dpcloudserver/__init__.py +0 -0
  78. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/dpcloudserver/client.py +0 -0
  79. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/dpdisp.py +0 -0
  80. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/entrypoints/__init__.py +0 -0
  81. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/entrypoints/gui.py +0 -0
  82. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/entrypoints/run.py +0 -0
  83. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/entrypoints/submission.py +0 -0
  84. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/JH_UniScheduler.py +0 -0
  85. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/__init__.py +0 -0
  86. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/distributed_shell.py +0 -0
  87. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/dp_cloud_server.py +0 -0
  88. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/fugaku.py +0 -0
  89. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/lsf.py +0 -0
  90. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/openapi.py +0 -0
  91. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/shell.py +0 -0
  92. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/machines/slurm.py +0 -0
  93. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/run.py +0 -0
  94. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/submission.py +0 -0
  95. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/__init__.py +0 -0
  96. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/dpcloudserver/__init__.py +0 -0
  97. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/dpcloudserver/client.py +0 -0
  98. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/dpcloudserver/config.py +0 -0
  99. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/dpcloudserver/retcode.py +0 -0
  100. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/dpcloudserver/zip_file.py +0 -0
  101. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/hdfs_cli.py +0 -0
  102. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/job_status.py +0 -0
  103. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/record.py +0 -0
  104. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher/utils/utils.py +0 -0
  105. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher.egg-info/SOURCES.txt +0 -0
  106. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher.egg-info/dependency_links.txt +0 -0
  107. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher.egg-info/entry_points.txt +0 -0
  108. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/dpdispatcher.egg-info/top_level.txt +0 -0
  109. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/dpdisp_run.py +0 -0
  110. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/machine/expanse.json +0 -0
  111. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/machine/lazy_local.json +0 -0
  112. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/machine/mandu.json +0 -0
  113. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/resources/expanse_cpu.json +0 -0
  114. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/resources/mandu.json +0 -0
  115. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/resources/template.slurm +0 -0
  116. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/resources/tiger.json +0 -0
  117. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/task/deepmd-kit.json +0 -0
  118. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/examples/task/g16.json +0 -0
  119. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/scripts/script_gen_dargs_docs.py +0 -0
  120. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/scripts/script_gen_dargs_json.py +0 -0
  121. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/setup.cfg +0 -0
  122. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/.gitignore +0 -0
  123. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/__init__.py +0 -0
  124. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/batch.json +0 -0
  125. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/context.py +0 -0
  126. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/debug_test_class_submission_init.py +0 -0
  127. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_JH_UniScheduler.py +0 -0
  128. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_ali_ehpc.py +0 -0
  129. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_dp_cloud_server.py +0 -0
  130. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_lazy_ali_ehpc.py +0 -0
  131. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_lsf.py +0 -0
  132. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_shell.py +0 -0
  133. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_slurm.py +0 -0
  134. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/devel_test_ssh_ali_ehpc.py +0 -0
  135. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/graph.pb +0 -0
  136. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/hello_world.py +0 -0
  137. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/job.json +0 -0
  138. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine.json +0 -0
  139. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_JH_UniScheduler.json +0 -0
  140. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_ali_ehpc.json +0 -0
  141. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_center.json +0 -0
  142. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_diffenert.json +0 -0
  143. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_dp_cloud_server.json +0 -0
  144. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_fugaku.json +0 -0
  145. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_if_cuda_multi_devices.json +0 -0
  146. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_lazy_local_jh_unischeduler.json +0 -0
  147. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_lazy_local_lsf.json +0 -0
  148. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_lazy_local_slurm.json +0 -0
  149. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_lazylocal_shell.json +0 -0
  150. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_local_fugaku.json +0 -0
  151. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_local_shell.json +0 -0
  152. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_lsf.json +0 -0
  153. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_openapi.json +0 -0
  154. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_slurm.json +0 -0
  155. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/machine_yarn.json +0 -0
  156. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/resources.json +0 -0
  157. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/submission.json +0 -0
  158. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/jsons/task.json +0 -0
  159. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/sample_class.py +0 -0
  160. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/script_gen_json.py +0 -0
  161. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/slurm_test.env +0 -0
  162. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_JH_UniScheduler_script_generation.py +0 -0
  163. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_argcheck.py +0 -0
  164. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_class_job.py +0 -0
  165. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_class_machine.py +0 -0
  166. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_class_machine_dispatch.py +0 -0
  167. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_class_resources.py +0 -0
  168. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_class_submission.py +0 -0
  169. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_class_submission_init.py +0 -0
  170. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_class_task.py +0 -0
  171. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_cli.py +0 -0
  172. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-1/conf.lmp +0 -0
  173. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-1/input.lammps +0 -0
  174. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-1/some_dir/some_file +0 -0
  175. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-2/conf.lmp +0 -0
  176. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-2/input.lammps +0 -0
  177. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-3/conf.lmp +0 -0
  178. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-3/input.lammps +0 -0
  179. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-4/conf.lmp +0 -0
  180. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/bct-4/input.lammps +0 -0
  181. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/dir with space/file with space +0 -0
  182. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/graph.pb +0 -0
  183. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_context_dir/0_md/some_dir/some_file +0 -0
  184. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_examples.py +0 -0
  185. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_group_size.py +0 -0
  186. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_gui.py +0 -0
  187. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_context.py +0 -0
  188. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-1/conf.lmp +0 -0
  189. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-1/input.lammps +0 -0
  190. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-2/conf.lmp +0 -0
  191. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-2/input.lammps +0 -0
  192. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-3/conf.lmp +0 -0
  193. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-3/input.lammps +0 -0
  194. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-4/conf.lmp +0 -0
  195. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/bct-4/input.lammps +0 -0
  196. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_hdfs_dir/0_md/graph.pb +0 -0
  197. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_if_cuda_multi_devices/test_dir/test.txt +0 -0
  198. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_import_classes.py +0 -0
  199. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-1/conf.lmp +0 -0
  200. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-1/input.lammps +0 -0
  201. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-2/conf.lmp +0 -0
  202. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-2/input.lammps +0 -0
  203. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-3/conf.lmp +0 -0
  204. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-3/input.lammps +0 -0
  205. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-4/conf.lmp +0 -0
  206. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/bct-4/input.lammps +0 -0
  207. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_jh_unischeduler/0_md/graph.pb +0 -0
  208. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lazy_local_context.py +0 -0
  209. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_local_context.py +0 -0
  210. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-1/conf.lmp +0 -0
  211. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-1/input.lammps +0 -0
  212. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-2/conf.lmp +0 -0
  213. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-2/input.lammps +0 -0
  214. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-3/conf.lmp +0 -0
  215. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-3/input.lammps +0 -0
  216. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-4/conf.lmp +0 -0
  217. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/bct-4/input.lammps +0 -0
  218. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/graph.pb +0 -0
  219. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_lsf_dir/0_md/submission.json +0 -0
  220. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-1/conf.lmp +0 -0
  221. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-1/input.lammps +0 -0
  222. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-2/conf.lmp +0 -0
  223. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-2/input.lammps +0 -0
  224. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-3/conf.lmp +0 -0
  225. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-3/input.lammps +0 -0
  226. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-4/conf.lmp +0 -0
  227. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/bct-4/input.lammps +0 -0
  228. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_pbs_dir/0_md/graph.pb +0 -0
  229. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_retry.py +0 -0
  230. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_run.py +0 -0
  231. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_run_submission.py +0 -0
  232. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_run_submission_bohrium.py +0 -0
  233. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_run_submission_ratio_unfinished.py +0 -0
  234. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_cuda_multi_devices.py +0 -0
  235. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival.py +0 -0
  236. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/fail_dir/mock_fail_task.txt +0 -0
  237. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/parent_dir/dir with space/example.txt +0 -0
  238. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/parent_dir/dir1/example.txt +0 -0
  239. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/parent_dir/dir2/example.txt +0 -0
  240. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/parent_dir/dir3/example.txt +0 -0
  241. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/parent_dir/dir4/example.txt +0 -0
  242. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/parent_dir/graph.pb +0 -0
  243. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_shell_trival_dir/recover_dir/mock_recover_task.txt +0 -0
  244. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-1/conf.lmp +0 -0
  245. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-1/input.lammps +0 -0
  246. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-2/conf.lmp +0 -0
  247. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-2/input.lammps +0 -0
  248. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-3/conf.lmp +0 -0
  249. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-3/input.lammps +0 -0
  250. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-4/conf.lmp +0 -0
  251. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/bct-4/input.lammps +0 -0
  252. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/d3c842c5b9476e48f7145b370cd330372b9293e1.json +0 -0
  253. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/graph.pb +0 -0
  254. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_dir/0_md/submission.json +0 -0
  255. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_slurm_script_generation.py +0 -0
  256. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_ssh_context.py +0 -0
  257. {dpdispatcher-0.6.5 → dpdispatcher-0.6.6}/tests/test_work_path/.gitkeep +0 -0
@@ -1,4 +1,3 @@
1
1
  node: $Format:%H$
2
2
  node-date: $Format:%cI$
3
3
  describe-name: $Format:%(describe:tags=true,match=*[0-9]*)$
4
- ref-names: $Format:%D$
@@ -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.4.4
21
+ rev: v0.5.4
22
22
  hooks:
23
23
  - id: ruff
24
24
  args: ["--fix"]
@@ -31,7 +31,7 @@ repos:
31
31
  args: ["--write"]
32
32
  # Python inside docs
33
33
  - repo: https://github.com/asottile/blacken-docs
34
- rev: 1.16.0
34
+ rev: 1.18.0
35
35
  hooks:
36
36
  - id: blacken-docs
37
37
  # markdown, yaml
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dpdispatcher
3
- Version: 0.6.5
3
+ Version: 0.6.6
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
@@ -199,7 +199,7 @@ Requires-Dist: sphinx_rtd_theme>=1.0.0rc1; extra == "docs"
199
199
  Requires-Dist: numpydoc; extra == "docs"
200
200
  Requires-Dist: deepmodeling_sphinx>=0.1.1; extra == "docs"
201
201
  Requires-Dist: dargs>=0.3.1; extra == "docs"
202
- Requires-Dist: sphinx-argparse; extra == "docs"
202
+ Requires-Dist: sphinx-argparse<0.5.0; extra == "docs"
203
203
  Provides-Extra: cloudserver
204
204
  Requires-Dist: oss2; extra == "cloudserver"
205
205
  Requires-Dist: tqdm; extra == "cloudserver"
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.6.5'
16
- __version_tuple__ = version_tuple = (0, 6, 5)
15
+ __version__ = version = '0.6.6'
16
+ __version_tuple__ = version_tuple = (0, 6, 6)
@@ -295,7 +295,11 @@ class SSHSession:
295
295
  assert self.ssh is not None
296
296
  try:
297
297
  return self.ssh.exec_command(cmd)
298
- except (paramiko.ssh_exception.SSHException, socket.timeout, EOFError) as e:
298
+ except (
299
+ paramiko.ssh_exception.SSHException,
300
+ socket.timeout,
301
+ EOFError,
302
+ ) as e:
299
303
  # SSH session not active
300
304
  # retry for up to 3 times
301
305
  # ensure alive
@@ -355,10 +359,18 @@ class SSHSession:
355
359
  ),
356
360
  Argument("timeout", int, optional=True, default=10, doc=doc_timeout),
357
361
  Argument(
358
- "totp_secret", str, optional=True, default=None, doc=doc_totp_secret
362
+ "totp_secret",
363
+ str,
364
+ optional=True,
365
+ default=None,
366
+ doc=doc_totp_secret,
359
367
  ),
360
368
  Argument(
361
- "tar_compress", bool, optional=True, default=True, doc=doc_tar_compress
369
+ "tar_compress",
370
+ bool,
371
+ optional=True,
372
+ default=True,
373
+ doc=doc_tar_compress,
362
374
  ),
363
375
  Argument(
364
376
  "look_for_keys",
@@ -603,7 +615,10 @@ class SSHContext(BaseContext):
603
615
  directory_list,
604
616
  )
605
617
  self._walk_directory(
606
- submission.forward_common_files, self.local_root, file_list, directory_list
618
+ submission.forward_common_files,
619
+ self.local_root,
620
+ file_list,
621
+ directory_list,
607
622
  )
608
623
 
609
624
  # convert to relative path to local_root
@@ -621,9 +636,9 @@ class SSHContext(BaseContext):
621
636
  ).as_posix()
622
637
  sha256_list.append(f"{sha256} {jj_rel}")
623
638
  # write to remote
624
- sha256_file = os.path.join(
625
- self.remote_root, ".tmp.sha256." + str(uuid.uuid4())
626
- )
639
+ sha256_file = pathlib.PurePath(
640
+ os.path.join(self.remote_root, ".tmp.sha256." + str(uuid.uuid4()))
641
+ ).as_posix()
627
642
  self.write_file(sha256_file, "\n".join(sha256_list))
628
643
  # check sha256
629
644
  # `:` means pass: https://stackoverflow.com/a/2421592/9567349
@@ -736,7 +751,8 @@ class SSHContext(BaseContext):
736
751
  file_list.extend(submission.backward_common_files)
737
752
  if len(file_list) > 0:
738
753
  self._get_files(
739
- file_list, tar_compress=self.remote_profile.get("tar_compress", None)
754
+ file_list,
755
+ tar_compress=self.remote_profile.get("tar_compress", None),
740
756
  )
741
757
 
742
758
  def block_checkcall(self, cmd, asynchronously=False, stderr_whitelist=None):
@@ -793,18 +809,23 @@ class SSHContext(BaseContext):
793
809
  fname = pathlib.PurePath(os.path.join(self.remote_root, fname)).as_posix()
794
810
  # to prevent old file from being overwritten but cancelled, create a temporary file first
795
811
  # when it is fully written, rename it to the original file name
796
- with self.sftp.open(fname + "~", "w") as fp:
797
- fp.write(write_str)
812
+ temp_fname = fname + "_tmp"
813
+ try:
814
+ with self.sftp.open(temp_fname, "w") as fp:
815
+ fp.write(write_str)
816
+ # Rename the temporary file
817
+ self.block_checkcall(f"mv {shlex.quote(temp_fname)} {shlex.quote(fname)}")
798
818
  # sftp.rename may throw OSError
799
- self.block_checkcall(
800
- "mv {} {}".format(shlex.quote(fname + "~"), shlex.quote(fname))
801
- )
819
+ except OSError as e:
820
+ dlog.exception(f"Error writing to file {fname}")
821
+ raise e
802
822
 
803
823
  def read_file(self, fname):
804
824
  assert self.remote_root is not None
805
825
  self.ssh_session.ensure_alive()
806
826
  with self.sftp.open(
807
- pathlib.PurePath(os.path.join(self.remote_root, fname)).as_posix(), "r"
827
+ pathlib.PurePath(os.path.join(self.remote_root, fname)).as_posix(),
828
+ "r",
808
829
  ) as fp:
809
830
  ret = fp.read().decode("utf-8")
810
831
  return ret
@@ -945,36 +966,28 @@ class SSHContext(BaseContext):
945
966
  per_nfile = 100
946
967
  ntar = len(files) // per_nfile + 1
947
968
  if ntar <= 1:
948
- try:
949
- self.block_checkcall(
950
- "tar {} {} {}".format(
951
- tar_command,
952
- shlex.quote(of),
953
- " ".join([shlex.quote(file) for file in files]),
954
- )
955
- )
956
- except RuntimeError as e:
957
- if "No such file or directory" in str(e):
958
- raise FileNotFoundError(
959
- "Any of the backward files does not exist in the remote directory."
960
- ) from e
961
- raise e
969
+ file_list = " ".join([shlex.quote(file) for file in files])
970
+ tar_cmd = f"tar {tar_command} {shlex.quote(of)} {file_list}"
962
971
  else:
963
- file_list_file = os.path.join(
964
- self.remote_root, ".tmp.tar." + str(uuid.uuid4())
965
- )
972
+ file_list_file = pathlib.PurePath(
973
+ os.path.join(self.remote_root, f".tmp_tar_{uuid.uuid4()}")
974
+ ).as_posix()
966
975
  self.write_file(file_list_file, "\n".join(files))
967
- try:
968
- self.block_checkcall(
969
- f"tar {tar_command} {shlex.quote(of)} -T {shlex.quote(file_list_file)}"
970
- )
971
- except RuntimeError as e:
972
- if "No such file or directory" in str(e):
973
- raise FileNotFoundError(
974
- "Any of the backward files does not exist in the remote directory."
975
- ) from e
976
- raise e
977
- # trans
976
+ tar_cmd = (
977
+ f"tar {tar_command} {shlex.quote(of)} -T {shlex.quote(file_list_file)}"
978
+ )
979
+
980
+ # Execute the tar command remotely
981
+ try:
982
+ self.block_checkcall(tar_cmd)
983
+ except RuntimeError as e:
984
+ if "No such file or directory" in str(e):
985
+ raise FileNotFoundError(
986
+ "Backward files do not exist in the remote directory."
987
+ ) from e
988
+ raise e
989
+
990
+ # Transfer the archive from remote to local
978
991
  from_f = pathlib.PurePath(os.path.join(self.remote_root, of)).as_posix()
979
992
  to_f = pathlib.PurePath(os.path.join(self.local_root, of)).as_posix()
980
993
  if os.path.isfile(to_f):
@@ -261,8 +261,7 @@ class Machine(metaclass=ABCMeta):
261
261
 
262
262
  source_list = job.resources.source_list
263
263
  for ii in source_list:
264
- line = f"{{ source {ii}; }} \n"
265
- source_files_part += line
264
+ source_files_part += f"source {ii}\n"
266
265
 
267
266
  export_envs_part = ""
268
267
  envs = job.resources.envs
@@ -1,4 +1,7 @@
1
1
  import shlex
2
+ from typing import List
3
+
4
+ from dargs import Argument
2
5
 
3
6
  from dpdispatcher.dlog import dlog
4
7
  from dpdispatcher.machine import Machine
@@ -181,10 +184,9 @@ class Torque(PBS):
181
184
 
182
185
  sge_script_header_template = """
183
186
  #!/bin/bash
184
- #$ -N dpdispatcher_submit
185
- {select_node_line}
187
+ #$ -S /bin/bash
186
188
  #$ -cwd
187
-
189
+ {select_node_line}
188
190
  """
189
191
 
190
192
 
@@ -209,14 +211,31 @@ class SGE(PBS):
209
211
  )
210
212
 
211
213
  def gen_script_header(self, job):
214
+ ### Ref:https://softpanorama.org/HPC/PBS_and_derivatives/Reference/pbs_command_vs_sge_commands.shtml
215
+ # resources.number_node is not used in SGE
212
216
  resources = job.resources
217
+ job_name = resources.kwargs.get("job_name", "wDPjob")
218
+ pe_name = resources.kwargs.get("pe_name", "mpi")
213
219
  sge_script_header_dict = {}
214
- # resources.number_node is not used
215
- sge_script_header_dict["select_node_line"] = (
216
- f"#$ -pe mpi {resources.cpu_per_node} "
220
+ sge_script_header_dict["select_node_line"] = f"#$ -N {job_name}\n"
221
+ sge_script_header_dict["select_node_line"] += (
222
+ f"#$ -pe {pe_name} {resources.cpu_per_node}\n"
217
223
  )
218
- # resources.queue_name is not necessary
219
- sge_script_header = sge_script_header_template.format(**sge_script_header_dict)
224
+
225
+ if resources.queue_name != "":
226
+ sge_script_header_dict["select_node_line"] += (
227
+ f"#$ -q {resources.queue_name}"
228
+ )
229
+ if (
230
+ resources["strategy"].get("customized_script_header_template_file")
231
+ is not None
232
+ ):
233
+ file_name = resources["strategy"]["customized_script_header_template_file"]
234
+ sge_script_header = customized_script_header_template(file_name, resources)
235
+ else:
236
+ sge_script_header = sge_script_header_template.format(
237
+ **sge_script_header_dict
238
+ )
220
239
  return sge_script_header
221
240
 
222
241
  def do_submit(self, job):
@@ -224,6 +243,9 @@ class SGE(PBS):
224
243
  script_str = self.gen_script(job)
225
244
  job_id_name = job.job_hash + "_job_id"
226
245
  self.context.write_file(fname=script_file_name, write_str=script_str)
246
+ script_run_str = self.gen_script_command(job)
247
+ script_run_file_name = f"{job.script_file_name}.run"
248
+ self.context.write_file(fname=script_run_file_name, write_str=script_run_str)
227
249
  script_file_dir = self.context.remote_root
228
250
  stdin, stdout, stderr = self.context.block_checkcall(
229
251
  "cd {} && {} {}".format(script_file_dir, "qsub", script_file_name)
@@ -245,8 +267,7 @@ class SGE(PBS):
245
267
  err_str = stderr.read().decode("utf-8")
246
268
  if ret != 0:
247
269
  raise RuntimeError(
248
- "status command qstat fails to execute. erro info: %s return code %d"
249
- % (err_str, ret)
270
+ f"status command qstat fails to execute. erro info: {err_str} return code {ret}"
250
271
  )
251
272
  status_text_list = stdout.read().decode("utf-8").split("\n")
252
273
  for txt in status_text_list:
@@ -259,8 +280,7 @@ class SGE(PBS):
259
280
  if self.check_finish_tag(job=job):
260
281
  return JobStatus.finished
261
282
  dlog.info(
262
- "not tag_finished detected, execute sync command and wait. count "
263
- + str(count)
283
+ f"not tag_finished detected, execute sync command and wait. count {count}"
264
284
  )
265
285
  self.context.block_call("sync")
266
286
  import time
@@ -281,3 +301,44 @@ class SGE(PBS):
281
301
  def check_finish_tag(self, job):
282
302
  job_tag_finished = job.job_hash + "_job_tag_finished"
283
303
  return self.context.check_file_exists(job_tag_finished)
304
+
305
+ @classmethod
306
+ def resources_subfields(cls) -> List[Argument]:
307
+ """Generate the resources subfields.
308
+
309
+ pe_name : str
310
+ The parallel environment name of SGE.
311
+
312
+ Returns
313
+ -------
314
+ list[Argument]
315
+ resources subfields
316
+ """
317
+ doc_pe_name = "The parallel environment name of SGE system."
318
+ doc_job_name = "The name of SGE's job."
319
+
320
+ return [
321
+ Argument(
322
+ "kwargs",
323
+ dict,
324
+ [
325
+ Argument(
326
+ "pe_name",
327
+ str,
328
+ optional=True,
329
+ default="mpi",
330
+ doc=doc_pe_name,
331
+ alias=["sge_pe_name"],
332
+ ),
333
+ Argument(
334
+ "job_name",
335
+ str,
336
+ optional=True,
337
+ default="wDPjob",
338
+ doc=doc_job_name,
339
+ ),
340
+ ],
341
+ optional=False,
342
+ doc="Extra arguments.",
343
+ )
344
+ ]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: dpdispatcher
3
- Version: 0.6.5
3
+ Version: 0.6.6
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
@@ -199,7 +199,7 @@ Requires-Dist: sphinx_rtd_theme>=1.0.0rc1; extra == "docs"
199
199
  Requires-Dist: numpydoc; extra == "docs"
200
200
  Requires-Dist: deepmodeling_sphinx>=0.1.1; extra == "docs"
201
201
  Requires-Dist: dargs>=0.3.1; extra == "docs"
202
- Requires-Dist: sphinx-argparse; extra == "docs"
202
+ Requires-Dist: sphinx-argparse<0.5.0; extra == "docs"
203
203
  Provides-Extra: cloudserver
204
204
  Requires-Dist: oss2; extra == "cloudserver"
205
205
  Requires-Dist: tqdm; extra == "cloudserver"
@@ -27,7 +27,7 @@ sphinx_rtd_theme>=1.0.0rc1
27
27
  numpydoc
28
28
  deepmodeling_sphinx>=0.1.1
29
29
  dargs>=0.3.1
30
- sphinx-argparse
30
+ sphinx-argparse<0.5.0
31
31
 
32
32
  [gui]
33
33
  dpgui
@@ -55,7 +55,7 @@ docs = [
55
55
  'numpydoc',
56
56
  'deepmodeling_sphinx>=0.1.1',
57
57
  'dargs>=0.3.1',
58
- 'sphinx-argparse',
58
+ 'sphinx-argparse<0.5.0',
59
59
  ]
60
60
  cloudserver = ["oss2", "tqdm", "bohrium-sdk"]
61
61
  bohrium = ["oss2", "tqdm", "bohrium-sdk"]
@@ -108,8 +108,8 @@ class TestLSFScriptGeneration(unittest.TestCase):
108
108
  module load use.own
109
109
  module load deepmd/1.3
110
110
 
111
- {{ source /data/home/ypliu/scripts/avail_gpu.sh; }}
112
- {{ source /data/home/ypliu/dprun/tf_envs.sh; }}
111
+ source /data/home/ypliu/scripts/avail_gpu.sh
112
+ source /data/home/ypliu/dprun/tf_envs.sh
113
113
 
114
114
  export DP_DISPATCHER_EXPORT=test_foo_bar_baz
115
115
 
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