experimaestro 1.8.0rc0__tar.gz → 1.8.0rc2__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 experimaestro might be problematic. Click here for more details.

Files changed (155) hide show
  1. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/PKG-INFO +1 -1
  2. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/pyproject.toml +2 -2
  3. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/context.py +6 -1
  4. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/experiments/cli.py +16 -4
  5. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/experiments/configuration.py +3 -0
  6. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_experiment.py +6 -6
  7. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/LICENSE +0 -0
  8. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/README.md +0 -0
  9. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/__init__.py +0 -0
  10. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/__main__.py +0 -0
  11. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/annotations.py +0 -0
  12. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/checkers.py +0 -0
  13. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/cli/__init__.py +0 -0
  14. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/cli/filter.py +0 -0
  15. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/cli/jobs.py +0 -0
  16. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/click.py +0 -0
  17. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/commandline.py +0 -0
  18. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/compat.py +0 -0
  19. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/connectors/__init__.py +0 -0
  20. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/connectors/local.py +0 -0
  21. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/connectors/ssh.py +0 -0
  22. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/__init__.py +0 -0
  23. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/arguments.py +0 -0
  24. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/objects.py +0 -0
  25. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/objects.pyi +0 -0
  26. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/serialization.py +0 -0
  27. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/serializers.py +0 -0
  28. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/types.py +0 -0
  29. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/core/utils.py +0 -0
  30. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/exceptions.py +0 -0
  31. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/experiments/__init__.py +0 -0
  32. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/generators.py +0 -0
  33. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/huggingface.py +0 -0
  34. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/ipc.py +0 -0
  35. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launcherfinder/__init__.py +0 -0
  36. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launcherfinder/base.py +0 -0
  37. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launcherfinder/parser.py +0 -0
  38. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launcherfinder/registry.py +0 -0
  39. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launcherfinder/specs.py +0 -0
  40. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launchers/__init__.py +0 -0
  41. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launchers/direct.py +0 -0
  42. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launchers/oar.py +0 -0
  43. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launchers/slurm/__init__.py +0 -0
  44. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/launchers/slurm/base.py +0 -0
  45. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/locking.py +0 -0
  46. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/mkdocs/__init__.py +0 -0
  47. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/mkdocs/annotations.py +0 -0
  48. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/mkdocs/base.py +0 -0
  49. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/mkdocs/metaloader.py +0 -0
  50. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/mkdocs/style.css +0 -0
  51. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/mypy.py +0 -0
  52. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/notifications.py +0 -0
  53. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/py.typed +0 -0
  54. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/rpyc.py +0 -0
  55. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/run.py +0 -0
  56. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scheduler/__init__.py +0 -0
  57. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scheduler/base.py +0 -0
  58. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scheduler/dependencies.py +0 -0
  59. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scheduler/dynamic_outputs.py +0 -0
  60. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scheduler/services.py +0 -0
  61. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scheduler/state.py +0 -0
  62. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scheduler/workspace.py +0 -0
  63. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/scriptbuilder.py +0 -0
  64. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/__init__.py +0 -0
  65. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/016b4a6cdced82ab3aa1.ttf +0 -0
  66. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/0c35d18bf06992036b69.woff2 +0 -0
  67. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/1815e00441357e01619e.ttf +0 -0
  68. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/219aa9140e099e6c72ed.woff2 +0 -0
  69. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/2463b90d9a316e4e5294.woff2 +0 -0
  70. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/2582b0e4bcf85eceead0.ttf +0 -0
  71. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/3a4004a46a653d4b2166.woff +0 -0
  72. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/3baa5b8f3469222b822d.woff +0 -0
  73. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/4d73cb90e394b34b7670.woff +0 -0
  74. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2 +0 -0
  75. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/50701fbb8177c2dde530.ttf +0 -0
  76. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/5d681e2edae8c60630db.woff +0 -0
  77. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/6f420cf17cc0d7676fad.woff2 +0 -0
  78. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/878f31251d960bd6266f.woff2 +0 -0
  79. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/89999bdf5d835c012025.woff2 +0 -0
  80. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/914997e1bdfc990d0897.ttf +0 -0
  81. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/b041b1fa4fe241b23445.woff2 +0 -0
  82. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/b6879d41b0852f01ed5b.woff2 +0 -0
  83. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/c210719e60948b211a12.woff2 +0 -0
  84. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/c380809fd3677d7d6903.woff2 +0 -0
  85. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/d75e3fd1eb12e9bd6655.ttf +0 -0
  86. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/f882956fd323fd322f31.woff +0 -0
  87. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/favicon.ico +0 -0
  88. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/index.css +0 -0
  89. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/index.css.map +0 -0
  90. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/index.html +0 -0
  91. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/index.js +0 -0
  92. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/index.js.map +0 -0
  93. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/login.html +0 -0
  94. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/server/data/manifest.json +0 -0
  95. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/settings.py +0 -0
  96. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/sphinx/__init__.py +0 -0
  97. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/sphinx/static/experimaestro.css +0 -0
  98. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/taskglobals.py +0 -0
  99. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/__init__.py +0 -0
  100. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/conftest.py +0 -0
  101. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/connectors/bin/executable.py +0 -0
  102. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/connectors/test_local.py +0 -0
  103. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/connectors/utils.py +0 -0
  104. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/definitions_types.py +0 -0
  105. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/__init__.py +0 -0
  106. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/bin/sacct +0 -0
  107. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/bin/sbatch +0 -0
  108. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/bin/srun +0 -0
  109. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/bin/test.py +0 -0
  110. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/common.py +0 -0
  111. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/config_slurm/__init__.py +0 -0
  112. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/config_slurm/launchers.py +0 -0
  113. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/test_local.py +0 -0
  114. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/launchers/test_slurm.py +0 -0
  115. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/restart.py +0 -0
  116. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/restart_main.py +0 -0
  117. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/scripts/notifyandwait.py +0 -0
  118. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/scripts/waitforfile.py +0 -0
  119. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/task_tokens.py +0 -0
  120. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/tasks/__init__.py +0 -0
  121. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/tasks/all.py +0 -0
  122. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/tasks/foreign.py +0 -0
  123. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_checkers.py +0 -0
  124. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_dependencies.py +0 -0
  125. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_findlauncher.py +0 -0
  126. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_forward.py +0 -0
  127. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_identifier.py +0 -0
  128. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_instance.py +0 -0
  129. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_objects.py +0 -0
  130. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_outputs.py +0 -0
  131. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_param.py +0 -0
  132. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_progress.py +0 -0
  133. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_serializers.py +0 -0
  134. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_snippets.py +0 -0
  135. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_ssh.py +0 -0
  136. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_tags.py +0 -0
  137. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_tasks.py +0 -0
  138. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_tokens.py +0 -0
  139. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_types.py +0 -0
  140. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/test_validation.py +0 -0
  141. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/token_reschedule.py +0 -0
  142. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tests/utils.py +0 -0
  143. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tokens.py +0 -0
  144. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tools/__init__.py +0 -0
  145. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tools/diff.py +0 -0
  146. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tools/documentation.py +0 -0
  147. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/tools/jobs.py +0 -0
  148. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/typingutils.py +0 -0
  149. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/utils/__init__.py +0 -0
  150. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/utils/asyncio.py +0 -0
  151. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/utils/jobs.py +0 -0
  152. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/utils/jupyter.py +0 -0
  153. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/utils/resources.py +0 -0
  154. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/utils/settings.py +0 -0
  155. {experimaestro-1.8.0rc0 → experimaestro-1.8.0rc2}/src/experimaestro/xpmutils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: experimaestro
