experimaestro 2.0.0a4__tar.gz → 2.0.0b13__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.
- experimaestro-2.0.0b13/.gitignore +18 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/PKG-INFO +68 -38
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/README.md +13 -5
- experimaestro-2.0.0b13/pyproject.toml +167 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/__init__.py +13 -12
- experimaestro-2.0.0b13/src/experimaestro/annotations.py +307 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/cli/__init__.py +280 -9
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/cli/filter.py +72 -79
- experimaestro-2.0.0b13/src/experimaestro/cli/jobs.py +327 -0
- experimaestro-2.0.0b13/src/experimaestro/cli/refactor.py +248 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/click.py +0 -1
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/commandline.py +23 -3
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/connectors/__init__.py +29 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/connectors/local.py +55 -3
- experimaestro-2.0.0b13/src/experimaestro/core/arguments.py +376 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/identifier.py +116 -10
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/objects/__init__.py +6 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/objects/config.py +678 -245
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/objects/config_walk.py +21 -5
- experimaestro-2.0.0b13/src/experimaestro/core/partial.py +164 -0
- experimaestro-2.0.0b13/src/experimaestro/core/partial_lock.py +394 -0
- experimaestro-2.0.0b13/src/experimaestro/core/serialization.py +239 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/serializers.py +1 -8
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/types.py +178 -44
- experimaestro-2.0.0b13/src/experimaestro/dynamic.py +290 -0
- experimaestro-2.0.0b13/src/experimaestro/exceptions.py +28 -0
- experimaestro-2.0.0b13/src/experimaestro/experiments/__init__.py +6 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/experiments/cli.py +198 -41
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/experiments/configuration.py +24 -0
- experimaestro-2.0.0b13/src/experimaestro/generators.py +88 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/huggingface.py +3 -1
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launcherfinder/__init__.py +2 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launcherfinder/parser.py +29 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launcherfinder/registry.py +6 -7
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launcherfinder/specs.py +2 -9
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launchers/__init__.py +26 -1
- experimaestro-2.0.0b13/src/experimaestro/launchers/direct.py +22 -0
- experimaestro-2.0.0b13/src/experimaestro/launchers/slurm/__init__.py +2 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launchers/slurm/base.py +216 -2
- experimaestro-2.0.0b13/src/experimaestro/locking.py +1024 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/mkdocs/metaloader.py +0 -1
- experimaestro-2.0.0b13/src/experimaestro/mypy.py +460 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/notifications.py +105 -13
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/progress.py +0 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/rpyc.py +0 -3
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/run.py +43 -7
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/scheduler/__init__.py +2 -1
- experimaestro-2.0.0b13/src/experimaestro/scheduler/base.py +1115 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/db_state_provider.py +2423 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/dependencies.py +97 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/dynamic_outputs.py +313 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/experiment.py +804 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/interfaces.py +656 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/jobs.py +527 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/remote/__init__.py +31 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/remote/client.py +900 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/remote/protocol.py +281 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/remote/server.py +437 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/remote/sync.py +144 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/services.py +434 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/state_db.py +542 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/state_provider.py +656 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/state_sync.py +862 -0
- experimaestro-2.0.0b13/src/experimaestro/scheduler/transient.py +31 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/scheduler/workspace.py +52 -10
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/scriptbuilder.py +11 -4
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/settings.py +44 -5
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/sphinx/__init__.py +3 -3
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/taskglobals.py +20 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/conftest.py +135 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/connectors/bin/executable.py +1 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/core/test_generics.py +2 -2
- experimaestro-2.0.0b13/src/experimaestro/tests/fixtures/pre_experiment/experiment_check_env.py +16 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/fixtures/pre_experiment/experiment_check_mock.py +14 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/fixtures/pre_experiment/experiment_simple.py +12 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/fixtures/pre_experiment/pre_setup_env.py +5 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/fixtures/pre_experiment/pre_setup_error.py +3 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/fixtures/pre_experiment/pre_setup_mock.py +8 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/identifier_stability.json +45 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/bin/sacct +6 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/bin/sbatch +4 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/bin/test.py +1 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/launchers/test_slurm.py +166 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/partial_reschedule.py +46 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/restart.py +3 -3
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/restart_main.py +1 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/scripts/notifyandwait.py +1 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/task_partial.py +38 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/task_tokens.py +2 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/tasks/all.py +7 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/tasks/test_dynamic.py +231 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_cli_jobs.py +619 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_dependencies.py +3 -9
- experimaestro-2.0.0b13/src/experimaestro/tests/test_deprecated.py +630 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_dynamic_locking.py +317 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_environment.py +210 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_file_progress_integration.py +7 -7
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_forward.py +3 -3
- experimaestro-2.0.0b13/src/experimaestro/tests/test_identifier.py +923 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_identifier_stability.py +456 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_instance.py +3 -15
- experimaestro-2.0.0b13/src/experimaestro/tests/test_multitoken.py +440 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_mypy.py +433 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_objects.py +393 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_outputs.py +2 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_param.py +8 -12
- experimaestro-2.0.0b13/src/experimaestro/tests/test_partial.py +160 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_partial_paths.py +298 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_pre_experiment.py +219 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_progress.py +0 -48
- experimaestro-2.0.0b13/src/experimaestro/tests/test_remote_state.py +1108 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_resumable_task.py +480 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_serializers.py +194 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_state_db.py +791 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_state_provider_methods.py +1039 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_tags.py +256 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_tasks.py +116 -144
- experimaestro-2.0.0b13/src/experimaestro/tests/test_token_locking.py +237 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_tokens.py +21 -18
- experimaestro-2.0.0b13/src/experimaestro/tests/test_transient.py +225 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_types.py +187 -0
- experimaestro-2.0.0b13/src/experimaestro/tests/test_workspace_triggers.py +158 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/token_reschedule.py +4 -4
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/utils.py +3 -4
- experimaestro-2.0.0b13/src/experimaestro/tokens.py +425 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tools/diff.py +9 -1
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tools/documentation.py +4 -5
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tools/jobs.py +1 -2
- experimaestro-2.0.0b13/src/experimaestro/tui/__init__.py +8 -0
- experimaestro-2.0.0b13/src/experimaestro/tui/app.py +2582 -0
- experimaestro-2.0.0b13/src/experimaestro/tui/app.tcss +355 -0
- experimaestro-2.0.0b13/src/experimaestro/tui/log_viewer.py +228 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/utils/__init__.py +24 -1
- experimaestro-2.0.0b13/src/experimaestro/utils/environment.py +225 -0
- experimaestro-2.0.0b13/src/experimaestro/utils/fswatcher.py +124 -0
- experimaestro-2.0.0b13/src/experimaestro/utils/git.py +129 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/utils/jobs.py +1 -2
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/utils/jupyter.py +1 -2
- experimaestro-2.0.0b13/src/experimaestro/utils/logging.py +72 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/utils/resources.py +1 -1
- experimaestro-2.0.0b13/src/experimaestro/version.py +34 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/__init__.py +9 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/app.py +118 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/routes/__init__.py +5 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/routes/auth.py +53 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/routes/notifications.py +51 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/routes/proxy.py +117 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/server.py +210 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/state_bridge.py +155 -0
- experimaestro-2.0.0b13/src/experimaestro/webui/websocket.py +413 -0
- experimaestro-2.0.0a4/pyproject.toml +0 -155
- experimaestro-2.0.0a4/src/experimaestro/annotations.py +0 -346
- experimaestro-2.0.0a4/src/experimaestro/cli/jobs.py +0 -268
- experimaestro-2.0.0a4/src/experimaestro/compat.py +0 -6
- experimaestro-2.0.0a4/src/experimaestro/core/arguments.py +0 -240
- experimaestro-2.0.0a4/src/experimaestro/core/objects.pyi +0 -225
- experimaestro-2.0.0a4/src/experimaestro/core/serialization.py +0 -182
- experimaestro-2.0.0a4/src/experimaestro/exceptions.py +0 -2
- experimaestro-2.0.0a4/src/experimaestro/experiments/__init__.py +0 -2
- experimaestro-2.0.0a4/src/experimaestro/generators.py +0 -47
- experimaestro-2.0.0a4/src/experimaestro/launchers/direct.py +0 -10
- experimaestro-2.0.0a4/src/experimaestro/launchers/slurm/__init__.py +0 -2
- experimaestro-2.0.0a4/src/experimaestro/locking.py +0 -68
- experimaestro-2.0.0a4/src/experimaestro/mypy.py +0 -15
- experimaestro-2.0.0a4/src/experimaestro/scheduler/base.py +0 -310
- experimaestro-2.0.0a4/src/experimaestro/scheduler/dependencies.py +0 -78
- experimaestro-2.0.0a4/src/experimaestro/scheduler/dynamic_outputs.py +0 -184
- experimaestro-2.0.0a4/src/experimaestro/scheduler/experiment.py +0 -387
- experimaestro-2.0.0a4/src/experimaestro/scheduler/jobs.py +0 -475
- experimaestro-2.0.0a4/src/experimaestro/scheduler/services.py +0 -103
- experimaestro-2.0.0a4/src/experimaestro/server/__init__.py +0 -377
- experimaestro-2.0.0a4/src/experimaestro/server/data/0c35d18bf06992036b69.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/1815e00441357e01619e.ttf +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/219aa9140e099e6c72ed.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/2463b90d9a316e4e5294.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/2582b0e4bcf85eceead0.ttf +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/3a4004a46a653d4b2166.woff +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/3baa5b8f3469222b822d.woff +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/4d73cb90e394b34b7670.woff +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/4ef4218c522f1eb6b5b1.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/5d681e2edae8c60630db.woff +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/6f420cf17cc0d7676fad.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/89999bdf5d835c012025.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/914997e1bdfc990d0897.ttf +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/c210719e60948b211a12.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/c380809fd3677d7d6903.woff2 +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/f882956fd323fd322f31.woff +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/favicon.ico +0 -0
- experimaestro-2.0.0a4/src/experimaestro/server/data/index.css +0 -22963
- experimaestro-2.0.0a4/src/experimaestro/server/data/index.css.map +0 -1
- experimaestro-2.0.0a4/src/experimaestro/server/data/index.html +0 -27
- experimaestro-2.0.0a4/src/experimaestro/server/data/index.js +0 -101770
- experimaestro-2.0.0a4/src/experimaestro/server/data/index.js.map +0 -1
- experimaestro-2.0.0a4/src/experimaestro/server/data/login.html +0 -22
- experimaestro-2.0.0a4/src/experimaestro/server/data/manifest.json +0 -15
- experimaestro-2.0.0a4/src/experimaestro/tests/conftest.py +0 -32
- experimaestro-2.0.0a4/src/experimaestro/tests/connectors/bin/executable.py +0 -1
- experimaestro-2.0.0a4/src/experimaestro/tests/launchers/test_slurm.py +0 -86
- experimaestro-2.0.0a4/src/experimaestro/tests/test_identifier.py +0 -581
- experimaestro-2.0.0a4/src/experimaestro/tests/test_objects.py +0 -86
- experimaestro-2.0.0a4/src/experimaestro/tests/test_serializers.py +0 -113
- experimaestro-2.0.0a4/src/experimaestro/tests/test_tags.py +0 -120
- experimaestro-2.0.0a4/src/experimaestro/tests/test_types.py +0 -65
- experimaestro-2.0.0a4/src/experimaestro/tokens.py +0 -473
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/LICENSE +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/__main__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/checkers.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/cli/progress.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/connectors/ssh.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/callbacks.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/context.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/objects/config_utils.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/core/utils.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/ipc.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launcherfinder/base.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/launchers/oar.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/mkdocs/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/mkdocs/annotations.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/mkdocs/base.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/mkdocs/style.css +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/py.typed +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/scheduler/signal_handler.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/scheduler/state.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/sphinx/static/experimaestro.css +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/connectors/test_local.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/connectors/utils.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/core/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/definitions_types.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/bin/srun +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/common.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/config_slurm/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/config_slurm/launchers.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/launchers/test_local.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/scripts/waitforfile.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/tasks/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/tasks/foreign.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_checkers.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_experiment.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_file_progress.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_findlauncher.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_generators.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_snippets.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_ssh.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tests/test_validation.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/tools/__init__.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/typingutils.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/utils/asyncio.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/utils/multiprocessing.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/utils/settings.py +0 -0
- {experimaestro-2.0.0a4 → experimaestro-2.0.0b13}/src/experimaestro/xpmutils.py +0 -0
|
@@ -1,61 +1,92 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: experimaestro
|
|
3
|
-
Version: 2.0.
|
|
4
|
-
Summary:
|
|
5
|
-
|
|
3
|
+
Version: 2.0.0b13
|
|
4
|
+
Summary: Experimaestro is a computer science experiment manager
|
|
5
|
+
Project-URL: Homepage, https://github.com/experimaestro/experimaestro-python
|
|
6
|
+
Project-URL: Documentation, https://experimaestro-python.readthedocs.io/
|
|
7
|
+
Project-URL: Repository, https://github.com/experimaestro/experimaestro-python
|
|
8
|
+
Project-URL: Bug Tracker, https://github.com/experimaestro/experimaestro-python/issues
|
|
9
|
+
Author-email: Benjamin Piwowarski <benjamin@piwowarski.fr>
|
|
10
|
+
License: GPL-3.0-or-later
|
|
6
11
|
License-File: LICENSE
|
|
7
12
|
Keywords: experiment manager
|
|
8
|
-
Author: Benjamin Piwowarski
|
|
9
|
-
Author-email: benjamin@piwowarski.fr
|
|
10
|
-
Requires-Python: >=3.10
|
|
11
13
|
Classifier: Development Status :: 4 - Beta
|
|
12
14
|
Classifier: Intended Audience :: Science/Research
|
|
13
15
|
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
14
16
|
Classifier: Operating System :: OS Independent
|
|
15
17
|
Classifier: Programming Language :: Python
|
|
16
18
|
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
22
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
18
|
-
Requires-
|
|
19
|
-
Requires-Dist:
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
23
|
-
Requires-Dist:
|
|
24
|
-
Requires-Dist:
|
|
25
|
-
Requires-Dist:
|
|
26
|
-
Requires-Dist:
|
|
27
|
-
Requires-Dist:
|
|
28
|
-
Requires-Dist:
|
|
29
|
-
Requires-Dist:
|
|
30
|
-
Requires-Dist:
|
|
31
|
-
Requires-Dist:
|
|
32
|
-
Requires-Dist:
|
|
33
|
-
Requires-Dist:
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist: pytools
|
|
36
|
-
Requires-Dist: pyyaml
|
|
37
|
-
Requires-Dist: requests
|
|
38
|
-
Requires-Dist: rpyc
|
|
39
|
-
Requires-Dist: sortedcontainers
|
|
40
|
-
Requires-Dist: termcolor
|
|
41
|
-
Requires-Dist:
|
|
42
|
-
Requires-Dist:
|
|
43
|
-
Requires-Dist:
|
|
23
|
+
Requires-Python: >=3.10
|
|
24
|
+
Requires-Dist: arpeggio<3,>=2
|
|
25
|
+
Requires-Dist: attrs<24,>=23.1.0
|
|
26
|
+
Requires-Dist: click>=8
|
|
27
|
+
Requires-Dist: decorator<6,>=5
|
|
28
|
+
Requires-Dist: docstring-parser<1,>=0.15
|
|
29
|
+
Requires-Dist: fastapi<1,>=0.109
|
|
30
|
+
Requires-Dist: fasteners<1,>=0.19
|
|
31
|
+
Requires-Dist: httpx<1,>=0.26
|
|
32
|
+
Requires-Dist: huggingface-hub>0.17
|
|
33
|
+
Requires-Dist: humanfriendly>=10
|
|
34
|
+
Requires-Dist: marshmallow<4,>=3.20
|
|
35
|
+
Requires-Dist: omegaconf<3,>=2.3
|
|
36
|
+
Requires-Dist: peewee<4,>=3.17
|
|
37
|
+
Requires-Dist: psutil<8,>=7
|
|
38
|
+
Requires-Dist: pyparsing<4,>=3.1
|
|
39
|
+
Requires-Dist: pyperclip<2,>=1.8
|
|
40
|
+
Requires-Dist: pytools<2024,>=2023.1.1
|
|
41
|
+
Requires-Dist: pyyaml<7,>=6.0.1
|
|
42
|
+
Requires-Dist: requests<3,>=2.31
|
|
43
|
+
Requires-Dist: rpyc<7,>=5
|
|
44
|
+
Requires-Dist: sortedcontainers<3,>=2.4
|
|
45
|
+
Requires-Dist: termcolor<3,>=2.3
|
|
46
|
+
Requires-Dist: textual>=6
|
|
47
|
+
Requires-Dist: tqdm<5,>=4.66.1
|
|
48
|
+
Requires-Dist: typing-extensions>=4.2; python_version < '3.12'
|
|
49
|
+
Requires-Dist: uvicorn[standard]<1,>=0.27
|
|
50
|
+
Requires-Dist: watchdog>=2
|
|
51
|
+
Provides-Extra: dev
|
|
52
|
+
Requires-Dist: docutils>=0.18; extra == 'dev'
|
|
53
|
+
Requires-Dist: mypy>=1.0; extra == 'dev'
|
|
54
|
+
Requires-Dist: pygments>=2.15; extra == 'dev'
|
|
55
|
+
Requires-Dist: pytest-timeout>=2.4.0; extra == 'dev'
|
|
56
|
+
Requires-Dist: pytest>=8.4.1; extra == 'dev'
|
|
57
|
+
Requires-Dist: textual-dev>=1.8.0; extra == 'dev'
|
|
58
|
+
Provides-Extra: docs
|
|
59
|
+
Requires-Dist: myst-parser>=2.0; extra == 'docs'
|
|
60
|
+
Requires-Dist: sphinx-codeautolink>=0.15; extra == 'docs'
|
|
61
|
+
Requires-Dist: sphinx-copybutton>=0.5; extra == 'docs'
|
|
62
|
+
Requires-Dist: sphinx-rtd-theme>=2.0; extra == 'docs'
|
|
63
|
+
Requires-Dist: sphinx>=6; extra == 'docs'
|
|
64
|
+
Provides-Extra: ssh
|
|
65
|
+
Requires-Dist: fabric>=3; extra == 'ssh'
|
|
66
|
+
Requires-Dist: paramiko>=3.3; extra == 'ssh'
|
|
44
67
|
Description-Content-Type: text/markdown
|
|
45
68
|
|
|
46
69
|
[](https://badge.fury.io/py/experimaestro)
|
|
47
70
|
[](https://experimaestro-python.readthedocs.io)
|
|
48
71
|
|
|
49
|
-
Experimaestro helps in designing and managing complex
|
|
72
|
+
Experimaestro helps in designing and managing **complex experimental plans**. 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:
|
|
50
73
|
|
|
51
74
|
- **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.
|
|
52
75
|
- **Resource Management**: It efficiently manages computational resources, which is critical when dealing with data-intensive tasks or when running multiple experiments in parallel.
|
|
53
|
-
- **
|
|
54
|
-
- **
|
|
55
|
-
|
|
76
|
+
- **Reproducibility**: By keeping a detailed record of experiments (the experimental plan in python), including parameters and environments, it aids in ensuring the reproducibility of scientific experiments, which is a fundamental requirement in research.
|
|
77
|
+
- **User Interface**: While primarily a back-end tool, Experimaestro also offers a user interface to help in managing and visualizing workflows (web and text-based).
|
|
78
|
+
|
|
79
|
+
The full documentation can be read by going to the following URL: [https://experimaestro-python.readthedocs.io](https://experimaestro-python.readthedocs.io). A tutorial (training a CNN on MNIST) is [available on github](https://github.com/experimaestro/experimaestro-demo).
|
|
80
|
+
|
|
81
|
+
# Screenshots
|
|
56
82
|
|
|
57
|
-
|
|
83
|
+
## Textual interface (new in v2)
|
|
58
84
|
|
|
85
|
+

|
|
86
|
+
|
|
87
|
+

|
|
88
|
+
|
|
89
|
+

|
|
59
90
|
|
|
60
91
|
# Install
|
|
61
92
|
|
|
@@ -150,4 +181,3 @@ if __name__ == "__main__":
|
|
|
150
181
|
```
|
|
151
182
|
|
|
152
183
|
which can be launched with `python test.py /tmp/helloworld-workdir`
|
|
153
|
-
|
|
@@ -1,16 +1,24 @@
|
|
|
1
1
|
[](https://badge.fury.io/py/experimaestro)
|
|
2
2
|
[](https://experimaestro-python.readthedocs.io)
|
|
3
3
|
|
|
4
|
-
Experimaestro helps in designing and managing complex
|
|
4
|
+
Experimaestro helps in designing and managing **complex experimental plans**. 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:
|
|
5
5
|
|
|
6
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
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
|
-
- **
|
|
9
|
-
- **
|
|
10
|
-
- **User Interface**: While primarily a back-end tool, Experimaestro also offers a user interface to help in managing and visualizing workflows.
|
|
8
|
+
- **Reproducibility**: By keeping a detailed record of experiments (the experimental plan in python), including parameters and environments, it aids in ensuring the reproducibility of scientific experiments, which is a fundamental requirement in research.
|
|
9
|
+
- **User Interface**: While primarily a back-end tool, Experimaestro also offers a user interface to help in managing and visualizing workflows (web and text-based).
|
|
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
|
+
The full documentation can be read by going to the following URL: [https://experimaestro-python.readthedocs.io](https://experimaestro-python.readthedocs.io). A tutorial (training a CNN on MNIST) is [available on github](https://github.com/experimaestro/experimaestro-demo).
|
|
13
12
|
|
|
13
|
+
# Screenshots
|
|
14
|
+
|
|
15
|
+
## Textual interface (new in v2)
|
|
16
|
+
|
|
17
|
+

|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+

|
|
14
22
|
|
|
15
23
|
# Install
|
|
16
24
|
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling", "hatch-vcs"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "experimaestro"
|
|
7
|
+
authors = [
|
|
8
|
+
{name = "Benjamin Piwowarski", email = "benjamin@piwowarski.fr"}
|
|
9
|
+
]
|
|
10
|
+
description = "Experimaestro is a computer science experiment manager"
|
|
11
|
+
readme = "README.md"
|
|
12
|
+
license = {text = "GPL-3.0-or-later"}
|
|
13
|
+
keywords = ["experiment manager"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 4 - Beta",
|
|
16
|
+
"Intended Audience :: Science/Research",
|
|
17
|
+
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
18
|
+
"Operating System :: OS Independent",
|
|
19
|
+
"Programming Language :: Python",
|
|
20
|
+
"Programming Language :: Python :: 3",
|
|
21
|
+
"Programming Language :: Python :: 3.10",
|
|
22
|
+
"Programming Language :: Python :: 3.11",
|
|
23
|
+
"Programming Language :: Python :: 3.12",
|
|
24
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
25
|
+
]
|
|
26
|
+
requires-python = ">=3.10"
|
|
27
|
+
dynamic = ["version"]
|
|
28
|
+
dependencies = [
|
|
29
|
+
"arpeggio >=2,<3",
|
|
30
|
+
"attrs >=23.1.0,<24",
|
|
31
|
+
"click >=8",
|
|
32
|
+
"decorator >=5,<6",
|
|
33
|
+
"docstring-parser >=0.15,<1",
|
|
34
|
+
"fastapi >=0.109,<1",
|
|
35
|
+
"fasteners >=0.19,<1",
|
|
36
|
+
"httpx >=0.26,<1",
|
|
37
|
+
"humanfriendly >=10",
|
|
38
|
+
"huggingface-hub >0.17",
|
|
39
|
+
"marshmallow >=3.20,<4",
|
|
40
|
+
"omegaconf >=2.3,<3",
|
|
41
|
+
"peewee >=3.17,<4",
|
|
42
|
+
"psutil >=7,<8",
|
|
43
|
+
"pyparsing >=3.1,<4",
|
|
44
|
+
"pyperclip >=1.8,<2",
|
|
45
|
+
"pytools >=2023.1.1,<2024",
|
|
46
|
+
"pyyaml >=6.0.1,<7",
|
|
47
|
+
"requests >=2.31,<3",
|
|
48
|
+
"rpyc >=5,<7",
|
|
49
|
+
"sortedcontainers >=2.4,<3",
|
|
50
|
+
"termcolor >=2.3,<3",
|
|
51
|
+
"textual >=6",
|
|
52
|
+
"tqdm >=4.66.1,<5",
|
|
53
|
+
"typing-extensions >=4.2; python_version < \"3.12\"",
|
|
54
|
+
"uvicorn[standard] >=0.27,<1",
|
|
55
|
+
"watchdog >=2",
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
[project.optional-dependencies]
|
|
59
|
+
dev = [
|
|
60
|
+
"mypy>=1.0",
|
|
61
|
+
"pytest>=8.4.1",
|
|
62
|
+
"pytest-timeout>=2.4.0",
|
|
63
|
+
"textual-dev>=1.8.0",
|
|
64
|
+
"docutils>=0.18",
|
|
65
|
+
"Pygments>=2.15",
|
|
66
|
+
]
|
|
67
|
+
docs = [
|
|
68
|
+
"sphinx>=6",
|
|
69
|
+
"myst-parser>=2.0",
|
|
70
|
+
"sphinx-rtd-theme>=2.0",
|
|
71
|
+
"sphinx-codeautolink>=0.15",
|
|
72
|
+
"sphinx-copybutton>=0.5",
|
|
73
|
+
]
|
|
74
|
+
ssh = [
|
|
75
|
+
"paramiko>=3.3",
|
|
76
|
+
"fabric>=3",
|
|
77
|
+
]
|
|
78
|
+
|
|
79
|
+
[project.urls]
|
|
80
|
+
Homepage = "https://github.com/experimaestro/experimaestro-python"
|
|
81
|
+
Documentation = "https://experimaestro-python.readthedocs.io/"
|
|
82
|
+
Repository = "https://github.com/experimaestro/experimaestro-python"
|
|
83
|
+
"Bug Tracker" = "https://github.com/experimaestro/experimaestro-python/issues"
|
|
84
|
+
|
|
85
|
+
[project.scripts]
|
|
86
|
+
experimaestro = "experimaestro.__main__:main"
|
|
87
|
+
|
|
88
|
+
[project.entry-points."experimaestro.process"]
|
|
89
|
+
local = "experimaestro.connectors.local:LocalProcess"
|
|
90
|
+
slurm = "experimaestro.launchers.slurm:BatchSlurmProcess"
|
|
91
|
+
|
|
92
|
+
[project.entry-points."experimaestro.connectors"]
|
|
93
|
+
local = "experimaestro.connectors.local:LocalConnector"
|
|
94
|
+
ssh = "experimaestro.connectors.ssh:SshConnector"
|
|
95
|
+
|
|
96
|
+
[project.entry-points."experimaestro.tokens"]
|
|
97
|
+
unix = "experimaestro.tokens:CounterToken"
|
|
98
|
+
|
|
99
|
+
[project.entry-points.mypy]
|
|
100
|
+
experimaestro = "experimaestro.mypy:plugin"
|
|
101
|
+
|
|
102
|
+
[tool.hatch.version]
|
|
103
|
+
source = "vcs"
|
|
104
|
+
|
|
105
|
+
[tool.hatch.version.raw-options]
|
|
106
|
+
local_scheme = "no-local-version"
|
|
107
|
+
|
|
108
|
+
[tool.hatch.build.hooks.vcs]
|
|
109
|
+
version-file = "src/experimaestro/version.py"
|
|
110
|
+
|
|
111
|
+
[tool.hatch.build.targets.sdist]
|
|
112
|
+
include = [
|
|
113
|
+
"/src",
|
|
114
|
+
"/README.md",
|
|
115
|
+
"/LICENSE",
|
|
116
|
+
"/pyproject.toml",
|
|
117
|
+
]
|
|
118
|
+
|
|
119
|
+
[tool.hatch.build.targets.wheel]
|
|
120
|
+
packages = ["src/experimaestro"]
|
|
121
|
+
|
|
122
|
+
[tool.hatch.build.targets.wheel.force-include]
|
|
123
|
+
"src/experimaestro/webui/data" = "experimaestro/webui/data"
|
|
124
|
+
"src/experimaestro/sphinx/static/experimaestro.css" = "experimaestro/sphinx/static/experimaestro.css"
|
|
125
|
+
"src/experimaestro/tui/app.tcss" = "experimaestro/tui/app.tcss"
|
|
126
|
+
|
|
127
|
+
[tool.pydocstyle]
|
|
128
|
+
match-dir = '(?!tests)(?!resources)(?!docs)[^\.].*'
|
|
129
|
+
match = '(?!test)(?!setup)[^\._].*\.py'
|
|
130
|
+
inherit = false
|
|
131
|
+
ignore = "D200,D203,D213,D406,D407"
|
|
132
|
+
|
|
133
|
+
[tool.mypy]
|
|
134
|
+
python_version = "3.10"
|
|
135
|
+
warn_unused_ignores = true
|
|
136
|
+
|
|
137
|
+
[tool.pytest.ini_options]
|
|
138
|
+
junit_family = "xunit2"
|
|
139
|
+
testpaths = ["src/experimaestro"]
|
|
140
|
+
norecursedirs = ["node_modules"]
|
|
141
|
+
log_format = "[%(levelname)s] %(asctime)s %(name)s [%(process)d/%(threadName)s]: %(message)s"
|
|
142
|
+
log_date_format = "%H:%M:%S"
|
|
143
|
+
|
|
144
|
+
[dependency-groups]
|
|
145
|
+
dev = [
|
|
146
|
+
"ruff>=0.8",
|
|
147
|
+
"mkdocs>=1.6.1",
|
|
148
|
+
]
|
|
149
|
+
|
|
150
|
+
[tool.ruff]
|
|
151
|
+
line-length = 88
|
|
152
|
+
target-version = "py310"
|
|
153
|
+
|
|
154
|
+
[tool.ruff.lint]
|
|
155
|
+
select = [
|
|
156
|
+
"E", # pycodestyle errors
|
|
157
|
+
"F", # pyflakes
|
|
158
|
+
"W", # pycodestyle warnings
|
|
159
|
+
"C90", # mccabe complexity
|
|
160
|
+
"T20", # flake8-print
|
|
161
|
+
]
|
|
162
|
+
ignore = [
|
|
163
|
+
"E501", # line too long (handled by formatter)
|
|
164
|
+
]
|
|
165
|
+
|
|
166
|
+
[tool.ruff.lint.mccabe]
|
|
167
|
+
max-complexity = 25
|
|
@@ -4,15 +4,7 @@ from pathlib import Path
|
|
|
4
4
|
|
|
5
5
|
# Annotations
|
|
6
6
|
from .annotations import (
|
|
7
|
-
config,
|
|
8
|
-
task,
|
|
9
|
-
param,
|
|
10
|
-
ConstantParam,
|
|
11
|
-
constant,
|
|
12
|
-
option,
|
|
13
|
-
pathoption,
|
|
14
7
|
cache,
|
|
15
|
-
Identifier,
|
|
16
8
|
Array,
|
|
17
9
|
TagDict,
|
|
18
10
|
tag,
|
|
@@ -21,12 +13,11 @@ from .annotations import (
|
|
|
21
13
|
STDOUT,
|
|
22
14
|
STDERR,
|
|
23
15
|
deprecate,
|
|
24
|
-
# deprecated
|
|
25
|
-
argument,
|
|
26
16
|
initializer,
|
|
27
17
|
# Method
|
|
28
18
|
config_only,
|
|
29
19
|
)
|
|
20
|
+
from .core.types import Identifier
|
|
30
21
|
from .core.serialization import (
|
|
31
22
|
load,
|
|
32
23
|
save,
|
|
@@ -47,15 +38,22 @@ from .core.arguments import (
|
|
|
47
38
|
field,
|
|
48
39
|
# Annotations helpers
|
|
49
40
|
help,
|
|
50
|
-
default,
|
|
51
41
|
)
|
|
52
42
|
from .generators import pathgenerator, PathGenerator
|
|
43
|
+
from .core.partial import (
|
|
44
|
+
partial,
|
|
45
|
+
param_group,
|
|
46
|
+
ParameterGroup,
|
|
47
|
+
Partial,
|
|
48
|
+
)
|
|
53
49
|
from .core.objects import (
|
|
54
50
|
Config,
|
|
51
|
+
InstanceConfig,
|
|
55
52
|
copyconfig,
|
|
56
53
|
setmeta,
|
|
57
54
|
DependentMarker,
|
|
58
55
|
Task,
|
|
56
|
+
ResumableTask,
|
|
59
57
|
LightweightTask,
|
|
60
58
|
ObjectStore,
|
|
61
59
|
)
|
|
@@ -63,8 +61,10 @@ from .core.context import SerializationContext
|
|
|
63
61
|
from .core.serializers import SerializationLWTask, PathSerializationLWTask
|
|
64
62
|
from .core.types import Any, SubmitHook
|
|
65
63
|
from .launchers import Launcher
|
|
66
|
-
from .scheduler import Scheduler, experiment, FailedExperiment
|
|
64
|
+
from .scheduler import Scheduler, experiment, FailedExperiment, DirtyGitError
|
|
65
|
+
from .exceptions import GracefulTimeout
|
|
67
66
|
from .scheduler.workspace import Workspace, RunMode
|
|
67
|
+
from .scheduler.transient import TransientMode
|
|
68
68
|
from .scheduler.state import get_experiment
|
|
69
69
|
from .notifications import progress, tqdm
|
|
70
70
|
from .checkers import Choices
|
|
@@ -72,6 +72,7 @@ from .xpmutils import DirectoryContext
|
|
|
72
72
|
from .mkdocs.annotations import documentation
|
|
73
73
|
from .scheduler.base import Job
|
|
74
74
|
from .launcherfinder.registry import LauncherRegistry
|
|
75
|
+
from .experiments.configuration import DirtyGitAction
|
|
75
76
|
|
|
76
77
|
|
|
77
78
|
def set_launcher(launcher: Launcher):
|