openrunner-sdk 2.37.26__tar.gz → 2.37.28__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.
Files changed (186) hide show
  1. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/PKG-INFO +1 -1
  2. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/__init__.py +1 -1
  3. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/cli.py +8 -3
  4. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/install_commands.py +11 -11
  5. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/pyproject.toml +1 -1
  6. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/.gitignore +0 -0
  7. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/=6.0 +0 -0
  8. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/=8.1 +0 -0
  9. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/README.md +0 -0
  10. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/CLAUDE.md +0 -0
  11. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/_safepath.py +0 -0
  12. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/_secret_rules.py +0 -0
  13. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/api_client.py +0 -0
  14. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/artifact.py +0 -0
  15. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/autoresearch.py +0 -0
  16. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/buffer.py +0 -0
  17. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/cache.py +0 -0
  18. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/config.py +0 -0
  19. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/cost.py +0 -0
  20. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/dataset.py +0 -0
  21. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/datasets.py +0 -0
  22. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/environment.py +0 -0
  23. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/evaluation.py +0 -0
  24. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/feedback.py +0 -0
  25. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/git_info.py +0 -0
  26. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/__init__.py +0 -0
  27. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/api_integration.py +0 -0
  28. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/cost_guard.py +0 -0
  29. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/gpu_types.py +0 -0
  30. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/price_compare.py +0 -0
  31. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/provider_base.py +0 -0
  32. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/providers/__init__.py +0 -0
  33. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/providers/lambda_cloud.py +0 -0
  34. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/providers/modal_provider.py +0 -0
  35. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/providers/ovhcloud.py +0 -0
  36. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/providers/runpod.py +0 -0
  37. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/providers/vastai.py +0 -0
  38. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/runner.py +0 -0
  39. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/gpu/workspace_sync.py +0 -0
  40. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/guardrails.py +0 -0
  41. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/handover.py +0 -0
  42. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/hooks/patent-lab-post-commit +0 -0
  43. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/__init__.py +0 -0
  44. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/accelerate.py +0 -0
  45. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/anthropic_tracer.py +0 -0
  46. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/catboost.py +0 -0
  47. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/diffusers.py +0 -0
  48. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/fastai.py +0 -0
  49. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/forced_alignment.py +0 -0
  50. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/gladia.py +0 -0
  51. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/gymnasium.py +0 -0
  52. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/huggingface.py +0 -0
  53. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/hydra.py +0 -0
  54. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/ignite.py +0 -0
  55. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/jax.py +0 -0
  56. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/keras.py +0 -0
  57. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/langchain.py +0 -0
  58. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/lightgbm.py +0 -0
  59. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/lightning.py +0 -0
  60. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/llamaindex.py +0 -0
  61. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/openai_finetune.py +0 -0
  62. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/openai_tracer.py +0 -0
  63. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/optuna.py +0 -0
  64. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/pytorch.py +0 -0
  65. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/sb3.py +0 -0
  66. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/sklearn.py +0 -0
  67. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/skypilot.py +0 -0
  68. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/tensorflow.py +0 -0
  69. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/trl.py +0 -0
  70. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/tts.py +0 -0
  71. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/ultralytics.py +0 -0
  72. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/voice_agent.py +0 -0
  73. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/whisper.py +0 -0
  74. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/integration/xgboost.py +0 -0
  75. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/launch.py +0 -0
  76. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/machine.py +0 -0
  77. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/mcp_server.py +0 -0
  78. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/media.py +0 -0
  79. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/migrate.py +0 -0
  80. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/model.py +0 -0
  81. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/model_card.py +0 -0
  82. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/offline.py +0 -0
  83. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/patent_scan.py +0 -0
  84. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/pii.py +0 -0
  85. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/plot.py +0 -0
  86. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/projects.py +0 -0
  87. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/prompt.py +0 -0
  88. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/query_api.py +0 -0
  89. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/redact.py +0 -0
  90. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/reload.py +0 -0
  91. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/research.py +0 -0
  92. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/research_policy.py +0 -0
  93. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/run.py +0 -0
  94. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/scorers.py +0 -0
  95. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/sender.py +0 -0
  96. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/session.py +0 -0
  97. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/settings.py +0 -0
  98. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/summary.py +0 -0
  99. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/sweep.py +0 -0
  100. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/sync.py +0 -0
  101. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/system_metrics.py +0 -0
  102. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/tensorboard.py +0 -0
  103. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/tools/__init__.py +0 -0
  104. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/tools/patent_report.py +0 -0
  105. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/trace.py +0 -0
  106. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/transcript_formatter.py +0 -0
  107. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/wal.py +0 -0
  108. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/wandb_compat/__init__.py +0 -0
  109. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/wandb_compat/_shim.py +0 -0
  110. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/openrunner/wer.py +0 -0
  111. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/scripts/gen_betterleaks_rules.py +0 -0
  112. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/__init__.py +0 -0
  113. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/conftest.py +0 -0
  114. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-aaa/config.json +0 -0
  115. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-aaa/metadata.json +0 -0
  116. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-aaa/metrics.jsonl +0 -0
  117. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-aaa/summary.json +0 -0
  118. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/model-checkpoint/manifest.json +0 -0
  119. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/model-checkpoint/weights.bin +0 -0
  120. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/sample-image/manifest.json +0 -0
  121. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/artifacts/sample-image/preview.png +0 -0
  122. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/config.json +0 -0
  123. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/metadata.json +0 -0
  124. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/metrics.jsonl +0 -0
  125. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/fixtures/wandb-export-mini/run-bbb/summary.json +0 -0
  126. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/integration/__init__.py +0 -0
  127. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/integration/conftest.py +0 -0
  128. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/integration/test_artifact_round_trip.py +0 -0
  129. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_alert.py +0 -0
  130. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_aliases.py +0 -0
  131. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_api_client.py +0 -0
  132. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_artifact.py +0 -0
  133. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_buffer.py +0 -0
  134. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_cache.py +0 -0
  135. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_class_scorers.py +0 -0
  136. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_cli.py +0 -0
  137. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_config.py +0 -0
  138. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_evaluation.py +0 -0
  139. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_finish.py +0 -0
  140. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_git_info.py +0 -0
  141. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/__init__.py +0 -0
  142. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/conftest.py +0 -0
  143. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_cost_guard.py +0 -0
  144. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_gpu_types.py +0 -0
  145. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_lambda.py +0 -0
  146. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_modal.py +0 -0
  147. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_ovhcloud.py +0 -0
  148. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_price_compare.py +0 -0
  149. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_provider_base.py +0 -0
  150. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_runner.py +0 -0
  151. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_runpod.py +0 -0
  152. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_sdk_gpu_api.py +0 -0
  153. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_vastai.py +0 -0
  154. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_gpu/test_workspace_sync.py +0 -0
  155. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_init.py +0 -0
  156. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_install_commands.py +0 -0
  157. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_fastai.py +0 -0
  158. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_huggingface.py +0 -0
  159. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_keras.py +0 -0
  160. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_langchain.py +0 -0
  161. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_lightning.py +0 -0
  162. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_pytorch.py +0 -0
  163. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_sklearn.py +0 -0
  164. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_integration_xgboost.py +0 -0
  165. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_launch.py +0 -0
  166. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_log.py +0 -0
  167. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_log_code.py +0 -0
  168. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_mcp_decisions.py +0 -0
  169. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_mcp_monitor.py +0 -0
  170. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_mcp_predictions.py +0 -0
  171. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_media.py +0 -0
  172. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_migrate.py +0 -0
  173. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_offline.py +0 -0
  174. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_offline_sync.py +0 -0
  175. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_pii.py +0 -0
  176. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_plot.py +0 -0
  177. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_query_api.py +0 -0
  178. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_resume.py +0 -0
  179. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_sdk_features.py +0 -0
  180. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_sender.py +0 -0
  181. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_session_sync.py +0 -0
  182. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_summary.py +0 -0
  183. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_sweep.py +0 -0
  184. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_system_metrics.py +0 -0
  185. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/tests/test_trace.py +0 -0
  186. {openrunner_sdk-2.37.26 → openrunner_sdk-2.37.28}/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.26
