runloop-api-client 0.48.1__tar.gz → 0.48.2__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 (289) hide show
  1. runloop_api_client-0.48.2/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/CHANGELOG.md +8 -0
  3. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/PKG-INFO +3 -2
  4. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/README.md +2 -1
  5. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/pyproject.toml +1 -1
  6. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/devboxes.py +31 -56
  8. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/executions.py +27 -43
  9. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -4
  10. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/devboxes/test_executions.py +4 -4
  11. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/test_devboxes.py +3 -7
  12. runloop_api_client-0.48.1/.release-please-manifest.json +0 -3
  13. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/.gitignore +0 -0
  14. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/CONTRIBUTING.md +0 -0
  15. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/LICENSE +0 -0
  16. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/SECURITY.md +0 -0
  17. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/api.md +0 -0
  18. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/bin/check-release-environment +0 -0
  19. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/bin/publish-pypi +0 -0
  20. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/examples/.keep +0 -0
  21. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/mypy.ini +0 -0
  22. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/noxfile.py +0 -0
  23. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/release-please-config.json +0 -0
  24. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/requirements-dev.lock +0 -0
  25. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/requirements.lock +0 -0
  26. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop/lib/.keep +0 -0
  27. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/__init__.py +0 -0
  28. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_base_client.py +0 -0
  29. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_client.py +0 -0
  30. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_compat.py +0 -0
  31. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_constants.py +0 -0
  32. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_exceptions.py +0 -0
  33. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_files.py +0 -0
  34. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_models.py +0 -0
  35. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_qs.py +0 -0
  36. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_resource.py +0 -0
  37. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_response.py +0 -0
  38. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_streaming.py +0 -0
  39. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_types.py +0 -0
  40. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/__init__.py +0 -0
  41. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_logs.py +0 -0
  42. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_proxy.py +0 -0
  43. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_reflection.py +0 -0
  44. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  45. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_streams.py +0 -0
  46. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_sync.py +0 -0
  47. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_transform.py +0 -0
  48. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_typing.py +0 -0
  49. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/_utils/_utils.py +0 -0
  50. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/lib/.keep +0 -0
  51. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/lib/polling.py +0 -0
  52. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/lib/polling_async.py +0 -0
  53. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/pagination.py +0 -0
  54. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/py.typed +0 -0
  55. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/__init__.py +0 -0
  56. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  57. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
  58. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  59. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/blueprints.py +0 -0
  60. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  61. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  62. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  63. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  64. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  65. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  66. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/repositories.py +0 -0
  67. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  68. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  69. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  70. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/resources/secrets.py +0 -0
  71. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/__init__.py +0 -0
  72. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  73. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  74. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  75. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  76. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  77. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
  78. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  79. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
  80. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmark_view.py +0 -0
  81. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  82. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  83. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
  84. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  85. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  86. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  87. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  88. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  89. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  90. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  91. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  92. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/blueprint_view.py +0 -0
  93. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  94. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  95. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  96. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  97. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  98. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  99. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  100. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  101. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  102. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  103. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  104. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  105. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  106. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  107. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  108. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  109. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  110. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  111. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  112. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  113. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  114. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_view.py +0 -0
  115. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  116. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  117. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  118. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  119. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  120. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  121. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  122. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  123. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  124. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  125. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  126. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  127. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  128. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  129. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  130. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  131. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  132. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  133. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  134. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  135. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  136. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
  137. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  138. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  139. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  140. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  141. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  142. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  143. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  144. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  145. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  146. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  147. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  148. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  149. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  150. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  151. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  152. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  153. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  154. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  155. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  156. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  157. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
  158. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  159. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  160. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  161. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  162. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  163. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
  164. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  165. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  166. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
  167. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  168. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  169. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  170. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  171. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  172. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  173. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  174. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  175. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  176. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  177. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  178. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  179. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  180. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  181. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  182. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  183. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  184. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  185. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  186. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  187. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/position.py +0 -0
  188. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  189. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/range.py +0 -0
  190. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  191. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  192. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  193. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
  194. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  195. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  196. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  197. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  198. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  199. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  200. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  201. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  202. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  203. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/input_context.py +0 -0
  204. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/input_context_param.py +0 -0
  205. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  206. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  207. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  208. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_create_params.py +0 -0
  209. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  210. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  211. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_list_params.py +0 -0
  212. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
  213. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  214. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  215. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  216. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_environment.py +0 -0
  217. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  218. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  219. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  220. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  221. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  222. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  223. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_update_params.py +0 -0
  224. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenario_view.py +0 -0
  225. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  226. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  227. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  228. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  229. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  230. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  231. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  232. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  233. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  234. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  235. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  236. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scoring_contract.py +0 -0
  237. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  238. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  239. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  240. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scoring_function.py +0 -0
  241. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  242. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  243. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/secret_create_params.py +0 -0
  244. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/secret_list_view.py +0 -0
  245. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/secret_update_params.py +0 -0
  246. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/secret_view.py +0 -0
  247. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared/__init__.py +0 -0
  248. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  249. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  250. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  251. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  252. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  253. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  254. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  255. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/__init__.py +0 -0
  256. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/__init__.py +0 -0
  257. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/benchmarks/__init__.py +0 -0
  258. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/benchmarks/test_runs.py +0 -0
  259. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/devboxes/__init__.py +0 -0
  260. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/devboxes/test_browsers.py +0 -0
  261. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/devboxes/test_computers.py +0 -0
  262. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  263. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/devboxes/test_logs.py +0 -0
  264. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/devboxes/test_lsp.py +0 -0
  265. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/scenarios/__init__.py +0 -0
  266. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/scenarios/test_runs.py +0 -0
  267. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/scenarios/test_scorers.py +0 -0
  268. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/test_benchmarks.py +0 -0
  269. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/test_blueprints.py +0 -0
  270. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/test_repositories.py +0 -0
  271. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/test_scenarios.py +0 -0
  272. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/api_resources/test_secrets.py +0 -0
  273. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/conftest.py +0 -0
  274. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/sample_file.txt +0 -0
  275. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_client.py +0 -0
  276. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_deepcopy.py +0 -0
  277. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_extract_files.py +0 -0
  278. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_files.py +0 -0
  279. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_models.py +0 -0
  280. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_polling.py +0 -0
  281. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_qs.py +0 -0
  282. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_required_args.py +0 -0
  283. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_response.py +0 -0
  284. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_streaming.py +0 -0
  285. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_transform.py +0 -0
  286. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_utils/test_proxy.py +0 -0
  287. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/test_utils/test_typing.py +0 -0
  288. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/tests/utils.py +0 -0
  289. {runloop_api_client-0.48.1 → runloop_api_client-0.48.2}/uv.lock +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.48.2"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.48.2 (2025-07-11)
