experimaestro 1.5.12__tar.gz → 1.5.14__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 (145) hide show
  1. {experimaestro-1.5.12 → experimaestro-1.5.14}/PKG-INFO +2 -2
  2. {experimaestro-1.5.12 → experimaestro-1.5.14}/pyproject.toml +3 -3
  3. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/connectors/ssh.py +17 -4
  4. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/objects.py +7 -3
  5. {experimaestro-1.5.12 → experimaestro-1.5.14}/LICENSE +0 -0
  6. {experimaestro-1.5.12 → experimaestro-1.5.14}/README.md +0 -0
  7. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/__init__.py +0 -0
  8. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/__main__.py +0 -0
  9. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/annotations.py +0 -0
  10. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/checkers.py +0 -0
  11. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/cli/__init__.py +0 -0
  12. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/cli/filter.py +0 -0
  13. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/cli/jobs.py +0 -0
  14. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/click.py +0 -0
  15. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/commandline.py +0 -0
  16. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/compat.py +0 -0
  17. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/connectors/__init__.py +0 -0
  18. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/connectors/local.py +0 -0
  19. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/__init__.py +0 -0
  20. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/arguments.py +0 -0
  21. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/context.py +0 -0
  22. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/objects.pyi +0 -0
  23. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/serialization.py +0 -0
  24. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/serializers.py +0 -0
  25. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/types.py +0 -0
  26. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/core/utils.py +0 -0
  27. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/exceptions.py +0 -0
  28. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/experiments/__init__.py +0 -0
  29. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/experiments/cli.py +0 -0
  30. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/experiments/configuration.py +0 -0
  31. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/generators.py +0 -0
  32. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/huggingface.py +0 -0
  33. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/ipc.py +0 -0
  34. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launcherfinder/__init__.py +0 -0
  35. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launcherfinder/base.py +0 -0
  36. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launcherfinder/parser.py +0 -0
  37. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launcherfinder/registry.py +0 -0
  38. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launcherfinder/specs.py +0 -0
  39. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launchers/__init__.py +0 -0
  40. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launchers/direct.py +0 -0
  41. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launchers/oar.py +0 -0
  42. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launchers/slurm/__init__.py +0 -0
  43. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/launchers/slurm/base.py +0 -0
  44. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/locking.py +0 -0
  45. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/mkdocs/__init__.py +0 -0
  46. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/mkdocs/annotations.py +0 -0
  47. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/mkdocs/base.py +0 -0
  48. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/mkdocs/metaloader.py +0 -0
  49. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/mkdocs/style.css +0 -0
  50. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/mypy.py +0 -0
  51. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/notifications.py +0 -0
  52. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/py.typed +0 -0
  53. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/rpyc.py +0 -0
  54. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/run.py +0 -0
  55. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/scheduler/__init__.py +0 -0
  56. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/scheduler/base.py +0 -0
  57. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/scheduler/dependencies.py +0 -0
  58. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/scheduler/services.py +0 -0
  59. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/scheduler/workspace.py +0 -0
  60. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/scriptbuilder.py +0 -0
  61. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/__init__.py +0 -0
  62. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/016b4a6cdced82ab3aa1.ttf +0 -0
  63. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/0c35d18bf06992036b69.woff2 +0 -0
  64. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/219aa9140e099e6c72ed.woff2 +0 -0
  65. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/3a4004a46a653d4b2166.woff +0 -0
  66. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/3baa5b8f3469222b822d.woff +0 -0
  67. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/4d73cb90e394b34b7670.woff +0 -0
  68. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2 +0 -0
  69. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/50701fbb8177c2dde530.ttf +0 -0
  70. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/5d681e2edae8c60630db.woff +0 -0
  71. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/6f420cf17cc0d7676fad.woff2 +0 -0
  72. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/878f31251d960bd6266f.woff2 +0 -0
  73. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/b041b1fa4fe241b23445.woff2 +0 -0
  74. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/b6879d41b0852f01ed5b.woff2 +0 -0
  75. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/c380809fd3677d7d6903.woff2 +0 -0
  76. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/d75e3fd1eb12e9bd6655.ttf +0 -0
  77. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/f882956fd323fd322f31.woff +0 -0
  78. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/favicon.ico +0 -0
  79. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/index.css +0 -0
  80. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/index.css.map +0 -0
  81. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/index.html +0 -0
  82. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/index.js +0 -0
  83. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/index.js.map +0 -0
  84. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/login.html +0 -0
  85. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/server/data/manifest.json +0 -0
  86. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/settings.py +0 -0
  87. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/sphinx/__init__.py +0 -0
  88. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/sphinx/static/experimaestro.css +0 -0
  89. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/taskglobals.py +0 -0
  90. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/__init__.py +0 -0
  91. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/conftest.py +0 -0
  92. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/connectors/bin/executable.py +0 -0
  93. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/connectors/test_local.py +0 -0
  94. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/connectors/utils.py +0 -0
  95. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/definitions_types.py +0 -0
  96. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/__init__.py +0 -0
  97. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/bin/sacct +0 -0
  98. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/bin/sbatch +0 -0
  99. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/bin/test.py +0 -0
  100. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/common.py +0 -0
  101. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/config_slurm/__init__.py +0 -0
  102. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/config_slurm/launchers.py +0 -0
  103. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/test_local.py +0 -0
  104. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/launchers/test_slurm.py +0 -0
  105. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/restart.py +0 -0
  106. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/restart_main.py +0 -0
  107. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/scripts/notifyandwait.py +0 -0
  108. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/scripts/waitforfile.py +0 -0
  109. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/task_tokens.py +0 -0
  110. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/tasks/__init__.py +0 -0
  111. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/tasks/all.py +0 -0
  112. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/tasks/foreign.py +0 -0
  113. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_checkers.py +0 -0
  114. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_dependencies.py +0 -0
  115. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_findlauncher.py +0 -0
  116. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_forward.py +0 -0
  117. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_identifier.py +0 -0
  118. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_instance.py +0 -0
  119. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_objects.py +0 -0
  120. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_outputs.py +0 -0
  121. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_param.py +0 -0
  122. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_progress.py +0 -0
  123. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_serializers.py +0 -0
  124. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_snippets.py +0 -0
  125. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_ssh.py +0 -0
  126. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_tags.py +0 -0
  127. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_tasks.py +0 -0
  128. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_tokens.py +0 -0
  129. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_types.py +0 -0
  130. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/test_validation.py +0 -0
  131. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/token_reschedule.py +0 -0
  132. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tests/utils.py +0 -0
  133. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tokens.py +0 -0
  134. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tools/__init__.py +0 -0
  135. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tools/diff.py +0 -0
  136. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tools/documentation.py +0 -0
  137. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/tools/jobs.py +0 -0
  138. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/typingutils.py +0 -0
  139. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/utils/__init__.py +0 -0
  140. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/utils/asyncio.py +0 -0
  141. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/utils/jobs.py +0 -0
  142. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/utils/jupyter.py +0 -0
  143. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/utils/resources.py +0 -0
  144. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/utils/settings.py +0 -0
  145. {experimaestro-1.5.12 → experimaestro-1.5.14}/src/experimaestro/xpmutils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: experimaestro