3
+ Version: 2.37.28
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.26"
184
+ __version__ = "2.37.28"
185
185
 
186
186
  logger = logging.getLogger("openrunner")
187
187
 
@@ -4013,8 +4013,8 @@ def gpu_credentials() -> None:
4013
4013
 
4014
4014
  @gpu_credentials.command("add")
4015
4015
  @click.option("--org", "org_id", required=True, help="Organization ID (UUID)")
4016
- @click.option("--provider", required=True, help="Provider, e.g. runpod, vastai, lambda")
4017
- @click.option("--api-key", "provider_key", required=True, help="Provider API key")
4016
+ @click.option("--provider", required=True, help="Provider, e.g. runpod, vastai, ovhcloud, lambda")
4017
+ @click.option("--api-key", "provider_key", required=True, help="Provider API key. For ovhcloud pass a JSON blob: '{\"application_key\":..,\"application_secret\":..,\"consumer_key\":..,\"service_name\":..,\"endpoint\":\"ovh-eu\",\"region\":\"GRA11\"}'")
4018
4018
  def gpu_credentials_add(org_id: str, provider: str, provider_key: str) -> None:
4019
4019
  """Store a provider API key on the platform (Fernet-encrypted, never returned)."""
4020
4020
  from openrunner.gpu.api_integration import GpuAPIClient