4
+
5
+ Full Changelog: [v0.48.1...v0.48.2](https://github.com/runloopai/api-client-python/compare/v0.48.1...v0.48.2)
6
+
7
+ ### Chores
8
+
9
+ * **readme:** fix version rendering on pypi ([73af53e](https://github.com/runloopai/api-client-python/commit/73af53e19889262ac445fc0789999873c411c35a))
10
+
3
11
  ## 0.48.1 (2025-07-10)
4
12
 
5
13
  Full Changelog: [v0.48.0...v0.48.1](https://github.com/runloopai/api-client-python/compare/v0.48.0...v0.48.1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.48.1
3
+ Version: 0.48.2
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
@@ -35,7 +35,8 @@ Description-Content-Type: text/markdown
35
35
 
36
36
  # Runloop Python API library
37
37
 
38
- [![PyPI version](https://github.com/runloopai/api-client-python/tree/main/<https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable)>)](https://pypi.org/project/runloop_api_client/)
38
+ <!-- prettier-ignore -->
39
+ [![PyPI version](https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable))](https://pypi.org/project/runloop_api_client/)
39
40
 
40
41
  The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
41
42
  application. The library includes type definitions for all request params and response fields,
@@ -1,6 +1,7 @@
1
1
  # Runloop Python API library
2
2
 
3
- [![PyPI version](<https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable)>)](https://pypi.org/project/runloop_api_client/)
3
+ <!-- prettier-ignore -->
4
+ [![PyPI version](https://img.shields.io/pypi/v/runloop_api_client.svg?label=pypi%20(stable))](https://pypi.org/project/runloop_api_client/)
4
5
 
5
6
  The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
6
7
  application. The library includes type definitions for all request params and response fields,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.48.1"
3
+ version = "0.48.2"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -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.48.1" # x-release-please-version
4
+ __version__ = "0.48.2" # x-release-please-version
@@ -88,7 +88,7 @@ from ...pagination import (
88
88
  SyncDiskSnapshotsCursorIDPage,
89
89
  AsyncDiskSnapshotsCursorIDPage,
90
90
  )
91
- from ..._exceptions import RunloopError, APIStatusError
91
+ from ..._exceptions import RunloopError, APIStatusError, APITimeoutError
92
92
  from ...lib.polling import PollingConfig, poll_until
93
93
  from ..._base_client import AsyncPaginator, make_request_options
94
94
  from .disk_snapshots import (
@@ -115,6 +115,18 @@ __all__ = ["DevboxesResource", "AsyncDevboxesResource"]
115
115
  DEVBOX_BOOTING_STATES = frozenset(("provisioning", "initializing"))
116
116
 
117
117
 
118
+ def placeholder_devbox_view(id: str) -> DevboxView:
119
+ return DevboxView(
120
+ id=id,
121
+ status="provisioning",
122
+ capabilities=[],
123
+ create_time_ms=0,
124
+ launch_parameters=SharedLaunchParameters(),
125
+ metadata={},
126
+ state_transitions=[],
127
+ )
128
+
129
+
118
130
  class DevboxesResource(SyncAPIResource):
119
131
  @cached_property
120
132
  def disk_snapshots(self) -> DiskSnapshotsResource:
@@ -360,13 +372,8 @@ class DevboxesResource(SyncAPIResource):
360
372
  self,
361
373
  id: str,
362
374
  *,
375
+ # Use polling_config to configure the "long" polling behavior.
363
376
  polling_config: PollingConfig | None = None,
364
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
365
- # The extra values given here take precedence over values defined on the client or passed to this method.
366
- extra_headers: Headers | None = None,
367
- extra_query: Query | None = None,
368
- extra_body: Body | None = None,
369
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
370
377
  ) -> DevboxView:
371
378
  """Wait for a devbox to be in running state.
372
379
 
@@ -392,28 +399,19 @@ class DevboxesResource(SyncAPIResource):
392
399
  return self._post(
393
400
  f"/v1/devboxes/{id}/wait_for_status",
394
401
  body={"statuses": ["running", "failure"]},
395
- options=make_request_options(
396
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
397
- ),
398
402
  cast_to=DevboxView,
399
403
  )
400
404
 
401
405
  def handle_timeout_error(error: Exception) -> DevboxView:
402
- # Handle 408 timeout errors by returning current devbox state to continue polling
403
- if isinstance(error, APIStatusError) and error.response.status_code == 408:
406
+ # Handle timeout errors by returning current devbox state to continue polling
407
+ if isinstance(error, APITimeoutError) or (
408
+ isinstance(error, APIStatusError) and error.response.status_code == 408
409
+ ):
404
410
  # Return a placeholder result to continue polling
405
- return DevboxView(
406
- id=id,
407
- status="provisioning",
408
- capabilities=[],
409
- create_time_ms=0,
410
- launch_parameters=SharedLaunchParameters(),
411
- metadata={},
412
- state_transitions=[],
413
- )
414
- else:
415
- # Re-raise other errors to stop polling
416
- raise error
411
+ return placeholder_devbox_view(id)
412
+
413
+ # Re-raise other errors to stop polling
414
+ raise error
417
415
 
418
416
  def is_done_booting(devbox: DevboxView) -> bool:
419
417
  return devbox.status not in DEVBOX_BOOTING_STATES
@@ -495,10 +493,6 @@ class DevboxesResource(SyncAPIResource):
495
493
  return self.await_running(
496
494
  devbox.id,
497
495
  polling_config=polling_config,
498
- extra_headers=extra_headers,
499
- extra_query=extra_query,
500
- extra_body=extra_body,
501
- timeout=timeout,
502
496
  )
503
497
 
504
498
  def list(
@@ -1662,23 +1656,14 @@ class AsyncDevboxesResource(AsyncAPIResource):
1662
1656
  return await self.await_running(
1663
1657
  devbox.id,
1664
1658
  polling_config=polling_config,
1665
- extra_headers=extra_headers,
1666
- extra_query=extra_query,
1667
- extra_body=extra_body,
1668
- timeout=timeout,
1669
1659
  )
1670
1660
 
1671
1661
  async def await_running(
1672
1662
  self,
1673
1663
  id: str,
1674
1664
  *,
1665
+ # Use polling_config to configure the "long" polling behavior.
1675
1666
  polling_config: PollingConfig | None = None,
1676
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
1677
- # The extra values given here take precedence over values defined on the client or passed to this method.
1678
- extra_headers: Headers | None = None,
1679
- extra_query: Query | None = None,
1680
- extra_body: Body | None = None,
1681
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
1682
1667
  ) -> DevboxView:
1683
1668
  """Wait for a devbox to be in running state.
1684
1669
 
@@ -1705,26 +1690,16 @@ class AsyncDevboxesResource(AsyncAPIResource):
1705
1690
  return await self._post(
1706
1691
  f"/v1/devboxes/{id}/wait_for_status",
1707
1692
  body={"statuses": ["running", "failure"]},
1708
- options=make_request_options(
1709
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
1710
- ),
1711
1693
  cast_to=DevboxView,
1712
1694
  )
1713
- except APIStatusError as error:
1714
- if error.response.status_code == 408:
1715
- # Handle 408 timeout errors by returning a placeholder result to continue polling
1716
- return DevboxView(
1717
- id=id,
1718
- status="provisioning",
1719
- capabilities=[],
1720
- create_time_ms=0,
1721
- launch_parameters=SharedLaunchParameters(),
1722
- metadata={},
1723
- state_transitions=[],
1724
- )
1725
- else:
1726
- # Re-raise other errors to stop polling
1727
- raise
1695
+ except (APITimeoutError, APIStatusError) as error:
1696
+ # Handle timeout errors by returning current devbox state to continue polling
1697
+ if isinstance(error, APITimeoutError) or error.response.status_code == 408:
1698
+ # Return a placeholder result to continue polling
1699
+ return placeholder_devbox_view(id)
1700
+
1701
+ # Re-raise other errors to stop polling
1702
+ raise
1728
1703
 
1729
1704
  def is_done_booting(devbox: DevboxView) -> bool:
1730
1705
  return devbox.status not in DEVBOX_BOOTING_STATES
@@ -17,7 +17,7 @@ from ..._response import (
17
17
  async_to_streamed_response_wrapper,
18
18
  )
19
19
  from ..._constants import DEFAULT_TIMEOUT
20
- from ..._exceptions import APIStatusError
20
+ from ..._exceptions import APIStatusError, APITimeoutError
21
21
  from ...lib.polling import PollingConfig, poll_until
22
22
  from ..._base_client import make_request_options
23
23
  from ...types.devboxes import execution_retrieve_params, execution_execute_sync_params, execution_execute_async_params
@@ -28,6 +28,16 @@ from ...types.devbox_async_execution_detail_view import DevboxAsyncExecutionDeta
28
28
  __all__ = ["ExecutionsResource", "AsyncExecutionsResource"]
29
29
 
30
30
 
31
+ def placeholder_execution_detail_view(devbox_id: str, execution_id: str) -> DevboxAsyncExecutionDetailView:
32
+ return DevboxAsyncExecutionDetailView(
33
+ devbox_id=devbox_id,
34
+ execution_id=execution_id,
35
+ status="queued",
36
+ stdout="",
37
+ stderr="",
38
+ )
39
+
40
+
31
41
  class ExecutionsResource(SyncAPIResource):
32
42
  @cached_property
33
43
  def with_raw_response(self) -> ExecutionsResourceWithRawResponse:
@@ -97,13 +107,8 @@ class ExecutionsResource(SyncAPIResource):
97
107
  execution_id: str,
98
108
  devbox_id: str,
99
109
  *,
100
- config: PollingConfig | None = None,
101
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
102
- # The extra values given here take precedence over values defined on the client or passed to this method.
103
- extra_headers: Headers | None = None,
104
- extra_query: Query | None = None,
105
- extra_body: Body | None = None,
106
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
110
+ # Use polling_config to configure the "long" polling behavior.
111
+ polling_config: PollingConfig | None = None,
107
112
  ) -> DevboxAsyncExecutionDetailView:
108
113
  """Wait for an execution to complete.
109
114
 
@@ -128,23 +133,16 @@ class ExecutionsResource(SyncAPIResource):
128
133
  return self._post(
129
134
  f"/v1/devboxes/{devbox_id}/executions/{execution_id}/wait_for_status",
130
135
  body={"statuses": ["completed"]},
131
- options=make_request_options(
132
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
133
- ),
134
136
  cast_to=DevboxAsyncExecutionDetailView,
135
137
  )
136
138
 
137
139
  def handle_timeout_error(error: Exception) -> DevboxAsyncExecutionDetailView:
138
- # Handle 408 timeout errors by returning current execution state to continue polling
139
- if isinstance(error, APIStatusError) and error.response.status_code == 408:
140
+ # Handle timeout errors by returning current execution state to continue polling
141
+ if isinstance(error, APITimeoutError) or (
142
+ isinstance(error, APIStatusError) and error.response.status_code == 408
143
+ ):
140
144
  # Return a placeholder result to continue polling
141
- return DevboxAsyncExecutionDetailView(
142
- devbox_id=devbox_id,
143
- execution_id=execution_id,
144
- status="queued",
145
- stdout="",
146
- stderr="",
147
- )
145
+ return placeholder_execution_detail_view(devbox_id, execution_id)
148
146
  else:
149
147
  # Re-raise other errors to stop polling
150
148
  raise error
@@ -152,7 +150,7 @@ class ExecutionsResource(SyncAPIResource):
152
150
  def is_done(execution: DevboxAsyncExecutionDetailView) -> bool:
153
151
  return execution.status == "completed"
154
152
 
155
- return poll_until(wait_for_execution_status, is_done, config, handle_timeout_error)
153
+ return poll_until(wait_for_execution_status, is_done, polling_config, handle_timeout_error)
156
154
 
157
155
  def execute_async(
158
156
  self,
@@ -390,13 +388,8 @@ class AsyncExecutionsResource(AsyncAPIResource):
390
388
  execution_id: str,
391
389
  *,
392
390
  devbox_id: str,
391
+ # Use polling_config to configure the "long" polling behavior.
393
392
  polling_config: PollingConfig | None = None,
394
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
395
- # The extra values given here take precedence over values defined on the client or passed to this method.
396
- extra_headers: Headers | None = None,
397
- extra_query: Query | None = None,
398
- extra_body: Body | None = None,
399
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
400
393
  ) -> DevboxAsyncExecutionDetailView:
401
394
  """Wait for an execution to complete.
402
395
 
@@ -421,24 +414,15 @@ class AsyncExecutionsResource(AsyncAPIResource):
421
414
  return await self._post(
422
415
  f"/v1/devboxes/{devbox_id}/executions/{execution_id}/wait_for_status",
423
416
  body={"statuses": ["completed"]},
424
- options=make_request_options(
425
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
426
- ),
427
417
  cast_to=DevboxAsyncExecutionDetailView,
428
418
  )
429
- except APIStatusError as error:
430
- if error.response.status_code == 408:
431
- # Handle 408 timeout errors by returning current execution state to continue polling
432
- return DevboxAsyncExecutionDetailView(
433
- devbox_id=devbox_id,
434
- execution_id=execution_id,
435
- status="queued",
436
- stdout="",
437
- stderr="",
438
- )
439
- else:
440
- # Re-raise other errors to stop polling
441
- raise
419
+ except (APITimeoutError, APIStatusError) as error:
420
+ # Handle timeout errors by returning placeholder to continue polling
421
+ if isinstance(error, APITimeoutError) or error.response.status_code == 408:
422
+ return placeholder_execution_detail_view(devbox_id, execution_id)
423
+
424
+ # Re-raise other errors to stop polling
425
+ raise
442
426
 
443
427
  def is_done(execution: DevboxAsyncExecutionDetailView) -> bool:
444
428
  return execution.status == "completed"
@@ -471,10 +471,6 @@ class ScenariosResource(SyncAPIResource):
471
471
  self._client.devboxes.await_running(
472
472
  run.devbox_id,
473
473
  polling_config=polling_config,
474
- extra_headers=extra_headers,
475
- extra_query=extra_query,
476
- extra_body=extra_body,
477
- timeout=timeout,
478
474
  )
479
475
 
480
476
  return run
@@ -11,7 +11,7 @@ import pytest
11
11
  from tests.utils import assert_matches_type
12
12
  from runloop_api_client import Runloop, AsyncRunloop
13
13
  from runloop_api_client.types import DevboxExecutionDetailView, DevboxAsyncExecutionDetailView
14
- from runloop_api_client._exceptions import APIStatusError
14
+ from runloop_api_client._exceptions import APIStatusError, APITimeoutError
15
15
  from runloop_api_client.lib.polling import PollingConfig, PollingTimeout
16
16
 
17
17
  base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -338,7 +338,7 @@ class TestExecutions:
338
338
  with patch.object(client.devboxes.executions, "_post") as mock_post:
339
339
  mock_post.return_value = mock_execution_completed
340
340
 
341
- result = client.devboxes.executions.await_completed("execution_id", "devbox_id", config=config)
341
+ result = client.devboxes.executions.await_completed("execution_id", "devbox_id", polling_config=config)
342
342
 
343
343
  assert result.execution_id == "execution_id"
344
344
  assert result.status == "completed"
@@ -361,7 +361,7 @@ class TestExecutions:
361
361
  mock_post.return_value = mock_execution_running
362
362
 
363
363
  with pytest.raises(PollingTimeout):
364
- client.devboxes.executions.await_completed("execution_id", "devbox_id", config=config)
364
+ client.devboxes.executions.await_completed("execution_id", "devbox_id", polling_config=config)
365
365
 
366
366
  @parametrize
367
367
  def test_method_await_completed_various_statuses(self, client: Runloop) -> None:
@@ -665,7 +665,7 @@ class TestAsyncExecutions:
665
665
  # Create a mock 408 response
666
666
  mock_response = Mock()
667
667
  mock_response.status_code = 408
668
- mock_408_error = APIStatusError("Request timeout", response=mock_response, body=None)
668
+ mock_408_error = APITimeoutError(request=mock_response.request)
669
669
 
670
670
  mock_execution_completed = DevboxAsyncExecutionDetailView(
671
671
  devbox_id="devbox_id",
@@ -4,7 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  import os
6
6
  from typing import Any, cast
7
- from unittest.mock import ANY, Mock, patch
7
+ from unittest.mock import Mock, patch
8
8
 
9
9
  import httpx
10
10
  import pytest
@@ -1171,9 +1171,7 @@ class TestDevboxes:
1171
1171
  assert result.id == "test_id"
1172
1172
  assert result.status == "running"
1173
1173
  mock_create.assert_called_once()
1174
- mock_await.assert_called_once_with(
1175
- "test_id", polling_config=None, extra_headers=None, extra_query=None, extra_body=None, timeout=ANY
1176
- )
1174
+ mock_await.assert_called_once_with("test_id", polling_config=None)
1177
1175
 
1178
1176
  @parametrize
1179
1177
  def test_method_create_and_await_running_with_config(self, client: Runloop) -> None:
@@ -1210,9 +1208,7 @@ class TestDevboxes:
1210
1208
 
1211
1209
  assert result.id == "test_id"
1212
1210
  assert result.status == "running"
1213
- mock_await.assert_called_once_with(
1214
- "test_id", polling_config=config, extra_headers=None, extra_query=None, extra_body=None, timeout=ANY
1215
- )
1211
+ mock_await.assert_called_once_with("test_id", polling_config=config)
1216
1212
 
1217
1213
  @parametrize
1218
1214
  def test_method_create_and_await_running_create_failure(self, client: Runloop) -> None:
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.48.1"
3
- }