experimaestro 1.10.0__py3-none-any.whl → 1.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. experimaestro/cli/__init__.py +2 -2
  2. experimaestro/cli/filter.py +1 -1
  3. experimaestro/connectors/__init__.py +2 -2
  4. experimaestro/core/arguments.py +11 -8
  5. experimaestro/core/identifier.py +11 -6
  6. experimaestro/core/objects/config.py +127 -193
  7. experimaestro/core/objects/config_walk.py +4 -6
  8. experimaestro/core/objects.pyi +2 -6
  9. experimaestro/core/serializers.py +1 -8
  10. experimaestro/core/types.py +1 -4
  11. experimaestro/launcherfinder/registry.py +6 -6
  12. experimaestro/launcherfinder/specs.py +8 -1
  13. experimaestro/launchers/slurm/base.py +1 -1
  14. experimaestro/run.py +2 -0
  15. experimaestro/scheduler/base.py +0 -2
  16. experimaestro/scheduler/workspace.py +44 -1
  17. experimaestro/server/__init__.py +12 -6
  18. experimaestro/server/data/0c35d18bf06992036b69.woff2 +0 -0
  19. experimaestro/server/data/1815e00441357e01619e.ttf +0 -0
  20. experimaestro/server/data/219aa9140e099e6c72ed.woff2 +0 -0
  21. experimaestro/server/data/2463b90d9a316e4e5294.woff2 +0 -0
  22. experimaestro/server/data/2582b0e4bcf85eceead0.ttf +0 -0
  23. experimaestro/server/data/3a4004a46a653d4b2166.woff +0 -0
  24. experimaestro/server/data/3baa5b8f3469222b822d.woff +0 -0
  25. experimaestro/server/data/4d73cb90e394b34b7670.woff +0 -0
  26. experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2 +0 -0
  27. experimaestro/server/data/5d681e2edae8c60630db.woff +0 -0
  28. experimaestro/server/data/6f420cf17cc0d7676fad.woff2 +0 -0
  29. experimaestro/server/data/89999bdf5d835c012025.woff2 +0 -0
  30. experimaestro/server/data/914997e1bdfc990d0897.ttf +0 -0
  31. experimaestro/server/data/c210719e60948b211a12.woff2 +0 -0
  32. experimaestro/server/data/c380809fd3677d7d6903.woff2 +0 -0
  33. experimaestro/server/data/f882956fd323fd322f31.woff +0 -0
  34. experimaestro/server/data/favicon.ico +0 -0
  35. experimaestro/server/data/index.css +22963 -0
  36. experimaestro/server/data/index.css.map +1 -0
  37. experimaestro/server/data/index.html +27 -0
  38. experimaestro/server/data/index.js +101770 -0
  39. experimaestro/server/data/index.js.map +1 -0
  40. experimaestro/server/data/login.html +22 -0
  41. experimaestro/server/data/manifest.json +15 -0
  42. experimaestro/tests/tasks/all.py +7 -0
  43. experimaestro/tests/test_dependencies.py +0 -6
  44. experimaestro/tests/test_generators.py +93 -0
  45. experimaestro/tests/test_identifier.py +87 -76
  46. experimaestro/tests/test_instance.py +0 -12
  47. experimaestro/tests/test_param.py +1 -4
  48. experimaestro/tests/test_serializers.py +0 -59
  49. experimaestro/tests/test_tasks.py +10 -23
  50. experimaestro/tests/test_types.py +2 -2
  51. experimaestro/utils/multiprocessing.py +44 -0
  52. experimaestro/utils/resources.py +1 -1
  53. {experimaestro-1.10.0.dist-info → experimaestro-1.16.0.dist-info}/METADATA +5 -4
  54. {experimaestro-1.10.0.dist-info → experimaestro-1.16.0.dist-info}/RECORD +57 -32
  55. {experimaestro-1.10.0.dist-info → experimaestro-1.16.0.dist-info}/WHEEL +1 -1
  56. experimaestro/compat.py +0 -6
  57. {experimaestro-1.10.0.dist-info → experimaestro-1.16.0.dist-info}/entry_points.txt +0 -0
  58. {experimaestro-1.10.0.dist-info → experimaestro-1.16.0.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,44 @@
1
+ import logging
2
+ import multiprocessing as mp
3
+ import time
4
+ import os
5
+ import signal
6
+ import threading
7
+
8
+
9
+ def delayed_shutdown(delay=60, *, exit_code=1, grace_period=5):
10
+ """After *delay*'s try a graceful stop, then SIGKILL anything left.
11
+
12
+ :param delay: Delay in seconds before killing
13
+ :param grace_period: Delay in seconds before force-killing a child process
14
+ :param exit_code: The exit code to use
15
+ """
16
+
17
+ def _killer():
18
+ time.sleep(delay)
19
+
20
+ logging.info("Stall dectected – killing all subprocesses")
21
+
22
+ # 1️⃣ Try graceful termination
23
+ for p in mp.active_children():
24
+ # sends SIGTERM / TerminateProcess
25
+ p.terminate()
26
+
27
+ alive = mp.active_children()
28
+ deadline = time.time() + grace_period
29
+ while alive and time.time() < deadline:
30
+ alive = [p for p in alive if p.is_alive()]
31
+ time.sleep(0.1)
32
+
33
+ # 2️⃣ Anything still alive? Nuke it.
34
+ for p in alive:
35
+ try:
36
+ os.kill(p.pid, signal.SIGKILL)
37
+ except OSError:
38
+ pass
39
+
40
+ # 3️⃣ Finally kill the parent
41
+ os.kill(os.getpid(), signal.SIGKILL)
42
+
43
+ # Start the thread (non blocking)
44
+ threading.Thread(target=_killer, daemon=True).start()
@@ -3,7 +3,7 @@ from os import PathLike
3
3
  from pathlib import Path
4
4
  from typing import Union
5
5
  from importlib import resources
6
- from experimaestro.compat import cached_property
6
+ from functools import cached_property
7
7
 
8
8
 
9
9
  class ResourcePathWrapper(PathLike):
@@ -1,8 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: experimaestro
3
- Version: 1.10.0
3
+ Version: 1.16.0
4
4
  Summary: "Experimaestro is a computer science experiment manager"
5
5
  License: GPL-3
6
+ License-File: LICENSE
6
7
  Keywords: experiment manager
7
8
  Author: Benjamin Piwowarski
8
9
  Author-email: benjamin@piwowarski.fr
@@ -20,8 +21,8 @@ Requires-Dist: click (>=8)
20
21
  Requires-Dist: decorator (>=5,<6)
21
22
  Requires-Dist: docstring-parser (>=0.15,<1)
22
23
  Requires-Dist: fasteners (>=0.19,<1)
23
- Requires-Dist: flask (>=2.3,<3)
24
- Requires-Dist: flask-socketio (>=5.3,<6)
24
+ Requires-Dist: flask (>=2.3)
25
+ Requires-Dist: flask-socketio (>=5.3)
25
26
  Requires-Dist: gevent (>=25)
26
27
  Requires-Dist: gevent-websocket (>=0.10)
27
28
  Requires-Dist: huggingface-hub (>0.17)
@@ -2,28 +2,27 @@ experimaestro/__init__.py,sha256=XCSuw7ozZZxL9ugnkIhqAaG7CQ6dE9NeSiDJ93QFH_I,164
2
2
  experimaestro/__main__.py,sha256=Dv9lFl03yt1dswd0Xb9NIJRgHpA5_IwH4RfQPEHyFz0,158
3
3
  experimaestro/annotations.py,sha256=wyVmPlkXuoT6IxJ-ti8bFo6HxhGY1BYBxM5-pib6shU,8773
4
4
  experimaestro/checkers.py,sha256=ZCMbnE_GFC5compWjt-fuHhPImi9fCPjImF8Ow9NqK8,696
5
- experimaestro/cli/__init__.py,sha256=mzc-qqTFtZnFwCQl7IiwlYXEx08kLGwdntWayCerZ6E,9610
6
- experimaestro/cli/filter.py,sha256=bINAF-O7CwJ2u3T6xG_Q_niqDbPeoEASyYLuCeNlbFw,6313
5
+ experimaestro/cli/__init__.py,sha256=NcALMvzZeSR1JMcllS7y9gl2BvIBxXM64f-ipVCx8No,9620
6
+ experimaestro/cli/filter.py,sha256=Y_ykQ0KcU7HeW7E-U_mtpkyMAZtO3EEOHxSy9tlhu2k,6302
7
7
  experimaestro/cli/jobs.py,sha256=BnejUnhKAgMBVgwANfQYj5mLzknXVohveg7NpovNZ8o,7925
8
8
  experimaestro/click.py,sha256=6BkeQHEgcxaxzq3xEvEEzwzuBj5-dkfrpOGikuA8L00,1377
9
9
  experimaestro/commandline.py,sha256=MJIJcfppGCjNA8ozxXUzbUSeDOlTExuzhxryGx3_lIo,9314
10
- experimaestro/compat.py,sha256=dQqE2ZNHLM2wtdfp7fBRYMfC33qNehVf9J6FGRBUQhs,171
11
- experimaestro/connectors/__init__.py,sha256=UKhDU3uv9jFH37oUb0JiejrekA85xtEirn79pA7DFhI,6125
10
+ experimaestro/connectors/__init__.py,sha256=_8jETUTM3Ecdm8azNrxCSCXyXWso0mwDFnTrcNV3a4w,6129
12
11
  experimaestro/connectors/local.py,sha256=lCGIubqmUJZ1glLtLRXOgakTMfEaEmFtNkEcw9qV5vw,6143
13
12
  experimaestro/connectors/ssh.py,sha256=5giqvv1y0QQKF-GI0IFUzI_Z5H8Bj9EuL_Szpvk899Q,8600
14
13
  experimaestro/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
- experimaestro/core/arguments.py,sha256=7hpkU1f8LJ7JL8kQaD514h9CFSfMotYLsVfMsMmdpWk,6487
14
+ experimaestro/core/arguments.py,sha256=ouEyEyOIneKTKD1nSkHjQkbtiTXNSC8lHqCtB6ERnd8,6516
16
15
  experimaestro/core/callbacks.py,sha256=59JfeUgWcCCdIQ3pvh-xNnoRp9BX8f4iOAkgm16wBzE,1660
17
16
  experimaestro/core/context.py,sha256=1tLmX7WcgEKSbGw77vfziTzS8KNsoZJ02JBWMBCqqOk,2606
18
- experimaestro/core/identifier.py,sha256=JadBAdW2fOIgoTyMRtKI_RY9SXQP2B1vq1rUcV465Hs,10214
17
+ experimaestro/core/identifier.py,sha256=5r2F425yX7Sfeub3EJZCs2Q4Qggifgi4uxMGcpI-ex0,10473
19
18
  experimaestro/core/objects/__init__.py,sha256=ucJY5e17QQ1Kc-GYXeL7g8GFj8rP0XB4g2vrl32uhxY,721
20
- experimaestro/core/objects/config.py,sha256=qOUgCmX1NwhRhpTVxgr2sSAqBCMYloUXb5f-NiXgV8Q,56989
19
+ experimaestro/core/objects/config.py,sha256=iy4_CrA4SBD3mm1-6lUX7GQfflMyOazrtCWQN4eYUAQ,54740
21
20
  experimaestro/core/objects/config_utils.py,sha256=ZLECGkeIWdzunm8vwWsQhvcSgV1e064BgXbLiZnxSEM,1288
22
- experimaestro/core/objects/config_walk.py,sha256=gyDMrVPbBMChn7r4em_gQXuqnxASO_JVauEbnJNO8II,4245
23
- experimaestro/core/objects.pyi,sha256=xvlsRj4u1xsJxbevJl5Ner_HwmxR8x1JlAeIVDJzuy0,6498
21
+ experimaestro/core/objects/config_walk.py,sha256=SYBrGuT7HV12no9mQd1HjnebiyygHyO-zq_TO1brUtc,4233
22
+ experimaestro/core/objects.pyi,sha256=Q1tq4F8LrExPm00E-P5aaygxMvViYZqhHvByo_TTZRE,6315
24
23
  experimaestro/core/serialization.py,sha256=CSPEwOzlDsgAz6V2og-TgyU0RXDtzt_nXaoXFZleDZE,5775
25
- experimaestro/core/serializers.py,sha256=R_CAMyjjfU1oi-eHU6VlEUixJpFayGqEPaYu7VsD9xA,1197
26
- experimaestro/core/types.py,sha256=AH3ni1nIKGTeRmc7ECL6GH_dYqiuZp_mAN4E-JqdqnY,21741
24
+ experimaestro/core/serializers.py,sha256=iOBuASEgD8dRKPnL16iOLBsM0GHChCJgjBd7LixFui4,919
25
+ experimaestro/core/types.py,sha256=7sHDPmWQRZZBDtdqShxrIXkJiQM9Z37gLRNYFQGSMSo,21602
27
26
  experimaestro/core/utils.py,sha256=JfC3qGUS9b6FUHc2VxIYUI9ysNpXSQ1LjOBkjfZ8n7o,495
28
27
  experimaestro/exceptions.py,sha256=cUy83WHM3GeynxmMk6QRr5xsnpqUAdAoc-m3KQVrE2o,44
29
28
  experimaestro/experiments/__init__.py,sha256=GcpDUIbCvhnv6rxFdAp4wTffCVNTv-InY6fbQAlTy-o,159
@@ -35,13 +34,13 @@ experimaestro/ipc.py,sha256=Xn3tYME83jLEB0nFak3DwEIhpL5IRZpCl3jirBF_jl4,1570
35
34
  experimaestro/launcherfinder/__init__.py,sha256=qRUDyv3B9UsAM8Q31mRrZrTZox0AptwdmOY4f2K-TUo,279
36
35
  experimaestro/launcherfinder/base.py,sha256=q47SsF_cXdo5O6ZhFKn5385WVFcx8Wd-BcEpd6tRpbs,515
37
36
  experimaestro/launcherfinder/parser.py,sha256=MIHhjs2sTVxLHLcc1CgFid9XxhInXker8QdA-GBA-Bk,2364
38
- experimaestro/launcherfinder/registry.py,sha256=F16A7SE_CgzaTBC-LBlurbthTDvYUa5iyjJftkDNN4M,6420
39
- experimaestro/launcherfinder/specs.py,sha256=484S4-N22Y10BsyTpNwW0l369ALAJUrXQK9LsYSYsaQ,7705
37
+ experimaestro/launcherfinder/registry.py,sha256=dUsGtSbojUZKt_gwB4xBOQSMhJAQ51gEkVSu8_6CzPo,6419
38
+ experimaestro/launcherfinder/specs.py,sha256=eQC2pwAnvq7kF2xmAfHpg_Wx6_lH6YMf3ZCDwqatjKk,7898
40
39
  experimaestro/launchers/__init__.py,sha256=lXn544sgJExr6uirILWzAXu_IfmfyqFZOt4OzRnjHXg,2525
41
40
  experimaestro/launchers/direct.py,sha256=JZh6WOPnO6ED_xlOs8pL4MRFmnRhmXzpVxTl-ByaD2A,258
42
41
  experimaestro/launchers/oar.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
42
  experimaestro/launchers/slurm/__init__.py,sha256=R1Zwd4phZaXV8FwCYhzfB44n0V4cf-hBQzOc6NkFQ0s,41
44
- experimaestro/launchers/slurm/base.py,sha256=2CPNJeTNuwPOjqgmdkZ3MfdZbKQTIwlJtu_JL-IClg8,15753
43
+ experimaestro/launchers/slurm/base.py,sha256=wbSMzbQk3pfOQWf4HSAkYtMo2TZklLEE3jev1gGvJFs,15742
45
44
  experimaestro/locking.py,sha256=hPT-LuDGZTijpbme8O0kEoB9a3WjdVzI2h31OT44UxE,1477
46
45
  experimaestro/mkdocs/__init__.py,sha256=L9UDM7vOrRZl41zXTBOaHKSINEEsbmxwjIMIGESmLfU,46
47
46
  experimaestro/mkdocs/annotations.py,sha256=qpDw8lzrxpsOShXcpcP_LAeR3UhiIXAybG8UvS64-OU,263
@@ -52,16 +51,40 @@ experimaestro/mypy.py,sha256=M39VFuDrab-ymlCDIF5jys9oKpTwnuBPzb1T8Un5J3s,285
52
51
  experimaestro/notifications.py,sha256=TLG9sw6bxukj0Wj4ZXASn-A9sQuET_exzUHtgk8AgRQ,9335
53
52
  experimaestro/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
53
  experimaestro/rpyc.py,sha256=ZRKol-3tVoeoUITLNFenLF4dhWBLW_FvSV_GvsypmeI,3605
55
- experimaestro/run.py,sha256=58ZlIZ2dQ7a0un2iGiyHJhK14zc18BnpEFDis7OyTPA,5222
54
+ experimaestro/run.py,sha256=_szMzKn-67ulT6Wy21dzhB1g6_fiL379JnBC0zJqpIY,5332
56
55
  experimaestro/scheduler/__init__.py,sha256=ERmmOxz_9mUkIuccNbzUa5Y6gVLLVDdyc4cCxbCCUbY,20
57
- experimaestro/scheduler/base.py,sha256=294a_29UtsSfoW4NpL4_6mvDyDslG0qDXGmVkcGRUDA,35829
56
+ experimaestro/scheduler/base.py,sha256=gkwFPCNKQDsEmYtvOwaczf9HIP7SHHuMuJs8_PnsapM,35738
58
57
  experimaestro/scheduler/dependencies.py,sha256=n9XegwrmjayOIxt3xhuTEBVEBGSq4oeVdzz-FviDGXo,1994
59
58
  experimaestro/scheduler/dynamic_outputs.py,sha256=yYPL98I0nSgDjlE3Sk9dtvovh2PZ6rUDnKjDNnAg1dc,5732
60
59
  experimaestro/scheduler/services.py,sha256=aCKkNZMULlceabqf-kOs_-C7KPINnjU3Q-I00o5x6iY,2189
61
60
  experimaestro/scheduler/state.py,sha256=szTgnI_hAVqU2OWrrIXsZrO3VsrJlHryXUU0r95w_sw,2367
62
- experimaestro/scheduler/workspace.py,sha256=KNdxPBwUk7gO8h2utMCrlIVKB-f2Ylqg_IxLc4okp_8,2320
61
+ experimaestro/scheduler/workspace.py,sha256=S4Nal-RicYheWxHMrLC22LOB6csZDNHWUBz1oXOg1Qs,4048
63
62
  experimaestro/scriptbuilder.py,sha256=6GKUkgixLqSEy41sNr-_HNcrjKb8uxaoQ65DywRYsC0,5027
64
- experimaestro/server/__init__.py,sha256=F2bzLf2q29Haj2OIbPA26r5WVbaipBNylIozg-As758,10854
63
+ experimaestro/server/__init__.py,sha256=vN0Z6sgYXMhYAn1OZdoRkaEwiHjvySuXSIxDpi-ONE4,11011
64
+ experimaestro/server/data/0c35d18bf06992036b69.woff2,sha256=gmX2R4Y5fWuDLRygqv3xSa2E5ydZ__qfcnLpGg-wFdE,128352
65
+ experimaestro/server/data/1815e00441357e01619e.ttf,sha256=gIRDrmyCBDla3YVD2oqQpguTdvsPh-2OjqN9EJWW2AU,210792
66
+ experimaestro/server/data/219aa9140e099e6c72ed.woff2,sha256=0xv7gdVueQ4Nni-gC4Pfj3FZ-QYxFM3AFIWbHUg5Vsg,135984
67
+ experimaestro/server/data/2463b90d9a316e4e5294.woff2,sha256=qnWZhiOjkeYcaQF5Ss6DLj7N0oi1bWCPIb6gQRrMC44,158220
68
+ experimaestro/server/data/2582b0e4bcf85eceead0.ttf,sha256=0vBZNUCw4zum3iVaVPJy1GbjEUSAaVa-qM_b9-3_yb0,426112
69
+ experimaestro/server/data/3a4004a46a653d4b2166.woff,sha256=-jiI7_pbxjPGuygaSdiSf-eqACEsn8D3M4yBnsXMFu4,156236
70
+ experimaestro/server/data/3baa5b8f3469222b822d.woff,sha256=PTTzCsa7Ivpb9Y0-Uue7bezZnFcdanfV36e-eL7PK1A,339600
71
+ experimaestro/server/data/4d73cb90e394b34b7670.woff,sha256=_YT4i0lwQNT31ejJ-GNa740-cGwPpS4rb6zxTu6H5SI,164912
72
+ experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2,sha256=Hmc7qFiWVHlNKtN1woc_GHCkV48rPoR9zEB63QO1esI,215704
73
+ experimaestro/server/data/5d681e2edae8c60630db.woff,sha256=HBNbFRpB4jE4sy0wZePw6rIwpnrv6SXplwnL4QK9YEw,206260
74
+ experimaestro/server/data/6f420cf17cc0d7676fad.woff2,sha256=NdyopxRaF8jRMG8lo8oJFXjhU5bwsi1h645zJirHVXc,155276
75
+ experimaestro/server/data/89999bdf5d835c012025.woff2,sha256=40VtEoO511M3p3Pf0Ue_kI_QLAG0v0hXbYYDppsTy-U,25472
76
+ experimaestro/server/data/914997e1bdfc990d0897.ttf,sha256=VM9ghve7IfnQcq1JShm0aB-lFt0KFM7lLaAdNlGpE6M,68064
77
+ experimaestro/server/data/c210719e60948b211a12.woff2,sha256=1yNqGb8jy7ICcoDo9R3JnWxFl2ou1g3nM4KwNLGKK2g,118684
78
+ experimaestro/server/data/c380809fd3677d7d6903.woff2,sha256=yUjxJjNBaZs8HpxV2NDz5EZmnQ8rnVVJTGFpIiwCQ6Y,173620
79
+ experimaestro/server/data/f882956fd323fd322f31.woff,sha256=jpR1jFTCboWqzy09yhrXqtpZBKRgI4-uSEPrxEvELtw,182028
80
+ experimaestro/server/data/favicon.ico,sha256=PRD32mxgMXg0AIFmjErFs66XQ8qaJiqw_NMS-7n0i90,3870
81
+ experimaestro/server/data/index.css,sha256=hujPctk1MO9fdUpzFiveEKQzkiABNGmeJOtNoUMqDAY,392757
82
+ experimaestro/server/data/index.css.map,sha256=rKkhyfo3OaALku4FrL0Lqs8-mjxfXlkvPIk5V-LfaBs,575718
83
+ experimaestro/server/data/index.html,sha256=LcXSo2QU5jcmqgmFhVWWOG_CfGyrqdm3H8jwkdRgdGU,706
84
+ experimaestro/server/data/index.js,sha256=q8oG4RM5rRjIGmI1szIrLTxigTHNkVUG1BuHbcjUeSw,3710972
85
+ experimaestro/server/data/index.js.map,sha256=cv7KF28Uq5dy7Ux3yRnoSVztrOFVid359fm0Xn2IJ6s,3903046
86
+ experimaestro/server/data/login.html,sha256=4dvhSOn6DHp_tbmzqIKrqq2uAo0sAUbgLVD0lTnPp4s,511
87
+ experimaestro/server/data/manifest.json,sha256=EpzHQZzrGh9c1Kf63nrqvI33H1cm0nLYfdh5lDm8ijI,318
65
88
  experimaestro/settings.py,sha256=U6gTVBL5Z4Rk0_7BAVoavVJKN2sQNRpspE-601Elfys,3170
66
89
  experimaestro/sphinx/__init__.py,sha256=HAofa65lCLAUOShgWwJIGEEOPKzu4VEs5LZd46V_Bng,9466
67
90
  experimaestro/sphinx/static/experimaestro.css,sha256=0rEgt1LoDdD-a_R5rVfWZ19zD1gR-1L7q3f4UibIB58,294
@@ -90,26 +113,27 @@ experimaestro/tests/scripts/notifyandwait.py,sha256=3BLXLI5XgP3BnKf6sQ56oKoMVqR8
90
113
  experimaestro/tests/scripts/waitforfile.py,sha256=EDT-TuFi2fU_qt51K5EmAxjw_OnJKkBW7UCfhrtDbVw,120
91
114
  experimaestro/tests/task_tokens.py,sha256=vgqUa-S_YC2Id9pGOSv40qFTwq1WGZkFhr556Z5o678,477
92
115
  experimaestro/tests/tasks/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
- experimaestro/tests/tasks/all.py,sha256=OMkHsWZkErCmTajiNO7hNhvnk9eKzJC-VatWgabWlsI,1955
116
+ experimaestro/tests/tasks/all.py,sha256=2KF0D1CB2PBwM_aXX09Ug6vy0MUQgoTATdheNeNKXHg,2101
94
117
  experimaestro/tests/tasks/foreign.py,sha256=uhXDOcWozkcm26ybbeEU9RElJpbhjC-zdzmlSKfPcdY,122
95
118
  experimaestro/tests/test_checkers.py,sha256=Kg5frDNRE3pvWVmmYzyk0tJFNO885KOrK48lSu-NlYA,403
96
- experimaestro/tests/test_dependencies.py,sha256=xfWrSkvjT45G4FSCL535m1huLT2ghmyW7kvP_XvvCJQ,2005
119
+ experimaestro/tests/test_dependencies.py,sha256=fEmBNQaEkP8xb_P_5EfKIJflL-NCeSOOZk_FumlgBC0,1870
97
120
  experimaestro/tests/test_experiment.py,sha256=QWF9aHewL9hepagrKKFyfikKn3iiZ_lRRXl1LLttta0,1687
98
121
  experimaestro/tests/test_findlauncher.py,sha256=KPy8ow--NXS1KFCIpxrmEJFRvjo-v-PwlVHVyoVKLPg,3134
99
122
  experimaestro/tests/test_forward.py,sha256=9y1zYm7hT_Lx5citxnK7n20cMZ2WJbsaEeY5irCZ9U4,735
100
- experimaestro/tests/test_identifier.py,sha256=zgfpz5UumQftQTHhdw3nmr044Xd7Ntrh7e2hIAoS_PA,13862
101
- experimaestro/tests/test_instance.py,sha256=h-8UeoOlNsD-STWq5jbhmxw35CyiwJxtKAaUGmLPgB8,1521
123
+ experimaestro/tests/test_generators.py,sha256=R0UypTzxX0dPYvY4A_kozpLDHhGzQDNfLQyc0oRaSx8,2891
124
+ experimaestro/tests/test_identifier.py,sha256=REFB9RGyVlSdAPMpmvJ9a0WbAoe6ZTR1xl73lqtRFU0,14022
125
+ experimaestro/tests/test_instance.py,sha256=xLdSNVo_vAEaOWmjik1tAOYgyOkJPbmnwopyuDEQm1A,1147
102
126
  experimaestro/tests/test_objects.py,sha256=zycxjvWuJAbPR8-q2T3zuBY9xfmlhf1YvtOcrImHxnc,2431
103
127
  experimaestro/tests/test_outputs.py,sha256=DYzPk5TT_yLumy8SsQbl-S66ivVxJ-ERFrZ68KQZ4KU,781
104
- experimaestro/tests/test_param.py,sha256=7BltCUm9uhtEupJZ-QSaj7MxuXoUl73NjE8NfzJD5BA,7290
128
+ experimaestro/tests/test_param.py,sha256=vPfPd9l-Id9EqLmd0-XklvTRje1hHrkIdLIfHKbXImE,7183
105
129
  experimaestro/tests/test_progress.py,sha256=wtIGQzlV3ldd_wMng11LinVESchW-1J954mCJNlG28E,7580
106
- experimaestro/tests/test_serializers.py,sha256=u3A5JbusN8aW6x6reUIwpU1Fs-avnzTRU7WuTear9Qs,2722
130
+ experimaestro/tests/test_serializers.py,sha256=dQkiuvHAQ1g-SCRCfOy977nQMWR7CFuBUud65N_vfiI,1248
107
131
  experimaestro/tests/test_snippets.py,sha256=rojnyDjtmAMnSuDUj6Bv9XEgdP8oQf2nVc132JF8vsM,3081
108
132
  experimaestro/tests/test_ssh.py,sha256=KS1NWltiXrJBSStY9d4mwrexeqgNGWmhxuAU_WLQDAU,1449
109
133
  experimaestro/tests/test_tags.py,sha256=v_8_7LuEHfY_gfa0JRCUkmgJh8h6RMya_nd5NcPAJPw,2852
110
- experimaestro/tests/test_tasks.py,sha256=bUSB_UT1MTN2P_RPHd4AT5NK-DFsgCVeFKSiXu3bEz8,9429
134
+ experimaestro/tests/test_tasks.py,sha256=PjzrmFNaDm2NZ0Di2ixGDSJRBCGRAdPzyLcrGOUPVXU,8906
111
135
  experimaestro/tests/test_tokens.py,sha256=U3nKBL1KftWhmk3dQZZLQd-MLJL_SscMjI3zMieMHfc,7823
112
- experimaestro/tests/test_types.py,sha256=HVOu05ivOQB0Y7iBLVBg1J_FKg9E49pbU3yk0jvWA6U,1301
136
+ experimaestro/tests/test_types.py,sha256=CVyAyiWgEeV1FpWc-oC8TUqGN4o-9eVBrv75PHvWapA,1305
113
137
  experimaestro/tests/test_validation.py,sha256=t0fu-5wkCzpUKLu8K0rbU5zDE_LtsgehWm84HtIF5JY,4076
114
138
  experimaestro/tests/token_reschedule.py,sha256=V8lAbjTWTatBrBjxde_KN-fDEI4sQ3HNr4scCXBU6fI,1701
115
139
  experimaestro/tests/utils.py,sha256=41krZFgUaCxCYBQPmo5dNFDd9W6RU8ZzzyzY3FyutUI,3805
@@ -123,11 +147,12 @@ experimaestro/utils/__init__.py,sha256=BdYguxAbR1jOQPV36OgGA31itaMvBJ6WVPV6b4Jn4
123
147
  experimaestro/utils/asyncio.py,sha256=9r_vFQs6T6tqmymC_DbHVFhY9YVRO6X48uEuyL_ugP8,726
124
148
  experimaestro/utils/jobs.py,sha256=42FAdKcn_v_-M6hcQZPUBr9kbDt1eVsk3a4E8Gc4eu8,2394
125
149
  experimaestro/utils/jupyter.py,sha256=JcEo2yQK7x3Cr1tNl5FqGMZOICxCv9DwMvL5xsWdQPk,2183
126
- experimaestro/utils/resources.py,sha256=j-nvsTFwmgENMoVGOD2Ap-UD3WU85WkI0IgeSszMCX4,1328
150
+ experimaestro/utils/multiprocessing.py,sha256=am3DkHP_kmWbpynbck2c9QystCUtPBoSAC0ViBVzndU,1275
151
+ experimaestro/utils/resources.py,sha256=I0UPGMhQ_bttWt5JJLs1r-CmQsCHwtbmYjUN8JJLFKg,1317
127
152
  experimaestro/utils/settings.py,sha256=jpFMqF0DLL4_P1xGal0zVR5cOrdD8O0Y2IOYvnRgN3k,793
128
153
  experimaestro/xpmutils.py,sha256=S21eMbDYsHfvmZ1HmKpq5Pz5O-1HnCLYxKbyTBbASyQ,638
129
- experimaestro-1.10.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
130
- experimaestro-1.10.0.dist-info/METADATA,sha256=ida9aZ1fCZ1l55Zu1k_9SM-orZmx4Pg91giKtW5WinA,5689
131
- experimaestro-1.10.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
132
- experimaestro-1.10.0.dist-info/entry_points.txt,sha256=TppTNiz5qm5xm1fhAcdLKdCLMrlL-eQggtCrCI00D9c,446
133
- experimaestro-1.10.0.dist-info/RECORD,,
154
+ experimaestro-1.16.0.dist-info/METADATA,sha256=qxLrpuKm5vBrGrKsNFT7eneNLw_SzEUkrL-6mha7e1Y,5705
155
+ experimaestro-1.16.0.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
156
+ experimaestro-1.16.0.dist-info/entry_points.txt,sha256=TppTNiz5qm5xm1fhAcdLKdCLMrlL-eQggtCrCI00D9c,446
157
+ experimaestro-1.16.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
158
+ experimaestro-1.16.0.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.3
2
+ Generator: poetry-core 2.2.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
experimaestro/compat.py DELETED
@@ -1,6 +0,0 @@
1
- import sys
2
-
3
- if sys.version_info.major == 3 and sys.version_info.minor < 9:
4
- from cached_property import cached_property
5
- else:
6
- from functools import cached_property