openrunner-sdk 2.37.24__tar.gz → 2.37.26__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.
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/PKG-INFO +1 -1
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/__init__.py +1 -1
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/cli.py +28 -8
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/install_commands.py +9 -8
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/pyproject.toml +1 -1
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/.gitignore +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/=6.0 +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/=8.1 +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/README.md +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/CLAUDE.md +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/_safepath.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/_secret_rules.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/api_client.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/artifact.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/autoresearch.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/buffer.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/cache.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/config.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/cost.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/dataset.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/datasets.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/environment.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/evaluation.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/feedback.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/git_info.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/api_integration.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/cost_guard.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/gpu_types.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/price_compare.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/provider_base.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/providers/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/providers/lambda_cloud.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/providers/modal_provider.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/providers/ovhcloud.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/providers/runpod.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/providers/vastai.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/runner.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/workspace_sync.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/guardrails.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/handover.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/hooks/patent-lab-post-commit +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/accelerate.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/anthropic_tracer.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/catboost.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/diffusers.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/fastai.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/forced_alignment.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/gladia.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/gymnasium.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/huggingface.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/hydra.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/ignite.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/jax.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/keras.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/langchain.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/lightgbm.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/lightning.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/llamaindex.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/openai_finetune.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/openai_tracer.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/optuna.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/pytorch.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/sb3.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/sklearn.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/skypilot.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/tensorflow.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/trl.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/tts.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/ultralytics.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/voice_agent.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/whisper.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/xgboost.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/launch.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/machine.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/mcp_server.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/media.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/migrate.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/model.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/model_card.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/offline.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/patent_scan.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/pii.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/plot.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/projects.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/prompt.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/query_api.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/redact.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/reload.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/research.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/research_policy.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/run.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/scorers.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/sender.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/session.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/settings.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/summary.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/sweep.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/sync.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/system_metrics.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/tensorboard.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/tools/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/tools/patent_report.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/trace.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/transcript_formatter.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/wal.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/wandb_compat/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/wandb_compat/_shim.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/wer.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/scripts/gen_betterleaks_rules.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/conftest.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-aaa/config.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-aaa/metadata.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-aaa/metrics.jsonl +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-aaa/summary.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/model-checkpoint/manifest.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/model-checkpoint/weights.bin +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/sample-image/manifest.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/sample-image/preview.png +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/config.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/metadata.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/metrics.jsonl +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/fixtures/wandb-export-mini/run-bbb/summary.json +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/integration/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/integration/conftest.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/integration/test_artifact_round_trip.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_alert.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_aliases.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_api_client.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_artifact.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_buffer.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_cache.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_class_scorers.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_cli.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_config.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_evaluation.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_finish.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_git_info.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/__init__.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/conftest.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_cost_guard.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_gpu_types.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_lambda.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_modal.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_ovhcloud.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_price_compare.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_provider_base.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_runner.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_runpod.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_sdk_gpu_api.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_vastai.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_gpu/test_workspace_sync.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_init.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_install_commands.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_fastai.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_huggingface.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_keras.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_langchain.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_lightning.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_pytorch.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_sklearn.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_integration_xgboost.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_launch.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_log.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_log_code.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_mcp_decisions.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_mcp_monitor.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_mcp_predictions.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_media.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_migrate.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_offline.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_offline_sync.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_pii.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_plot.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_query_api.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_resume.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_sdk_features.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_sender.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_session_sync.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_summary.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_sweep.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_system_metrics.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_trace.py +0 -0
- {openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/test_wandb_compat.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openrunner-sdk
|
|
3
|
-
Version: 2.37.
|
|
3
|
+
Version: 2.37.26
|
|
4
4
|
Summary: OpenRunner SDK - W&B-compatible ML experiment tracking client
|
|
5
5
|
Project-URL: Homepage, https://github.com/jqueguiner/openrunner
|
|
6
6
|
Project-URL: Repository, https://github.com/jqueguiner/openrunner
|
|
@@ -181,7 +181,7 @@ launch.from_run = _launch_from_run # type: ignore[attr-defined]
|
|
|
181
181
|
# openrunner.trace.patch_openai() syntax
|
|
182
182
|
trace.patch_openai = _patch_openai # type: ignore[attr-defined]
|
|
183
183
|
|
|
184
|
-
__version__ = "2.37.
|
|
184
|
+
__version__ = "2.37.26"
|
|
185
185
|
|
|
186
186
|
logger = logging.getLogger("openrunner")
|
|
187
187
|
|
|
@@ -5128,7 +5128,8 @@ def runner_rm(runner_id, org) -> None:
|
|
|
5128
5128
|
@click.option("--exec", "exec_mode", type=click.Choice(["direct", "docker"]), default="direct", help="direct = run commands in-place (cloud pod, no docker); docker = run job images (box with a docker daemon)")
|
|
5129
5129
|
@click.option("--sessions/--no-sessions", default=True, help="Include tmux install (interactive sessions)")
|
|
5130
5130
|
@click.option("--poll", "poll_interval", default=2, type=int)
|
|
5131
|
-
|
|
5131
|
+
@click.option("--cloud-init", "as_cloud_init", is_flag=True, help="Emit a #cloud-config (runcmd) for boot-time self-enroll — paste into OVH Public Cloud userData, AWS user-data, or a GCP startup-script.")
|
|
5132
|
+
def runner_enroll(org, name, labels, gpu, gpu_count, exec_mode, sessions, poll_interval, as_cloud_init) -> None:
|
|
5132
5133
|
"""Mint a runner token + print a paste-anywhere bootstrap command.
|
|
5133
5134
|
|
|
5134
5135
|
Provider-AGNOSTIC: the worker/job/session mechanism works on ANY machine that
|
|
@@ -5140,6 +5141,9 @@ def runner_enroll(org, name, labels, gpu, gpu_count, exec_mode, sessions, poll_i
|
|
|
5140
5141
|
* Vast.ai -> the instance "On-start script" field.
|
|
5141
5142
|
* Lambda / a plain VM -> run it once on the box (after your normal boot/SSH).
|
|
5142
5143
|
* GCP -> startup-script metadata; AWS -> user-data; k8s -> container command.
|
|
5144
|
+
With --cloud-init, emit a #cloud-config instead (paste into OVH Public Cloud
|
|
5145
|
+
"userData" / post-installation script, AWS user-data, or a GCP startup-script)
|
|
5146
|
+
so the box self-enrolls at first boot.
|
|
5143
5147
|
Then send work with `openrunner jobs submit` / `openrunner session ...`.
|
|
5144
5148
|
"""
|
|
5145
5149
|
client = _plain_client()
|
|
@@ -5166,18 +5170,34 @@ def runner_enroll(org, name, labels, gpu, gpu_count, exec_mode, sessions, poll_i
|
|
|
5166
5170
|
"pip install -q -U openrunner-sdk && "
|
|
5167
5171
|
f"openrunner runner start --exec {exec_mode} --poll {poll_interval}"
|
|
5168
5172
|
)
|
|
5169
|
-
click.echo(f"Registered runner '{name}' [{rec['id']}] on org {org_id}.")
|
|
5170
|
-
|
|
5171
|
-
|
|
5172
|
-
|
|
5173
|
-
|
|
5174
|
-
|
|
5173
|
+
click.echo(f"Registered runner '{name}' [{rec['id']}] on org {org_id}.", err=True)
|
|
5174
|
+
if as_cloud_init:
|
|
5175
|
+
# #cloud-config so the box self-enrolls at first boot. pip3/tmux install is
|
|
5176
|
+
# best-effort (apt on Debian/Ubuntu images, incl. OVH Public Cloud Ubuntu).
|
|
5177
|
+
pkgs = "python3-pip" + (" tmux" if sessions else "")
|
|
5178
|
+
cloud_init = (
|
|
5179
|
+
"#cloud-config\n"
|
|
5180
|
+
"package_update: true\n"
|
|
5181
|
+
"packages:\n"
|
|
5182
|
+
f" - {pkgs.replace(' ', chr(10) + ' - ')}\n"
|
|
5183
|
+
"runcmd:\n"
|
|
5184
|
+
f" - [ bash, -lc, \"pip3 install -U openrunner-sdk && "
|
|
5185
|
+
f"OPENRUNNER_RUNNER_TOKEN={token} OPENRUNNER_BASE_URL={base_url} "
|
|
5186
|
+
f"openrunner runner start --exec {exec_mode} --poll {poll_interval}\" ]\n"
|
|
5187
|
+
)
|
|
5188
|
+
click.echo(cloud_init)
|
|
5189
|
+
else:
|
|
5190
|
+
click.echo("Run this ON the machine (Vast on-start script / Lambda box / VM startup / k8s cmd):\n", err=True)
|
|
5191
|
+
click.echo(bootstrap)
|
|
5192
|
+
click.echo(f"\nThen: openrunner jobs submit --org {org} --runner {rec['id']} -c \"<cmd>\"", err=True)
|
|
5193
|
+
click.echo(f" openrunner session open s1 --org {org} --runner {rec['id']}", err=True)
|
|
5194
|
+
click.echo("The token is shown once — it is the runner's credential (not a user key).", err=True)
|
|
5175
5195
|
|
|
5176
5196
|
|
|
5177
5197
|
@runner_group.command("launch")
|
|
5178
5198
|
@click.option("--org", required=True, help="Organization UUID or name/slug")
|
|
5179
5199
|
@click.option("--name", "-n", required=True, help="Runner name")
|
|
5180
|
-
@click.option("--provider", default="runpod", help="Cloud provider
|
|
5200
|
+
@click.option("--provider", default="runpod", help="Cloud provider with a server-side adapter: runpod, vastai")
|
|
5181
5201
|
@click.option("--gpu", required=True, help="GPU type, e.g. A100_80GB, H100")
|
|
5182
5202
|
@click.option("--gpu-count", default=1, type=int)
|
|
5183
5203
|
@click.option("--labels", "-l", default="", help="Comma-separated labels to target jobs at")
|
|
@@ -2895,14 +2895,15 @@ The worker/job/session mechanism works on ANY machine with outbound HTTPS —
|
|
|
2895
2895
|
RunPod, Vast.ai, Lambda, a GCP/AWS VM, a k8s pod, a laptop. Only *auto-
|
|
2896
2896
|
provisioning* is provider-specific.
|
|
2897
2897
|
- Already registered box? Use its id from `runner ls`.
|
|
2898
|
-
- **RunPod (auto-provision)**: `openrunner runner launch --
|
|
2899
|
-
--gpu H100 [--labels a100] [--web]` — registers
|
|
2900
|
-
(installs tmux + SDK, direct-exec).
|
|
2901
|
-
(
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2898
|
+
- **RunPod / Vast.ai (auto-provision)**: `openrunner runner launch --provider
|
|
2899
|
+
runpod|vastai --org ORG --name N --gpu H100 [--labels a100] [--web]` — registers
|
|
2900
|
+
+ boots a pod that self-enrolls (installs tmux + SDK, direct-exec). On RunPod
|
|
2901
|
+
`--web` = browser terminal on `:7681` (proxy URL); on Vast the bootstrap runs
|
|
2902
|
+
via the instance onstart. These two have server-side provisioning adapters.
|
|
2903
|
+
- **Lambda / OVH / any other platform**: `openrunner runner enroll --org ORG
|
|
2904
|
+
--name N [--labels ...] [--cloud-init]` mints the token and PRINTS a paste-
|
|
2905
|
+
anywhere bootstrap. Run it once on a Lambda box / VM, or `--cloud-init` for OVH
|
|
2906
|
+
Public Cloud **userData** / AWS **user-data** / GCP **startup-script** / k8s. The
|
|
2906
2907
|
box then polls like any worker — same jobs + sessions, no SSH. (No provider
|
|
2907
2908
|
adapter needed; provision the box however you normally do, this just enrolls it.)
|
|
2908
2909
|
- All of these print the runner **id** you target jobs/sessions at.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/gpu/providers/modal_provider.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/anthropic_tracer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/openrunner/integration/forced_alignment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openrunner_sdk-2.37.24 → openrunner_sdk-2.37.26}/tests/integration/test_artifact_round_trip.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|