experimaestro 1.4.0__tar.gz → 1.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

Files changed (146) hide show
  1. {experimaestro-1.4.0 → experimaestro-1.4.2}/PKG-INFO +9 -6
  2. {experimaestro-1.4.0 → experimaestro-1.4.2}/README.md +8 -5
  3. {experimaestro-1.4.0 → experimaestro-1.4.2}/pyproject.toml +2 -2
  4. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/__init__.py +1 -1
  5. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/objects.py +3 -0
  6. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/serialization.py +14 -0
  7. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/utils.py +1 -1
  8. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/experiments/cli.py +11 -0
  9. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/experiments/configuration.py +1 -1
  10. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/scheduler/base.py +0 -1
  11. {experimaestro-1.4.0 → experimaestro-1.4.2}/LICENSE +0 -0
  12. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/__main__.py +0 -0
  13. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/annotations.py +0 -0
  14. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/checkers.py +0 -0
  15. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/click.py +0 -0
  16. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/commandline.py +0 -0
  17. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/compat.py +0 -0
  18. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/connectors/__init__.py +0 -0
  19. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/connectors/local.py +0 -0
  20. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/connectors/ssh.py +0 -0
  21. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/__init__.py +0 -0
  22. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/arguments.py +0 -0
  23. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/context.py +0 -0
  24. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/objects.pyi +0 -0
  25. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/serializers.py +0 -0
  26. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/core/types.py +0 -0
  27. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/experiments/__init__.py +0 -0
  28. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/filter.py +0 -0
  29. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/generators.py +0 -0
  30. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/huggingface.py +0 -0
  31. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/ipc.py +0 -0
  32. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launcherfinder/__init__.py +0 -0
  33. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launcherfinder/base.py +0 -0
  34. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launcherfinder/parser.py +0 -0
  35. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launcherfinder/registry.py +0 -0
  36. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launcherfinder/specs.py +0 -0
  37. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launchers/__init__.py +0 -0
  38. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launchers/direct.py +0 -0
  39. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launchers/oar.py +0 -0
  40. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launchers/slurm/__init__.py +0 -0
  41. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launchers/slurm/base.py +0 -0
  42. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launchers/slurm/cli.py +0 -0
  43. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/launchers/slurm/configuration.py +0 -0
  44. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/locking.py +0 -0
  45. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/mkdocs/__init__.py +0 -0
  46. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/mkdocs/annotations.py +0 -0
  47. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/mkdocs/base.py +0 -0
  48. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/mkdocs/metaloader.py +0 -0
  49. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/mkdocs/style.css +0 -0
  50. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/mypy.py +0 -0
  51. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/notifications.py +0 -0
  52. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/py.typed +0 -0
  53. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/rpyc.py +0 -0
  54. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/run.py +0 -0
  55. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/scheduler/__init__.py +0 -0
  56. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/scheduler/dependencies.py +0 -0
  57. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/scheduler/environment.py +0 -0
  58. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/scheduler/services.py +0 -0
  59. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/scheduler/workspace.py +0 -0
  60. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/scriptbuilder.py +0 -0
  61. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/__init__.py +0 -0
  62. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/016b4a6cdced82ab3aa1.ttf +0 -0
  63. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/0c35d18bf06992036b69.woff2 +0 -0
  64. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/219aa9140e099e6c72ed.woff2 +0 -0
  65. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/3a4004a46a653d4b2166.woff +0 -0
  66. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/3baa5b8f3469222b822d.woff +0 -0
  67. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/4d73cb90e394b34b7670.woff +0 -0
  68. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2 +0 -0
  69. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/50701fbb8177c2dde530.ttf +0 -0
  70. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/5d681e2edae8c60630db.woff +0 -0
  71. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/6f420cf17cc0d7676fad.woff2 +0 -0
  72. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/878f31251d960bd6266f.woff2 +0 -0
  73. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/b041b1fa4fe241b23445.woff2 +0 -0
  74. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/b6879d41b0852f01ed5b.woff2 +0 -0
  75. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/c380809fd3677d7d6903.woff2 +0 -0
  76. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/d75e3fd1eb12e9bd6655.ttf +0 -0
  77. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/f882956fd323fd322f31.woff +0 -0
  78. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/favicon.ico +0 -0
  79. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/index.css +0 -0
  80. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/index.css.map +0 -0
  81. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/index.html +0 -0
  82. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/index.js +0 -0
  83. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/index.js.map +0 -0
  84. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/login.html +0 -0
  85. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/server/data/manifest.json +0 -0
  86. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/settings.py +0 -0
  87. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/sphinx/__init__.py +0 -0
  88. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/sphinx/static/experimaestro.css +0 -0
  89. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/taskglobals.py +0 -0
  90. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/__init__.py +0 -0
  91. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/conftest.py +0 -0
  92. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/connectors/bin/executable.py +0 -0
  93. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/connectors/test_local.py +0 -0
  94. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/connectors/utils.py +0 -0
  95. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/definitions_types.py +0 -0
  96. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/__init__.py +0 -0
  97. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/bin/sacct +0 -0
  98. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/bin/sbatch +0 -0
  99. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/bin/test.py +0 -0
  100. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/common.py +0 -0
  101. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/config_slurm/__init__.py +0 -0
  102. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/config_slurm/launchers.yaml +0 -0
  103. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/test_local.py +0 -0
  104. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/launchers/test_slurm.py +0 -0
  105. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/restart.py +0 -0
  106. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/restart_main.py +0 -0
  107. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/scripts/notifyandwait.py +0 -0
  108. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/scripts/waitforfile.py +0 -0
  109. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/task_tokens.py +0 -0
  110. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/tasks/__init__.py +0 -0
  111. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/tasks/all.py +0 -0
  112. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/tasks/foreign.py +0 -0
  113. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_checkers.py +0 -0
  114. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_dependencies.py +0 -0
  115. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_findlauncher.py +0 -0
  116. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_forward.py +0 -0
  117. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_identifier.py +0 -0
  118. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_instance.py +0 -0
  119. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_objects.py +0 -0
  120. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_outputs.py +0 -0
  121. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_param.py +0 -0
  122. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_progress.py +0 -0
  123. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_serializers.py +0 -0
  124. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_snippets.py +0 -0
  125. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_ssh.py +0 -0
  126. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_tags.py +0 -0
  127. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_tasks.py +0 -0
  128. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_tokens.py +0 -0
  129. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_types.py +0 -0
  130. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/test_validation.py +0 -0
  131. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/token_reschedule.py +0 -0
  132. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tests/utils.py +0 -0
  133. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tokens.py +0 -0
  134. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tools/__init__.py +0 -0
  135. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tools/diff.py +0 -0
  136. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tools/documentation.py +0 -0
  137. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/tools/jobs.py +0 -0
  138. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/typingutils.py +0 -0
  139. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/utils/__init__.py +0 -0
  140. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/utils/asyncio.py +0 -0
  141. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/utils/jobs.py +0 -0
  142. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/utils/jupyter.py +0 -0
  143. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/utils/resources.py +0 -0
  144. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/utils/settings.py +0 -0
  145. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/utils/yaml.py +0 -0
  146. {experimaestro-1.4.0 → experimaestro-1.4.2}/src/experimaestro/xpmutils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: experimaestro