3
- Version: 1.5.12
3
+ Version: 1.5.14
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
@@ -20,13 +20,13 @@ Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
23
24
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
24
25
  Requires-Dist: arpeggio (>=2,<3)
25
26
  Requires-Dist: attrs (>=23.1.0,<24.0.0)
26
27
  Requires-Dist: click (>=8)
27
28
  Requires-Dist: decorator (>=5,<6)
28
29
  Requires-Dist: docstring-parser (>=0.15,<0.16)
29
- Requires-Dist: fabric (>=3,<4)
30
30
  Requires-Dist: fasteners (>=0.19,<0.20)
31
31
  Requires-Dist: flask (>=2.3,<3.0)
32
32
  Requires-Dist: flask-socketio (>=5.3,<6.0)
@@ -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.5.12"
22
+ version = "1.5.14"
23
23
  repository = "https://github.com/experimaestro/experimaestro-python"
24
24
  documentation = "https://experimaestro-python.readthedocs.io/"
25
25
 
@@ -59,7 +59,6 @@ flask-socketio = "^5.3"
59
59
  arpeggio = "^2"
60
60
  watchdog = "^2"
61
61
  marshmallow = "^3.20"
62
- fabric = "^3"
63
62
  decorator = "^5"
64
63
  rpyc = ">=5,<7"
