runloop-api-client 0.24.0__tar.gz → 0.25.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.
Files changed (272) hide show
  1. runloop_api_client-0.25.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/CHANGELOG.md +21 -0
  3. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/PKG-INFO +20 -1
  4. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/README.md +19 -0
  5. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/api.md +1 -0
  6. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/pyproject.toml +1 -1
  7. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_base_client.py +8 -2
  8. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_files.py +1 -1
  9. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_version.py +1 -1
  10. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/scenarios/scenarios.py +157 -0
  11. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/__init__.py +1 -0
  12. runloop_api_client-0.25.0/src/runloop_api_client/types/scenario_update_params.py +36 -0
  13. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scoring_function.py +1 -1
  14. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scoring_function_param.py +1 -1
  15. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/test_scenarios.py +246 -0
  16. runloop_api_client-0.24.0/.release-please-manifest.json +0 -3
  17. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/.gitignore +0 -0
  18. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/CONTRIBUTING.md +0 -0
  19. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/LICENSE +0 -0
  20. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/SECURITY.md +0 -0
  21. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/bin/check-release-environment +0 -0
  22. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/bin/publish-pypi +0 -0
  23. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/examples/.keep +0 -0
  24. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/mypy.ini +0 -0
  25. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/noxfile.py +0 -0
  26. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/release-please-config.json +0 -0
  27. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/requirements-dev.lock +0 -0
  28. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/requirements.lock +0 -0
  29. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop/lib/.keep +0 -0
  30. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/__init__.py +0 -0
  31. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_client.py +0 -0
  32. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_compat.py +0 -0
  33. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_constants.py +0 -0
  34. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_exceptions.py +0 -0
  35. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_models.py +0 -0
  36. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_qs.py +0 -0
  37. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_resource.py +0 -0
  38. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_response.py +0 -0
  39. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_streaming.py +0 -0
  40. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_types.py +0 -0
  41. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  42. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  43. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  44. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  45. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  46. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  47. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  48. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  49. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  50. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/lib/.keep +0 -0
  51. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/lib/polling.py +0 -0
  52. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  53. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/pagination.py +0 -0
  54. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/py.typed +0 -0
  55. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/__init__.py +0 -0
  56. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  57. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  58. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  59. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  60. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  61. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  62. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  63. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
  64. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  65. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  66. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  67. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  68. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/repositories.py +0 -0
  69. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  70. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  71. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  72. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  73. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  74. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  75. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_list_view.py +0 -0
  76. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  77. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  78. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  79. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  80. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  81. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  82. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  83. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  84. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  85. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  86. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  87. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  88. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  89. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  90. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  91. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  92. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  93. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  94. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  95. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  96. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  97. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  98. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  99. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  100. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  101. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  102. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  103. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  104. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  105. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  106. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  107. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  108. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  109. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  110. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  111. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  112. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  113. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  114. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  115. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  116. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  117. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  118. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  119. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  120. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  121. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  122. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  123. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  124. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  125. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  126. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  127. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  128. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  129. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  130. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  131. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  132. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  133. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
  134. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  135. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  136. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  137. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  138. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  139. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  140. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  141. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  142. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  143. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  144. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  145. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  146. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  147. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  148. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  149. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  150. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  151. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  152. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  153. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
  154. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  155. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  156. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  157. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  158. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  159. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
  160. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  161. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  162. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
  163. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  164. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  165. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  166. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  167. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  168. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  169. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  170. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  171. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  172. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  173. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  174. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  175. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  176. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  177. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  178. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  179. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  180. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  181. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  182. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  183. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  184. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  185. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  186. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  187. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  188. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  189. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
  190. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  191. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  192. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  193. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  194. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  195. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  196. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  197. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  198. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  199. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/input_context.py +0 -0
  200. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  201. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  202. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  203. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  204. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  205. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
  206. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
  207. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  208. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  209. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  210. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  211. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  212. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_list_view.py +0 -0
  213. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  214. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  215. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  216. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  217. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  218. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  219. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  220. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  221. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  222. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  223. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  224. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  225. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  226. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  227. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  228. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  229. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  230. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  231. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  232. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  233. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  234. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  235. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  236. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  237. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  238. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  239. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  240. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/__init__.py +0 -0
  241. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/__init__.py +0 -0
  242. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  243. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  244. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/devboxes/__init__.py +0 -0
  245. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  246. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  247. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  248. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  249. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  250. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  251. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/scenarios/__init__.py +0 -0
  252. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  253. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  254. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/test_benchmarks.py +0 -0
  255. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/test_blueprints.py +0 -0
  256. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/test_devboxes.py +0 -0
  257. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/api_resources/test_repositories.py +0 -0
  258. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/conftest.py +0 -0
  259. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/sample_file.txt +0 -0
  260. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_client.py +0 -0
  261. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_deepcopy.py +0 -0
  262. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_extract_files.py +0 -0
  263. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_files.py +0 -0
  264. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_models.py +0 -0
  265. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_qs.py +0 -0
  266. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_required_args.py +0 -0
  267. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_response.py +0 -0
  268. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_streaming.py +0 -0
  269. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_transform.py +0 -0
  270. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_utils/test_proxy.py +0 -0
  271. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/test_utils/test_typing.py +0 -0
  272. {runloop_api_client-0.24.0 → runloop_api_client-0.25.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.25.0"
3
+ }
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.25.0 (2025-02-26)
4
+
5
+ Full Changelog: [v0.24.0...v0.25.0](https://github.com/runloopai/api-client-python/compare/v0.24.0...v0.25.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([#555](https://github.com/runloopai/api-client-python/issues/555)) ([7c1d55d](https://github.com/runloopai/api-client-python/commit/7c1d55de7fe3f157a30080ddc7e7f0ea5053304a))
10
+ * **client:** allow passing `NotGiven` for body ([#553](https://github.com/runloopai/api-client-python/issues/553)) ([dc21cae](https://github.com/runloopai/api-client-python/commit/dc21caec97e15ccde2c396c6a2f0fce0f2bad313))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **client:** mark some request bodies as optional ([dc21cae](https://github.com/runloopai/api-client-python/commit/dc21caec97e15ccde2c396c6a2f0fce0f2bad313))
16
+
17
+
18
+ ### Chores
19
+
20
+ * **internal:** codegen related update ([#551](https://github.com/runloopai/api-client-python/issues/551)) ([8dd01a1](https://github.com/runloopai/api-client-python/commit/8dd01a1e69d82ccbc4f05b72bd980d16cb93e5e5))
21
+ * **internal:** fix devcontainers setup ([#554](https://github.com/runloopai/api-client-python/issues/554)) ([9260eb4](https://github.com/runloopai/api-client-python/commit/9260eb4443fc50ecb07e99af2307896e32027158))
22
+ * **internal:** properly set __pydantic_private__ ([#556](https://github.com/runloopai/api-client-python/issues/556)) ([4496830](https://github.com/runloopai/api-client-python/commit/449683002d1fb31b01c4d167973058684b7ee654))
23
+
3
24
  ## 0.24.0 (2025-02-19)
4
25
 
5
26
  Full Changelog: [v0.23.0...v0.24.0](https://github.com/runloopai/api-client-python/compare/v0.23.0...v0.24.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runloop_api_client
3
- Version: 0.24.0
3
+ Version: 0.25.0
4
4
  Summary: The official Python library for the runloop API
5
5
  Project-URL: Homepage, https://github.com/runloopai/api-client-python
6
6
  Project-URL: Repository, https://github.com/runloopai/api-client-python
@@ -168,6 +168,25 @@ for devbox in first_page.devboxes:
168
168
  # Remove `await` for non-async usage.
169
169
  ```
170
170
 
171
+ ## File uploads
172
+
173
+ Request parameters that correspond to file uploads can be passed as `bytes`, a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.
174
+
175
+ ```python
176
+ from pathlib import Path
177
+ from runloop_api_client import Runloop
178
+
179
+ client = Runloop()
180
+
181
+ client.devboxes.upload_file(
182
+ id="id",
183
+ path="path",
184
+ file=Path("/path/to/file"),
185
+ )
186
+ ```
187
+
188
+ The async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.
189
+
171
190
  ## Handling errors
172
191
 
173
192
  When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `runloop_api_client.APIConnectionError` is raised.
@@ -136,6 +136,25 @@ for devbox in first_page.devboxes:
136
136
  # Remove `await` for non-async usage.
137
137
  ```
138
138
 
139
+ ## File uploads
140
+
141
+ Request parameters that correspond to file uploads can be passed as `bytes`, a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.
142
+
143
+ ```python
144
+ from pathlib import Path
145
+ from runloop_api_client import Runloop
146
+
147
+ client = Runloop()
148
+
149
+ client.devboxes.upload_file(
150
+ id="id",
151
+ path="path",
152
+ file=Path("/path/to/file"),
153
+ )
154
+ ```
155
+
156
+ The async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.
157
+
139
158
  ## Handling errors
140
159
 
141
160
  When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `runloop_api_client.APIConnectionError` is raised.
@@ -278,6 +278,7 @@ Methods:
278
278
 
279
279
  - <code title="post /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">create</a>(\*\*<a href="src/runloop_api_client/types/scenario_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
280
280
  - <code title="get /v1/scenarios/{id}">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
281
+ - <code title="post /v1/scenarios/{id}">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/scenario_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
281
282
  - <code title="get /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
282
283
  - <code title="get /v1/scenarios/list_public">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
283
284
  - <code title="post /v1/scenarios/start_run">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">start_run</a>(\*\*<a href="src/runloop_api_client/types/scenario_start_run_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.24.0"
3
+ version = "0.25.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -63,7 +63,7 @@ from ._types import (
63
63
  ModelBuilderProtocol,
64
64
  )
65
65
  from ._utils import is_dict, is_list, asyncify, is_given, lru_cache, is_mapping
66
- from ._compat import model_copy, model_dump
66
+ from ._compat import PYDANTIC_V2, model_copy, model_dump
67
67
  from ._models import GenericModel, FinalRequestOptions, validate_type, construct_type
68
68
  from ._response import (
69
69
  APIResponse,
@@ -207,6 +207,9 @@ class BaseSyncPage(BasePage[_T], Generic[_T]):
207
207
  model: Type[_T],
208
208
  options: FinalRequestOptions,
209
209
  ) -> None:
210
+ if PYDANTIC_V2 and getattr(self, "__pydantic_private__", None) is None:
211
+ self.__pydantic_private__ = {}
212
+
210
213
  self._model = model
211
214
  self._client = client
212
215
  self._options = options
@@ -292,6 +295,9 @@ class BaseAsyncPage(BasePage[_T], Generic[_T]):
292
295
  client: AsyncAPIClient,
293
296
  options: FinalRequestOptions,
294
297
  ) -> None:
298
+ if PYDANTIC_V2 and getattr(self, "__pydantic_private__", None) is None:
299
+ self.__pydantic_private__ = {}
300
+
295
301
  self._model = model
296
302
  self._client = client
297
303
  self._options = options
@@ -518,7 +524,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
518
524
  # so that passing a `TypedDict` doesn't cause an error.
519
525
  # https://github.com/microsoft/pyright/issues/3526#event-6715453066
520
526
  params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
521
- json=json_data,
527
+ json=json_data if is_given(json_data) else None,
522
528
  files=files,
523
529
  **kwargs,
524
530
  )
@@ -34,7 +34,7 @@ def assert_is_file_content(obj: object, *, key: str | None = None) -> None:
34
34
  if not is_file_content(obj):
35
35
  prefix = f"Expected entry at `{key}`" if key is not None else f"Expected file input `{obj!r}`"
36
36
  raise RuntimeError(
37
- f"{prefix} to be bytes, an io.IOBase instance, PathLike or a tuple but received {type(obj)} instead."
37
+ f"{prefix} to be bytes, an io.IOBase instance, PathLike or a tuple but received {type(obj)} instead. See https://github.com/runloopai/api-client-python/tree/main#file-uploads"
38
38
  ) from None
39
39
 
40
40
 
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "runloop_api_client"
4
- __version__ = "0.24.0" # x-release-please-version
4
+ __version__ = "0.25.0" # x-release-please-version
@@ -17,6 +17,7 @@ from .runs import (
17
17
  from ...types import (
18
18
  scenario_list_params,
19
19
  scenario_create_params,
20
+ scenario_update_params,
20
21
  scenario_start_run_params,
21
22
  scenario_list_public_params,
22
23
  )
@@ -183,6 +184,78 @@ class ScenariosResource(SyncAPIResource):
183
184
  cast_to=ScenarioView,
184
185
  )
185
186
 
187
+ def update(
188
+ self,
189
+ id: str,
190
+ *,
191
+ input_context: InputContextParam,
192
+ name: str,
193
+ scoring_contract: ScoringContractParam,
194
+ environment_parameters: Optional[ScenarioEnvironmentParam] | NotGiven = NOT_GIVEN,
195
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
196
+ reference_output: Optional[str] | NotGiven = NOT_GIVEN,
197
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
198
+ # The extra values given here take precedence over values defined on the client or passed to this method.
199
+ extra_headers: Headers | None = None,
200
+ extra_query: Query | None = None,
201
+ extra_body: Body | None = None,
202
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
203
+ idempotency_key: str | None = None,
204
+ ) -> ScenarioView:
205
+ """
206
+ Update a Scenario, a repeatable AI coding evaluation test that defines the
207
+ starting environment as well as evaluation success criteria.
208
+
209
+ Args:
210
+ input_context: The input context for the Scenario.
211
+
212
+ name: Name of the scenario.
213
+
214
+ scoring_contract: The scoring contract for the Scenario.
215
+
216
+ environment_parameters: The Environment in which the Scenario will run.
217
+
218
+ metadata: User defined metadata to attach to the scenario for organization.
219
+
220
+ reference_output: A string representation of the reference output to solve the scenario. Commonly
221
+ can be the result of a git diff or a sequence of command actions to apply to the
222
+ environment.
223
+
224
+ extra_headers: Send extra headers
225
+
226
+ extra_query: Add additional query parameters to the request
227
+
228
+ extra_body: Add additional JSON properties to the request
229
+
230
+ timeout: Override the client-level default timeout for this request, in seconds
231
+
232
+ idempotency_key: Specify a custom idempotency key for this request
233
+ """
234
+ if not id:
235
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
236
+ return self._post(
237
+ f"/v1/scenarios/{id}",
238
+ body=maybe_transform(
239
+ {
240
+ "input_context": input_context,
241
+ "name": name,
242
+ "scoring_contract": scoring_contract,
243
+ "environment_parameters": environment_parameters,
244
+ "metadata": metadata,
245
+ "reference_output": reference_output,
246
+ },
247
+ scenario_update_params.ScenarioUpdateParams,
248
+ ),
249
+ options=make_request_options(
250
+ extra_headers=extra_headers,
251
+ extra_query=extra_query,
252
+ extra_body=extra_body,
253
+ timeout=timeout,
254
+ idempotency_key=idempotency_key,
255
+ ),
256
+ cast_to=ScenarioView,
257
+ )
258
+
186
259
  def list(
187
260
  self,
188
261
  *,
@@ -532,6 +605,78 @@ class AsyncScenariosResource(AsyncAPIResource):
532
605
  cast_to=ScenarioView,
533
606
  )
534
607
 
608
+ async def update(
609
+ self,
610
+ id: str,
611
+ *,
612
+ input_context: InputContextParam,
613
+ name: str,
614
+ scoring_contract: ScoringContractParam,
615
+ environment_parameters: Optional[ScenarioEnvironmentParam] | NotGiven = NOT_GIVEN,
616
+ metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
617
+ reference_output: Optional[str] | NotGiven = NOT_GIVEN,
618
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
619
+ # The extra values given here take precedence over values defined on the client or passed to this method.
620
+ extra_headers: Headers | None = None,
621
+ extra_query: Query | None = None,
622
+ extra_body: Body | None = None,
623
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
624
+ idempotency_key: str | None = None,
625
+ ) -> ScenarioView:
626
+ """
627
+ Update a Scenario, a repeatable AI coding evaluation test that defines the
628
+ starting environment as well as evaluation success criteria.
629
+
630
+ Args:
631
+ input_context: The input context for the Scenario.
632
+
633
+ name: Name of the scenario.
634
+
635
+ scoring_contract: The scoring contract for the Scenario.
636
+
637
+ environment_parameters: The Environment in which the Scenario will run.
638
+
639
+ metadata: User defined metadata to attach to the scenario for organization.
640
+
641
+ reference_output: A string representation of the reference output to solve the scenario. Commonly
642
+ can be the result of a git diff or a sequence of command actions to apply to the
643
+ environment.
644
+
645
+ extra_headers: Send extra headers
646
+
647
+ extra_query: Add additional query parameters to the request
648
+
649
+ extra_body: Add additional JSON properties to the request
650
+
651
+ timeout: Override the client-level default timeout for this request, in seconds
652
+
653
+ idempotency_key: Specify a custom idempotency key for this request
654
+ """
655
+ if not id:
656
+ raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
657
+ return await self._post(
658
+ f"/v1/scenarios/{id}",
659
+ body=await async_maybe_transform(
660
+ {
661
+ "input_context": input_context,
662
+ "name": name,
663
+ "scoring_contract": scoring_contract,
664
+ "environment_parameters": environment_parameters,
665
+ "metadata": metadata,
666
+ "reference_output": reference_output,
667
+ },
668
+ scenario_update_params.ScenarioUpdateParams,
669
+ ),
670
+ options=make_request_options(
671
+ extra_headers=extra_headers,
672
+ extra_query=extra_query,
673
+ extra_body=extra_body,
674
+ timeout=timeout,
675
+ idempotency_key=idempotency_key,
676
+ ),
677
+ cast_to=ScenarioView,
678
+ )
679
+
535
680
  def list(
536
681
  self,
537
682
  *,
@@ -738,6 +883,9 @@ class ScenariosResourceWithRawResponse:
738
883
  self.retrieve = to_raw_response_wrapper(
739
884
  scenarios.retrieve,
740
885
  )
886
+ self.update = to_raw_response_wrapper(
887
+ scenarios.update,
888
+ )
741
889
  self.list = to_raw_response_wrapper(
742
890
  scenarios.list,
743
891
  )
@@ -767,6 +915,9 @@ class AsyncScenariosResourceWithRawResponse:
767
915
  self.retrieve = async_to_raw_response_wrapper(
768
916
  scenarios.retrieve,
769
917
  )
918
+ self.update = async_to_raw_response_wrapper(
919
+ scenarios.update,
920
+ )
770
921
  self.list = async_to_raw_response_wrapper(
771
922
  scenarios.list,
772
923
  )
@@ -796,6 +947,9 @@ class ScenariosResourceWithStreamingResponse:
796
947
  self.retrieve = to_streamed_response_wrapper(
797
948
  scenarios.retrieve,
798
949
  )
950
+ self.update = to_streamed_response_wrapper(
951
+ scenarios.update,
952
+ )
799
953
  self.list = to_streamed_response_wrapper(
800
954
  scenarios.list,
801
955
  )
@@ -825,6 +979,9 @@ class AsyncScenariosResourceWithStreamingResponse:
825
979
  self.retrieve = async_to_streamed_response_wrapper(
826
980
  scenarios.retrieve,
827
981
  )
982
+ self.update = async_to_streamed_response_wrapper(
983
+ scenarios.update,
984
+ )
828
985
  self.list = async_to_streamed_response_wrapper(
829
986
  scenarios.list,
830
987
  )
@@ -35,6 +35,7 @@ from .blueprint_preview_view import BlueprintPreviewView as BlueprintPreviewView
35
35
  from .repository_list_params import RepositoryListParams as RepositoryListParams
36
36
  from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
37
37
  from .scenario_run_list_view import ScenarioRunListView as ScenarioRunListView
38
+ from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
38
39
  from .scoring_contract_param import ScoringContractParam as ScoringContractParam
39
40
  from .scoring_function_param import ScoringFunctionParam as ScoringFunctionParam
40
41
  from .benchmark_create_params import BenchmarkCreateParams as BenchmarkCreateParams
@@ -0,0 +1,36 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Dict, Optional
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ from .input_context_param import InputContextParam
9
+ from .scoring_contract_param import ScoringContractParam
10
+ from .scenario_environment_param import ScenarioEnvironmentParam
11
+
12
+ __all__ = ["ScenarioUpdateParams"]
13
+
14
+
15
+ class ScenarioUpdateParams(TypedDict, total=False):
16
+ input_context: Required[InputContextParam]
17
+ """The input context for the Scenario."""
18
+
19
+ name: Required[str]
20
+ """Name of the scenario."""
21
+
22
+ scoring_contract: Required[ScoringContractParam]
23
+ """The scoring contract for the Scenario."""
24
+
25
+ environment_parameters: Optional[ScenarioEnvironmentParam]
26
+ """The Environment in which the Scenario will run."""
27
+
28
+ metadata: Optional[Dict[str, str]]
29
+ """User defined metadata to attach to the scenario for organization."""
30
+
31
+ reference_output: Optional[str]
32
+ """A string representation of the reference output to solve the scenario.
33
+
34
+ Commonly can be the result of a git diff or a sequence of command actions to
35
+ apply to the environment.
36
+ """
@@ -20,7 +20,7 @@ class ScoringFunction(BaseModel):
20
20
  """
21
21
 
22
22
  weight: float
23
- """Wight to apply to scoring function score.
23
+ """Weight to apply to scoring function score.
24
24
 
25
25
  Weights of all scoring functions should sum to 1.0.
26
26
  """
@@ -21,7 +21,7 @@ class ScoringFunctionParam(TypedDict, total=False):
21
21
  """
22
22
 
23
23
  weight: Required[float]
24
- """Wight to apply to scoring function score.
24
+ """Weight to apply to scoring function score.
25
25
 
26
26
  Weights of all scoring functions should sum to 1.0.
27
27
  """