3
- Version: 1.8.0rc0
3
+ Version: 1.8.0rc2
4
4
  Summary: "Experimaestro is a computer science experiment manager"
5
5
  License: GPL-3
6
6
  Keywords: experiment manager
@@ -20,7 +20,7 @@ include = [
20
20
  "src/experimaestro/mkdocs/style.css",
21
21
  { path="src/experimaestro/server/data/*", format=['sdist', 'wheel']}
22
22
  ]
23
- version = "1.8.0-rc0"
23
+ version = "1.8.0-rc2"
24
24
  repository = "https://github.com/experimaestro/experimaestro-python"
25
25
  documentation = "https://experimaestro-python.readthedocs.io/"
26
26
 
@@ -122,7 +122,7 @@ warn_unused_ignores = true
122
122
 
123
123
  [tool.commitizen]
124
124
  name = "cz_conventional_commits"
125
- version = "1.8.0rc0"
125
+ version = "1.8.0rc2"
126
126
  changelog_start_rev = "v1.0.0"
127
127
  tag_format = "v$major.$minor.$patch$prerelease"
128
128
  # update_changelog_on_bump = true
@@ -1,5 +1,10 @@
1
1
  from contextlib import contextmanager
2
- from pathlib import Path, UnsupportedOperation
2
+ from pathlib import Path
3
+
4
+ try:
5
+ from pathlib import UnsupportedOperation
6
+ except ImportError:
7
+ UnsupportedOperation = OSError
3
8
  import shutil
