slurmforge 0.1.0__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.
- slurmforge-0.1.0/LICENSE +21 -0
- slurmforge-0.1.0/PKG-INFO +716 -0
- slurmforge-0.1.0/README.md +663 -0
- slurmforge-0.1.0/pyproject.toml +74 -0
- slurmforge-0.1.0/setup.cfg +4 -0
- slurmforge-0.1.0/src/slurmforge/__init__.py +7 -0
- slurmforge-0.1.0/src/slurmforge/cli/__init__.py +1 -0
- slurmforge-0.1.0/src/slurmforge/cli/common.py +95 -0
- slurmforge-0.1.0/src/slurmforge/cli/examples.py +50 -0
- slurmforge-0.1.0/src/slurmforge/cli/generate.py +102 -0
- slurmforge-0.1.0/src/slurmforge/cli/init.py +148 -0
- slurmforge-0.1.0/src/slurmforge/cli/init_wizard.py +80 -0
- slurmforge-0.1.0/src/slurmforge/cli/replay.py +102 -0
- slurmforge-0.1.0/src/slurmforge/cli/rerun.py +76 -0
- slurmforge-0.1.0/src/slurmforge/cli/status.py +85 -0
- slurmforge-0.1.0/src/slurmforge/cli/validate.py +108 -0
- slurmforge-0.1.0/src/slurmforge/errors.py +29 -0
- slurmforge-0.1.0/src/slurmforge/example_configs.py +70 -0
- slurmforge-0.1.0/src/slurmforge/examples/__init__.py +1 -0
- slurmforge-0.1.0/src/slurmforge/examples/adapter_hpc.yaml +67 -0
- slurmforge-0.1.0/src/slurmforge/examples/adapter_minimal.yaml +14 -0
- slurmforge-0.1.0/src/slurmforge/examples/adapter_starter.yaml +60 -0
- slurmforge-0.1.0/src/slurmforge/examples/command_hpc.yaml +63 -0
- slurmforge-0.1.0/src/slurmforge/examples/command_minimal.yaml +9 -0
- slurmforge-0.1.0/src/slurmforge/examples/command_starter.yaml +56 -0
- slurmforge-0.1.0/src/slurmforge/examples/model_registry.yaml +7 -0
- slurmforge-0.1.0/src/slurmforge/examples/registry_hpc.yaml +86 -0
- slurmforge-0.1.0/src/slurmforge/examples/registry_starter.yaml +64 -0
- slurmforge-0.1.0/src/slurmforge/examples/script_hpc.yaml +104 -0
- slurmforge-0.1.0/src/slurmforge/examples/script_starter.yaml +62 -0
- slurmforge-0.1.0/src/slurmforge/execution/__init__.py +1 -0
- slurmforge-0.1.0/src/slurmforge/execution/artifacts/__init__.py +23 -0
- slurmforge-0.1.0/src/slurmforge/execution/artifacts/api.py +18 -0
- slurmforge-0.1.0/src/slurmforge/execution/artifacts/cli.py +52 -0
- slurmforge-0.1.0/src/slurmforge/execution/artifacts/copier.py +40 -0
- slurmforge-0.1.0/src/slurmforge/execution/artifacts/discovery.py +61 -0
- slurmforge-0.1.0/src/slurmforge/execution/artifacts/manifest.py +24 -0
- slurmforge-0.1.0/src/slurmforge/execution/artifacts/sync.py +125 -0
- slurmforge-0.1.0/src/slurmforge/execution/run_plan/__init__.py +18 -0
- slurmforge-0.1.0/src/slurmforge/execution/run_plan/api.py +42 -0
- slurmforge-0.1.0/src/slurmforge/execution/run_plan/cli.py +32 -0
- slurmforge-0.1.0/src/slurmforge/execution/run_plan/helper_bins.py +25 -0
- slurmforge-0.1.0/src/slurmforge/execution/run_plan/loader.py +47 -0
- slurmforge-0.1.0/src/slurmforge/execution/run_plan/post_run.py +20 -0
- slurmforge-0.1.0/src/slurmforge/execution/run_plan/shell_runner.py +44 -0
- slurmforge-0.1.0/src/slurmforge/execution/write_attempt_result.py +59 -0
- slurmforge-0.1.0/src/slurmforge/execution/write_train_outputs.py +59 -0
- slurmforge-0.1.0/src/slurmforge/identity.py +19 -0
- slurmforge-0.1.0/src/slurmforge/launcher.py +36 -0
- slurmforge-0.1.0/src/slurmforge/model_support/__init__.py +23 -0
- slurmforge-0.1.0/src/slurmforge/model_support/argparse_introspect.py +129 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/__init__.py +27 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/api.py +24 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/canonicalize.py +24 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/codecs.py +24 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/merge.py +50 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/models.py +29 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/registry_loader.py +62 -0
- slurmforge-0.1.0/src/slurmforge/model_support/catalog/resolver.py +176 -0
- slurmforge-0.1.0/src/slurmforge/model_support/gpu_estimator.py +324 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/__init__.py +29 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/checkpoints/__init__.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/checkpoints/api.py +21 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/checkpoints/codec.py +22 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/checkpoints/discovery.py +37 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/checkpoints/models.py +26 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/checkpoints/selection.py +46 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/checkpoints/store.py +29 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/__init__.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/api.py +96 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/base.py +83 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/config_pass.py +77 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/diagnostics.py +43 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/engine.py +104 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/__init__.py +6 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/authoring/__init__.py +5 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/authoring/api.py +56 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/authoring/collect.py +35 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/authoring/context.py +32 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/authoring/identity.py +53 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/authoring/spec_builder.py +34 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/replay/__init__.py +5 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/replay/api.py +58 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/replay/collect.py +45 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/replay/context.py +90 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/replay/identity.py +47 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/flows/replay/spec_builder.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/planning_pass.py +71 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reporting.py +46 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reports/__init__.py +39 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reports/actions.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reports/builders.py +87 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reports/errors.py +19 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reports/models.py +74 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reports/summary.py +77 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/reports/validator.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/requests.py +86 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/compiler/state.py +59 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/__init__.py +13 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/api.py +49 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/__init__.py +45 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/authoring/__init__.py +16 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/authoring/builders.py +70 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/authoring/expansion.py +66 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/authoring/models.py +16 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/authoring/shared.py +58 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/authoring/validation.py +51 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/batch_contract.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/catalog.py +30 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/eval.py +114 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/experiment/__init__.py +9 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/experiment/api.py +26 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/experiment/assembler.py +64 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/experiment/hints.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/experiment/inputs.py +61 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/experiment/sections.py +103 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/output.py +28 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/replay.py +31 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/run/__init__.py +17 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/run/adapter.py +56 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/run/builder.py +67 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/run/external_runtime.py +56 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/run/model.py +47 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/run/shared.py +29 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/assembly/spec_builder.py +81 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/codecs/__init__.py +25 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/codecs/eval.py +82 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/codecs/experiment.py +54 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/codecs/model.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/codecs/output.py +16 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/codecs/run.py +48 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/codecs/runtime.py +10 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/constants.py +7 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/mode_detection.py +36 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/models/__init__.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/models/eval.py +32 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/models/experiment.py +91 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/models/model.py +13 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/models/output.py +10 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/models/run.py +35 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/models/runtime.py +16 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/__init__.py +42 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/artifacts.py +27 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/cluster.py +33 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/env.py +34 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/launcher.py +50 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/notify.py +37 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/resources.py +58 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/shared.py +19 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/slurm_deps.py +72 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/normalize/validation.py +40 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/replay_payload.py +58 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/__init__.py +53 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/api.py +57 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/__init__.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/artifacts.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/cluster.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/env.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/launcher.py +24 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/notify.py +13 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/resources.py +17 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/codecs/validation.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/defaults.py +30 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/__init__.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/artifacts.py +43 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/cluster.py +21 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/env.py +19 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/launcher.py +24 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/notify.py +10 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/resources.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/runtime/models/validation.py +11 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/scalars.py +25 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/utils.py +67 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/__init__.py +28 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/_helpers.py +59 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/advisory.py +94 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/api.py +34 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/authoring.py +41 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/completeness.py +170 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/correctness.py +114 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/definitions.py +234 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/messages.py +188 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/replay.py +32 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/sections.py +132 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/sweep_rules.py +72 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/config/validation/traversal.py +34 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/launch/__init__.py +15 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/launch/cli_args.py +47 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/launch/command_builder.py +43 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/launch/strategies.py +69 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/launch/types.py +16 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/__init__.py +29 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/api.py +87 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/array_scripts.py +140 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/__init__.py +1 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/artifacts.py +67 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/common.py +25 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/env_setup.py +59 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/eval.py +72 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/finalize.py +22 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/preamble.py +47 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/preflight.py +68 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/train.py +63 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/blocks/train_outputs.py +48 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/commit.py +16 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/context.py +45 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/grouping.py +110 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/layout.py +49 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/manifest_writer.py +57 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/record_writer.py +136 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/reporting.py +55 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/run_assets.py +37 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/shell_builder.py +33 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/slurm_deps.py +17 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/materialization/submit_writer.py +72 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/__init__.py +35 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/api.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/batch.py +62 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/batch_validator.py +42 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/codecs/__init__.py +32 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/codecs/diagnostics.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/codecs/resources.py +74 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/codecs/stages.py +99 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/contracts.py +58 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/enums.py +65 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/eval/__init__.py +5 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/eval/api.py +53 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/eval/command.py +59 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/eval/common.py +28 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/eval/launcher_merge.py +59 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/eval/script.py +79 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/external_command.py +34 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/fingerprint.py +32 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/identity.py +62 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/models/__init__.py +15 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/models/diagnostics.py +61 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/models/resources.py +98 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/models/stages.py +94 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/replay_builder.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/run/__init__.py +9 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/run/api.py +11 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/run/assembly.py +12 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/run/identity.py +38 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/run/plan_factory.py +78 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/run/planned_run_factory.py +52 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/run/stages.py +47 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/snapshot_builder.py +33 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/__init__.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/allocation.py +51 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/api.py +55 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/context.py +55 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/model_resolution.py +94 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/strategies/__init__.py +3 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/strategies/adapter.py +61 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/strategies/base.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/strategies/command.py +79 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/strategies/model_cli.py +26 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/strategies/scripted.py +87 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/train/topology.py +134 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/__init__.py +11 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/api.py +25 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/common.py +28 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/errors.py +15 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/formatter.py +9 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/passes/__init__.py +3 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/passes/cli_args.py +53 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/passes/resources.py +151 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/passes/summary.py +21 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/passes/topology.py +115 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validation/policies.py +50 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/planning/validator.py +9 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/__init__.py +3 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/api.py +57 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/batch_io.py +42 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/batch_paths.py +83 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/codecs/__init__.py +41 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/codecs/array_assignment.py +31 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/codecs/metadata.py +27 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/codecs/run_plan.py +107 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/codecs/run_snapshot.py +42 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/io_utils.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/models/__init__.py +23 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/models/array_assignment.py +19 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/models/dispatch.py +30 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/models/metadata.py +11 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/models/run_plan.py +113 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/models/run_snapshot.py +22 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/replay_spec/__init__.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/replay_spec/builders.py +31 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/replay_spec/codecs.py +47 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/replay_spec/model.py +17 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/records/snapshot_io.py +19 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/__init__.py +28 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/api.py +18 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/authoring/__init__.py +10 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/authoring/collector.py +129 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/authoring/loader.py +36 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/authoring/models.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/failures.py +49 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/inference.py +31 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/models.py +115 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/__init__.py +21 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/checkpoint.py +27 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/collector.py +63 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/loaders.py +130 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/models.py +30 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/overrides.py +21 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/relocation.py +91 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/resume_patch.py +34 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/retry_refs.py +39 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/retry_selection.py +82 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/selectors.py +57 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/variants/__init__.py +3 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/variants/batch.py +76 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/variants/retry.py +100 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/variants/run.py +57 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/sources/replay/variants/snapshot.py +43 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/__init__.py +42 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/api.py +12 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/builders.py +46 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/classifier/__init__.py +12 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/classifier/discovery.py +61 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/classifier/patterns.py +28 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/classifier/reader.py +31 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/classifier/rules.py +70 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/codecs/__init__.py +15 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/codecs/api.py +11 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/codecs/attempt_result.py +77 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/codecs/execution_status.py +88 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/codecs/path_fields.py +59 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/lifecycle.py +144 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/models.py +57 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/paths.py +31 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/reconcile.py +193 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/slurm.py +107 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/status/store.py +62 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/__init__.py +21 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/api.py +17 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/cache.py +63 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/codec.py +44 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/contract.py +97 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/discovery.py +71 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/env_writer.py +48 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/models.py +20 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/paths.py +11 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/train_outputs/selection.py +64 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/utils/__init__.py +6 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/utils/merge.py +14 -0
- slurmforge-0.1.0/src/slurmforge/pipeline/utils/schema.py +12 -0
- slurmforge-0.1.0/src/slurmforge/resource_io.py +26 -0
- slurmforge-0.1.0/src/slurmforge/starter_catalog.py +203 -0
- slurmforge-0.1.0/src/slurmforge/starter_projects.py +69 -0
- slurmforge-0.1.0/src/slurmforge/starter_templates/README.md.tmpl +42 -0
- slurmforge-0.1.0/src/slurmforge/starter_templates/__init__.py +1 -0
- slurmforge-0.1.0/src/slurmforge/starter_templates/adapter_train.py.tmpl +49 -0
- slurmforge-0.1.0/src/slurmforge/starter_templates/command_train.py.tmpl +46 -0
- slurmforge-0.1.0/src/slurmforge/starter_templates/eval.py.tmpl +45 -0
- slurmforge-0.1.0/src/slurmforge/starter_templates/hpc_train.py.tmpl +73 -0
- slurmforge-0.1.0/src/slurmforge/starter_templates/model_cli_train.py.tmpl +63 -0
- slurmforge-0.1.0/src/slurmforge/sweep/__init__.py +33 -0
- slurmforge-0.1.0/src/slurmforge/sweep/api.py +23 -0
- slurmforge-0.1.0/src/slurmforge/sweep/expansion.py +87 -0
- slurmforge-0.1.0/src/slurmforge/sweep/materialize.py +37 -0
- slurmforge-0.1.0/src/slurmforge/sweep/models.py +25 -0
- slurmforge-0.1.0/src/slurmforge/sweep/overrides.py +24 -0
- slurmforge-0.1.0/src/slurmforge/sweep/validation.py +171 -0
- slurmforge-0.1.0/src/slurmforge/templates/sbatch_array_group.sh.j2 +42 -0
- slurmforge-0.1.0/src/slurmforge/templates/sbatch_notify.sh.j2 +8 -0
- slurmforge-0.1.0/src/slurmforge/templating.py +16 -0
- slurmforge-0.1.0/src/slurmforge/text_safety.py +22 -0
- slurmforge-0.1.0/src/slurmforge.egg-info/PKG-INFO +716 -0
- slurmforge-0.1.0/src/slurmforge.egg-info/SOURCES.txt +398 -0
- slurmforge-0.1.0/src/slurmforge.egg-info/dependency_links.txt +1 -0
- slurmforge-0.1.0/src/slurmforge.egg-info/entry_points.txt +6 -0
- slurmforge-0.1.0/src/slurmforge.egg-info/requires.txt +7 -0
- slurmforge-0.1.0/src/slurmforge.egg-info/top_level.txt +1 -0
- slurmforge-0.1.0/tests/test_argparse_introspect.py +28 -0
- slurmforge-0.1.0/tests/test_artifact_sync.py +109 -0
- slurmforge-0.1.0/tests/test_checkpoints.py +66 -0
- slurmforge-0.1.0/tests/test_config.py +706 -0
- slurmforge-0.1.0/tests/test_dispatch.py +270 -0
- slurmforge-0.1.0/tests/test_examples_cli.py +185 -0
- slurmforge-0.1.0/tests/test_execution_status.py +383 -0
- slurmforge-0.1.0/tests/test_gpu_estimator.py +123 -0
- slurmforge-0.1.0/tests/test_installed_package.py +359 -0
- slurmforge-0.1.0/tests/test_launcher.py +500 -0
- slurmforge-0.1.0/tests/test_models.py +311 -0
- slurmforge-0.1.0/tests/test_planning.py +436 -0
- slurmforge-0.1.0/tests/test_replay.py +334 -0
- slurmforge-0.1.0/tests/test_repo_hygiene.py +15 -0
- slurmforge-0.1.0/tests/test_retry.py +702 -0
- slurmforge-0.1.0/tests/test_run_plan_executor.py +202 -0
- slurmforge-0.1.0/tests/test_run_record.py +122 -0
- slurmforge-0.1.0/tests/test_runtime.py +101 -0
- slurmforge-0.1.0/tests/test_slurm_dependencies.py +59 -0
- slurmforge-0.1.0/tests/test_sweep.py +160 -0
- slurmforge-0.1.0/tests/test_templating.py +100 -0
- slurmforge-0.1.0/tests/test_text_safety.py +23 -0
- slurmforge-0.1.0/tests/test_train_modes.py +91 -0
- slurmforge-0.1.0/tests/test_train_outputs.py +172 -0
slurmforge-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Xin Li
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|