65
64
 
@@ -68,6 +67,7 @@ optional = true
68
67
 
69
68
  [tool.poetry.group.ssh.dependencies]
70
69
  paramiko = "^3.3"
70
+ fabric = "^3"
71
71
 
72
72
  [tool.poetry.group.dev]
73
73
  optional = true
@@ -119,7 +119,7 @@ warn_unused_ignores = true
119
119
 
120
120
  [tool.commitizen]
121
121
  name = "cz_conventional_commits"
122
- version = "1.5.12"
122
+ version = "1.5.14"
123
123
  changelog_start_rev = "0.15.0"
124
124
  tag_format = "v$version"
125
125
  update_changelog_on_bump = true
@@ -10,9 +10,6 @@ import io
10
10
  import os
11
11
  import re
12
12
  from experimaestro.launcherfinder import LauncherRegistry
13
- from fabric import Connection
14
- from invoke import Promise
15
- import invoke.exceptions
16
13
  from urllib.parse import urlparse
17
14
  from itertools import chain
18
15
  from . import Connector
@@ -25,6 +22,22 @@ from . import (
25
22
  from experimaestro.locking import Lock
26
23
  from experimaestro.tokens import Token
27
24
 
25
+ try:
26
+ from fabric import Connection
27
+ from invoke import Promise
28
+ from invoke.exceptions import Failure
29
+ except Exception:
30
+ # Just define placeholders
31
+ class Connection:
32
+ pass
33
+
34
+ class Promise:
35
+ pass
36
+
37
+ class Failure(Exception):
38
+ pass
39
+
40
+
28
41
  # Might be wise to switch to https://github.com/marian-code/ssh-utilities
29
42
 
30
43
 
@@ -178,7 +191,7 @@ class SshProcess(Process):
178
191
  def wait(self) -> int:
179
192
  try:
180
193
  self.promise.join()
181
- except invoke.exceptions.Failure:
194
+ except Failure:
182
195
  raise
183
196
 
184
197
 
@@ -583,6 +583,9 @@ class ConfigInformation:
583
583
  # State information
584
584
  self.job = None
585
585
 
586
+ #: True when this configuration was loaded from disk
587
+ self.loaded = False
588
+
586
589
  # Explicitely added dependencies
587
590
  self.dependencies = []
588
591
 
@@ -846,8 +849,8 @@ class ConfigInformation:
846
849
  dependencies, path + ["__init_tasks__"], taskids
847
850
  )
848
851
 
849
- # Check for an associated task
850
- if self.task:
852
+ # Check for an associated task (and not loaded)
853
+ if self.task and not self.loaded:
851
854
  if id(self.task) not in taskids:
852
855
  taskids.add(id(self.task))
853
856
  dependencies.add(self.task.__xpm__.dependency())
@@ -1385,12 +1388,13 @@ class ConfigInformation:
1385
1388
  else:
1386
1389
  o.__init__()
1387
1390
  xpminfo = o.__xpm__ # type: ConfigInformation
1391
+ xpminfo.loaded = True
1388
1392
 
1389
1393
  meta = definition.get("meta", None)
1390
1394
  if meta:
1391
1395
  xpminfo._meta = meta
1392
1396
  if xpminfo.xpmtype.task is not None:
1393
- o.__xpm__.job = object()
1397
+ xpminfo.job = object()
1394
1398
 
1395
1399
  # Set the fields
1396
1400
  for name, value in definition["fields"].items():
File without changes
File without changes