4
9
  from typing import List, Optional, Protocol, Set, Union
5
10
  import os
@@ -1,3 +1,4 @@
1
+ import datetime
1
2
  import importlib
2
3
  import inspect
3
4
  import json
@@ -292,7 +293,7 @@ def experiments_cli( # noqa: C901
292
293
  sys.exit(0)
293
294
 
294
295
  # Move to an object container
295
- configuration = OmegaConf.to_container(
296
+ xp_configuration: ConfigurationBase = OmegaConf.to_container(
296
297
  configuration, structured_config_mode=SCMode.INSTANTIATE
297
298
  )
298
299
 
@@ -301,11 +302,22 @@ def experiments_cli( # noqa: C901
301
302
 
302
303
  workdir = ws_env.path
303
304
 
304
- logging.info("Using working directory %s", str(workdir.resolve()))
305
+ # --- Sets up the experiment ID
305
306
 
306
307
  # --- Runs the experiment
308
+ if xp_configuration.add_timestamp:
309
+ timestamp = datetime.datetime.now().strftime("%Y%m%d-%H%M")
310
+ experiment_id = f"""{xp_configuration.id}-{timestamp}"""
311
+ else:
312
+ experiment_id = xp_configuration.id
313
+
314
+ logging.info(
315
+ "Running experiment %s working directory %s",
316
+ experiment_id,
317
+ str(workdir.resolve()),
318
+ )
307
319
  with experiment(
308
- ws_env, configuration.id, host=host, port=port, run_mode=run_mode
320
+ ws_env, experiment_id, host=host, port=port, run_mode=run_mode
309
321
  ) as xp:
310
322
  # Set up the environment
311
323
  # (1) global settings (2) workspace settings and (3) command line settings
@@ -318,7 +330,7 @@ def experiments_cli( # noqa: C901
318
330
  try:
319
331
  # Run the experiment
320
332
  helper.xp = xp
321
- helper.run(list(args), configuration)
333
+ helper.run(list(args), xp_configuration)
322
334
 
323
335
  # ... and wait
324
336
  xp.wait()
@@ -51,3 +51,6 @@ class ConfigurationBase:
51
51
 
52
52
  description: str = ""
53
53
  """Description of the experiment"""
54
+
55
+ add_timestamp: bool = False
56
+ """Adds a timestamp YYYY_MM_DD-HH_MM to the experiment ID"""
@@ -41,10 +41,10 @@ def test_experiment_history():
41
41
  task_a = TaskA().submit()
42
42
  TaskB(task_a=task_a, x=tag(1)).submit()
43
43
 
44
- # Look at the experiment
45
- xp = get_experiment("experiment", workdir=workdir)
44
+ # Look at the experiment
45
+ xp = get_experiment("experiment", workdir=workdir)
46
46
 
47
- (task_a_info,) = xp.get_jobs(TaskA)
48
- (task_b_info,) = xp.get_jobs(TaskB)
49
- assert task_b_info.tags == {"x": 1}
50
- assert task_b_info.depends_on == [task_a_info]
47
+ (task_a_info,) = xp.get_jobs(TaskA)
48
+ (task_b_info,) = xp.get_jobs(TaskB)
49
+ assert task_b_info.tags == {"x": 1}
50
+ assert task_b_info.depends_on == [task_a_info]