3
- Version: 1.4.0
3
+ Version: 1.4.2
4
4
  Summary: "Experimaestro is a computer science experiment manager"
5
5
  Home-page: https://github.com/experimaestro/experimaestro-python
6
6
  License: GPL-3
@@ -53,16 +53,19 @@ Project-URL: Repository, https://github.com/experimaestro/experimaestro-python
53
53
  Description-Content-Type: text/markdown
54
54
 
55
55
  [![PyPI version](https://badge.fury.io/py/experimaestro.svg)](https://badge.fury.io/py/experimaestro)
56
+ [![RTD](https://readthedocs.org/projects/experimaestro-python/badge/?version=latest)](https://experimaestro-python.readthedocs.io)
56
57
 
57
- Experimaestro is a computer science experiment manager whose goals are:
58
+ Experimaestro helps in designing and managing complex workflows. It allows for the definition of tasks and their dependencies, ensuring that each step in a workflow is executed in the correct order. Some key aspects of Experimaestro are:
58
59
 
59
- - To decompose experiments into a set of parameterizable tasks
60
- - Schedule tasks and handle dependencies between tasks
61
- - Avoids to re-run the same task two times by computing unique task IDs dependending on the parameters
62
- - Handle experimental parameters through tags
60
+ - **Task Automation**: The tool automates repetitive tasks, making it easier to run large-scale experiments. It's particularly useful in scenarios where experiments need to be repeated with different parameters or datasets.
61
+ - **Resource Management**: It efficiently manages computational resources, which is critical when dealing with data-intensive tasks or when running multiple experiments in parallel.
62
+ - **Extensibility**: Experimaestro is designed to be flexible and extensible, allowing users to integrate it with various programming languages and tools commonly used in data science and research.
63
+ - **Reproducibility**: By keeping a detailed record of experiments, including parameters and environments, it aids in ensuring the reproducibility of scientific experiments, which is a fundamental requirement in research.
64
+ - **User Interface**: While primarily a back-end tool, Experimaestro also offers a user interface to help in managing and visualizing workflows.
63
65
 
64
66
  The full documentation can be read by going to the following URL: [https://experimaestro-python.readthedocs.io](https://experimaestro-python.readthedocs.io)
65
67
 
68
+
66
69
  # Install
67
70
 
68
71
  ## With pip
@@ -1,14 +1,17 @@
1
1
  [![PyPI version](https://badge.fury.io/py/experimaestro.svg)](https://badge.fury.io/py/experimaestro)
2
+ [![RTD](https://readthedocs.org/projects/experimaestro-python/badge/?version=latest)](https://experimaestro-python.readthedocs.io)
2
3
 
3
- Experimaestro is a computer science experiment manager whose goals are:
4
+ Experimaestro helps in designing and managing complex workflows. It allows for the definition of tasks and their dependencies, ensuring that each step in a workflow is executed in the correct order. Some key aspects of Experimaestro are:
4
5
 
5
- - To decompose experiments into a set of parameterizable tasks
6
- - Schedule tasks and handle dependencies between tasks
7
- - Avoids to re-run the same task two times by computing unique task IDs dependending on the parameters
8
- - Handle experimental parameters through tags
6
+ - **Task Automation**: The tool automates repetitive tasks, making it easier to run large-scale experiments. It's particularly useful in scenarios where experiments need to be repeated with different parameters or datasets.
7
+ - **Resource Management**: It efficiently manages computational resources, which is critical when dealing with data-intensive tasks or when running multiple experiments in parallel.
8
+ - **Extensibility**: Experimaestro is designed to be flexible and extensible, allowing users to integrate it with various programming languages and tools commonly used in data science and research.
9
+ - **Reproducibility**: By keeping a detailed record of experiments, including parameters and environments, it aids in ensuring the reproducibility of scientific experiments, which is a fundamental requirement in research.
10
+ - **User Interface**: While primarily a back-end tool, Experimaestro also offers a user interface to help in managing and visualizing workflows.
9
11
 
10
12
  The full documentation can be read by going to the following URL: [https://experimaestro-python.readthedocs.io](https://experimaestro-python.readthedocs.io)
11
13
 
14
+
12
15
  # Install
13
16
 
14
17
  ## With pip
@@ -19,7 +19,7 @@ include = [
19
19
  "src/experimaestro/sphinx/static/experimaestro.css",
20
20
  "src/experimaestro/mkdocs/style.css"
21
21
  ]
22
- version = "1.4.0"
22
+ version = "1.4.2"
23
23
  repository = "https://github.com/experimaestro/experimaestro-python"
24
24
  documentation = "https://experimaestro-python.readthedocs.io/"
25
25
 
@@ -124,7 +124,7 @@ warn_unused_ignores = true
124
124
 
125
125
  [tool.commitizen]
126
126
  name = "cz_conventional_commits"
127
- version = "1.4.0"
127
+ version = "1.4.2"
128
128
  changelog_start_rev = "0.15.0"
129
129
  tag_format = "v$version"
130
130
  update_changelog_on_bump = true
@@ -27,7 +27,7 @@ from .annotations import (
27
27
  # Method
28
28
  config_only,
29
29
  )
30
- from .core.serialization import load, save, state_dict, from_state_dict
30
+ from .core.serialization import load, save, state_dict, from_state_dict, from_task_dir
31
31
  from .core.arguments import (
32
32
  # Types
33
33
  Param,
@@ -76,6 +76,9 @@ class Identifier:
76
76
 
77
77
  return Identifier(bytes.fromhex(data["main"]))
78
78
 
79
+ def __repr__(self):
80
+ return self.main.hex()
81
+
79
82
 
80
83
  def is_ignored(value):
81
84
  """Returns True if the value should be ignored by itself"""
@@ -112,3 +112,17 @@ def load(
112
112
  with data_loader("definition.json").open("rt") as fh:
113
113
  content = json.load(fh)
114
114
  return from_state_dict(content, as_instance=as_instance)
115
+
116
+
117
+ def from_task_dir(
118
+ path: Union[str, Path, SerializedPathLoader],
119
+ as_instance: bool = False,
120
+ ):
121
+ """Loads a task object"""
122
+ data_loader = get_data_loader(path)
123
+ with data_loader("params.json").open("rt") as fh:
124
+ content = json.load(fh)
125
+
126
+ content["data"] = {"type": "python", "value": content["objects"][-1]["id"]}
127
+
128
+ return from_state_dict(content, as_instance=as_instance)
@@ -10,7 +10,7 @@ class TaskSequence(Task):
10
10
 
11
11
  @property
12
12
  def __identifier__(self):
13
- return self.tasks[-1].__identifier__
13
+ return self.tasks[-1].__identifier__()
14
14
 
15
15
  def execute(self):
16
16
  self.tasks[-1].__tags__ = self.__tags__
@@ -33,6 +33,17 @@ class ExperimentHelper:
33
33
  assert len(args) == 0
34
34
  self.callable(self, configuration)
35
35
 
36
+ @classmethod
37
+ def decorator(cls, *args, **kwargs):
38
+ """Decorator for the run(helper, configuration) method"""
39
+ if len(args) == 1 and len(kwargs) == 0 and inspect.isfunction(args[0]):
40
+ return cls(callable)
41
+
42
+ def wrapper(callable):
43
+ return cls(callable)
44
+
45
+ return wrapper
46
+
36
47
 
37
48
  class ExperimentCallable(Protocol):
38
49
  """Protocol for the run function"""
@@ -28,5 +28,5 @@ class ConfigurationBase:
28
28
  file: str = "experiment"
29
29
  """qualified name (relative to the module) for the file containing a run function"""
30
30
 
31
- parent: Optional[str]
31
+ parent: Optional[str] = None
32
32
  """Relative path of a YAML file that should be merged"""
@@ -953,7 +953,6 @@ class experiment:
953
953
  """Adds a service (e.g. tensorboard viewer) to the experiment
954
954
 
955
955
  :param service: A service instance
956
- :type service: Service
957
956
  :return: The same service instance
958
957
  """
959
958
  self.services[service.id] = service
File without changes