@@ -5197,7 +5197,7 @@ def runner_enroll(org, name, labels, gpu, gpu_count, exec_mode, sessions, poll_i
5197
5197
  @runner_group.command("launch")
5198
5198
  @click.option("--org", required=True, help="Organization UUID or name/slug")
5199
5199
  @click.option("--name", "-n", required=True, help="Runner name")
5200
- @click.option("--provider", default="runpod", help="Cloud provider with a server-side adapter: runpod, vastai")
5200
+ @click.option("--provider", default="runpod", help="Provider whose pods self-enroll at boot: runpod, vastai, ovhcloud. (Lambda has no boot hook — use `gpu run --provider lambda` instead.)")
5201
5201
  @click.option("--gpu", required=True, help="GPU type, e.g. A100_80GB, H100")
5202
5202
  @click.option("--gpu-count", default=1, type=int)
5203
5203
  @click.option("--labels", "-l", default="", help="Comma-separated labels to target jobs at")
@@ -5222,6 +5222,11 @@ def runner_launch(org, name, provider, gpu, gpu_count, labels, image, web, poll_
5222
5222
  if not api_key:
5223
5223
  click.echo("Error: Not logged in. Run 'openrunner login' first.", err=True)
5224
5224
  raise SystemExit(1)
5225
+ if provider == "lambda":
5226
+ click.echo("Error: Lambda has no boot hook, so a pod can't self-enroll. "
5227
+ "Use `openrunner gpu run --provider lambda --gpu GPU \"<cmd>\"` "
5228
+ "(SSH run), or `openrunner runner enroll` on a box you provisioned.", err=True)
5229
+ raise SystemExit(2)
5225
5230
  client = APIClient(base_url=base_url, api_key=api_key)
5226
5231
  org_id = _resolve_org_id(client, org)
5227
5232
  label_list = [x.strip() for x in labels.split(",") if x.strip()]
@@ -2895,17 +2895,17 @@ 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 / 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
2907
- box then polls like any worker same jobs + sessions, no SSH. (No provider
2908
- adapter needed; provision the box however you normally do, this just enrolls it.)
2898
+ - **RunPod / Vast.ai / OVH (auto-provision)**: `openrunner runner launch
2899
+ --provider runpod|vastai|ovhcloud --org ORG --name N --gpu GPU [--labels a100]
2900
+ [--web]` — registers + boots a pod that self-enrolls (tmux + SDK, direct-exec).
2901
+ RunPod `--web` = browser terminal on `:7681`; Vast injects the bootstrap via
2902
+ onstart; OVH via cloud-init userData. These have server-side adapters (store the
2903
+ provider key with `openrunner gpu credentials add`; for OVH the key is a JSON
2904
+ blob app_key/app_secret/consumer_key/service_name).
2905
+ - **Lambda / AWS / GCP / k8s / any box**: `openrunner runner enroll --org ORG
2906
+ --name N [--labels ...] [--cloud-init]` mints the token + PRINTS a paste-
2907
+ anywhere bootstrap (run once on the box, or `--cloud-init` for user-data /
2908
+ startup-script). Provision the box yourself; this just enrolls it.
2909
2909
  - All of these print the runner **id** you target jobs/sessions at.
2910
2910
 
2911
2911
  ## Jobs (one-shot command -> result)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openrunner-sdk"
3
- version = "2.37.26"
3
+ version = "2.37.28"
4
4
  description = "OpenRunner SDK - W&B-compatible ML experiment tracking client"
5
5
  readme = "README.md"
6
6
  license = {text = "MIT"}
File without changes
File without changes