runloop-api-client 0.53.0__tar.gz → 0.54.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 (289) hide show
  1. runloop_api_client-0.54.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/CHANGELOG.md +9 -0
  3. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/PKG-INFO +1 -1
  4. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/api.md +2 -0
  5. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/pyproject.toml +7 -1
  6. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_base_client.py +4 -1
  7. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_files.py +4 -4
  8. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_version.py +1 -1
  9. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +20 -20
  10. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/blueprints.py +54 -105
  11. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/devboxes.py +43 -186
  12. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/scenarios/scenarios.py +6 -6
  13. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_create_params.py +4 -4
  14. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_run_view.py +6 -1
  15. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_start_run_params.py +11 -2
  16. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_update_params.py +4 -4
  17. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -13
  18. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -13
  19. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_manifest_view.py +13 -0
  20. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_start_run_params.py +11 -2
  21. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_update_params.py +1 -1
  22. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scoring_function_param.py +1 -1
  23. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/test_benchmarks.py +4 -4
  24. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/test_devboxes.py +23 -30
  25. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/test_scenarios.py +2 -2
  26. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/uv.lock +34 -1
  27. runloop_api_client-0.53.0/.release-please-manifest.json +0 -3
  28. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/.gitignore +0 -0
  29. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/CONTRIBUTING.md +0 -0
  30. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/LICENSE +0 -0
  31. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/README.md +0 -0
  32. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/SECURITY.md +0 -0
  33. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/bin/check-release-environment +0 -0
  34. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/bin/publish-pypi +0 -0
  35. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/examples/.keep +0 -0
  36. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/mypy.ini +0 -0
  37. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/noxfile.py +0 -0
  38. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/release-please-config.json +0 -0
  39. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/requirements-dev.lock +0 -0
  40. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/requirements.lock +0 -0
  41. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop/lib/.keep +0 -0
  42. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/__init__.py +0 -0
  43. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_client.py +0 -0
  44. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_compat.py +0 -0
  45. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_constants.py +0 -0
  46. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_exceptions.py +0 -0
  47. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_models.py +0 -0
  48. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_qs.py +0 -0
  49. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_resource.py +0 -0
  50. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_response.py +0 -0
  51. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_streaming.py +0 -0
  52. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_types.py +0 -0
  53. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  54. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  55. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  56. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  57. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
  58. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  59. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  60. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  61. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  62. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  63. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/lib/.keep +0 -0
  64. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/lib/polling.py +0 -0
  65. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  66. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/pagination.py +0 -0
  67. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/py.typed +0 -0
  68. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/__init__.py +0 -0
  69. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  70. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
  71. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  72. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  73. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  74. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
  75. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  76. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  77. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  78. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/repositories.py +0 -0
  79. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  80. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
  81. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
  82. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/resources/secrets.py +0 -0
  83. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/__init__.py +0 -0
  84. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
  85. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
  86. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
  87. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  88. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  89. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  90. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  91. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
  92. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  93. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  94. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  95. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  96. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  97. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  98. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  99. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  100. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  101. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  102. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  103. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  104. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  105. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  106. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  107. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  108. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  109. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  110. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  111. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  112. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  113. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  114. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  115. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
  116. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  117. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  118. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  119. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  120. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
  121. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  122. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  123. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  124. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  125. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  126. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  127. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  128. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  129. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  130. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  131. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  132. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  133. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  134. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  135. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  136. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
  137. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  138. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  139. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  140. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  141. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  142. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
  143. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  144. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  145. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  146. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  147. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  148. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  149. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  150. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  151. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  152. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  153. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  154. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
  155. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  156. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  157. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  158. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  159. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  160. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
  161. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
  162. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  163. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
  164. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  165. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  166. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  167. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  168. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  169. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
  170. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  171. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  172. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
  173. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  174. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  175. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  176. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  177. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  178. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  179. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  180. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  181. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  182. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  183. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  184. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  185. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  186. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  187. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  188. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  189. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  190. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  191. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  192. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  193. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  194. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  195. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  196. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  197. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  198. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  199. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
  200. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  201. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  202. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  203. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  204. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  205. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  206. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  207. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  208. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  209. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/input_context.py +0 -0
  210. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  211. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
  212. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  213. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  214. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  215. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
  216. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
  217. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  218. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
  219. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  220. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
  221. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  222. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  223. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
  224. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
  225. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  226. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  227. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  228. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  229. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  230. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
  231. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
  232. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
  233. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
  234. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
  235. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
  236. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
  237. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
  238. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
  239. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  240. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  241. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  242. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
  243. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  244. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  245. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
  246. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
  247. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
  248. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/secret_view.py +0 -0
  249. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  250. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  251. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  252. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  253. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  254. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  255. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  256. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  257. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/__init__.py +0 -0
  258. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/__init__.py +0 -0
  259. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  260. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
  261. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/devboxes/__init__.py +0 -0
  262. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  263. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  264. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
  265. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  266. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  267. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  268. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/scenarios/__init__.py +0 -0
  269. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/scenarios/test_runs.py +0 -0
  270. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
  271. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/test_blueprints.py +0 -0
  272. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/test_repositories.py +0 -0
  273. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/api_resources/test_secrets.py +0 -0
  274. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/conftest.py +0 -0
  275. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/sample_file.txt +0 -0
  276. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_client.py +0 -0
  277. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_deepcopy.py +0 -0
  278. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_extract_files.py +0 -0
  279. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_files.py +0 -0
  280. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_models.py +0 -0
  281. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_polling.py +0 -0
  282. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_qs.py +0 -0
  283. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_required_args.py +0 -0
  284. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_response.py +0 -0
  285. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_streaming.py +0 -0
  286. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_transform.py +0 -0
  287. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_utils/test_proxy.py +0 -0
  288. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/test_utils/test_typing.py +0 -0
  289. {runloop_api_client-0.53.0 → runloop_api_client-0.54.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.54.0"
3
+ }
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.54.0 (2025-08-05)
4
+
5
+ Full Changelog: [v0.53.0...v0.54.0](https://github.com/runloopai/api-client-python/compare/v0.53.0...v0.54.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([9d40ca4](https://github.com/runloopai/api-client-python/commit/9d40ca48745596ae2fa29ea3ad7fba93961eb801))
10
+ * **client:** support file upload requests ([5742a4b](https://github.com/runloopai/api-client-python/commit/5742a4ba701938607996b278531234121f81776d))
11
+
3
12
  ## 0.53.0 (2025-07-30)
4
13
 
5
14
  Full Changelog: [v0.52.0...v0.53.0](https://github.com/runloopai/api-client-python/compare/v0.52.0...v0.53.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: runloop_api_client
3
- Version: 0.53.0
3
+ Version: 0.54.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
@@ -62,6 +62,7 @@ Methods:
62
62
  - <code title="post /v1/blueprints/{id}/delete">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">delete</a>(id) -> object</code>
63
63
  - <code title="get /v1/blueprints/{id}/logs">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">logs</a>(id) -> <a href="./src/runloop_api_client/types/blueprint_build_logs_list_view.py">BlueprintBuildLogsListView</a></code>
64
64
  - <code title="post /v1/blueprints/preview">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">preview</a>(\*\*<a href="src/runloop_api_client/types/blueprint_preview_params.py">params</a>) -> <a href="./src/runloop_api_client/types/blueprint_preview_view.py">BlueprintPreviewView</a></code>
65
+ - <code title="create_and_await_build_complete">client.blueprints.<a href="./src/runloop_api_client/resources/blueprints.py">create_and_await_build_complete</a>(<a href="src/runloop_api_client/types/blueprint_create_params.py">create_args</a>, <a href="src/runloop_api_client/resources/blueprints.py">request_args</a>=None) -> <a href="./src/runloop_api_client/types/blueprint_view.py">BlueprintView</a></code>
65
66
 
66
67
  # Devboxes
67
68
 
@@ -104,6 +105,7 @@ Methods:
104
105
  - <code title="post /v1/devboxes/{id}/suspend">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">suspend</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
105
106
  - <code title="post /v1/devboxes/{id}/upload_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">upload_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_upload_file_params.py">params</a>) -> object</code>
106
107
  - <code title="post /v1/devboxes/{id}/write_file_contents">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file_contents</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_contents_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
108
+ - <code title="create_and_await_running">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">create_and_await_running</a>(<a href="src/runloop_api_client/types/devbox_create_params.py">create_args</a>, <a href="src/runloop_api_client/resources/devboxes/devboxes.py">request_args</a>=None) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
107
109
 
108
110
  ## DiskSnapshots
109
111
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.53.0"
3
+ version = "0.54.0"
4
4
  description = "The official Python library for the runloop API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -15,6 +15,7 @@ dependencies = [
15
15
  "distro>=1.7.0, <2",
16
16
  "sniffio",
17
17
  ]
18
+
18
19
  requires-python = ">= 3.8"
19
20
  classifiers = [
20
21
  "Typing :: Typed",
@@ -93,6 +94,11 @@ typecheck = { chain = [
93
94
  requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
94
95
  build-backend = "hatchling.build"
95
96
 
97
+ [dependency-groups]
98
+ dev = [
99
+ "ruff>=0.12.7",
100
+ ]
101
+
96
102
  [tool.hatch.build]
97
103
  include = [
98
104
  "src/*"
@@ -532,7 +532,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
532
532
  is_body_allowed = options.method.lower() != "get"
533
533
 
534
534
  if is_body_allowed:
535
- kwargs["json"] = json_data if is_given(json_data) else None
535
+ if isinstance(json_data, bytes):
536
+ kwargs["content"] = json_data
537
+ else:
538
+ kwargs["json"] = json_data if is_given(json_data) else None
536
539
  kwargs["files"] = files
537
540
  else:
538
541
  headers.pop("Content-Type", None)
@@ -69,12 +69,12 @@ def _transform_file(file: FileTypes) -> HttpxFileTypes:
69
69
  return file
70
70
 
71
71
  if is_tuple_t(file):
72
- return (file[0], _read_file_content(file[1]), *file[2:])
72
+ return (file[0], read_file_content(file[1]), *file[2:])
73
73
 
74
74
  raise TypeError(f"Expected file types input to be a FileContent type or to be a tuple")
75
75
 
76
76
 
77
- def _read_file_content(file: FileContent) -> HttpxFileContent:
77
+ def read_file_content(file: FileContent) -> HttpxFileContent:
78
78
  if isinstance(file, os.PathLike):
79
79
  return pathlib.Path(file).read_bytes()
80
80
  return file
@@ -111,12 +111,12 @@ async def _async_transform_file(file: FileTypes) -> HttpxFileTypes:
111
111
  return file
112
112
 
113
113
  if is_tuple_t(file):
114
- return (file[0], await _async_read_file_content(file[1]), *file[2:])
114
+ return (file[0], await async_read_file_content(file[1]), *file[2:])
115
115
 
116
116
  raise TypeError(f"Expected file types input to be a FileContent type or to be a tuple")
117
117
 
118
118
 
119
- async def _async_read_file_content(file: FileContent) -> HttpxFileContent:
119
+ async def async_read_file_content(file: FileContent) -> HttpxFileContent:
120
120
  if isinstance(file, os.PathLike):
121
121
  return await anyio.Path(file).read_bytes()
122
122
 
@@ -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.53.0" # x-release-please-version
4
+ __version__ = "0.54.0" # x-release-please-version
@@ -71,7 +71,7 @@ class BenchmarksResource(SyncAPIResource):
71
71
  name: str,
72
72
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
73
73
  required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
74
- required_secrets: List[str] | NotGiven = NOT_GIVEN,
74
+ required_secret_names: List[str] | NotGiven = NOT_GIVEN,
75
75
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
76
76
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
77
77
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -92,9 +92,9 @@ class BenchmarksResource(SyncAPIResource):
92
92
  required_environment_variables: Environment variables required to run the benchmark. If any required variables
93
93
  are not supplied, the benchmark will fail to start
94
94
 
95
- required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to
96
- benchmark required secret name). If any of these secrets are not provided or the
97
- mapping is incorrect, the benchmark will fail to start.
95
+ required_secret_names: Secrets required to run the benchmark with (environment variable name will be
96
+ mapped to the your user secret by name). If any of these secrets are not
97
+ provided or the mapping is incorrect, the benchmark will fail to start.
98
98
 
99
99
  scenario_ids: The Scenario IDs that make up the Benchmark.
100
100
 
@@ -115,7 +115,7 @@ class BenchmarksResource(SyncAPIResource):
115
115
  "name": name,
116
116
  "metadata": metadata,
117
117
  "required_environment_variables": required_environment_variables,
118
- "required_secrets": required_secrets,
118
+ "required_secret_names": required_secret_names,
119
119
  "scenario_ids": scenario_ids,
120
120
  },
121
121
  benchmark_create_params.BenchmarkCreateParams,
@@ -170,7 +170,7 @@ class BenchmarksResource(SyncAPIResource):
170
170
  name: str,
171
171
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
172
172
  required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
173
- required_secrets: List[str] | NotGiven = NOT_GIVEN,
173
+ required_secret_names: List[str] | NotGiven = NOT_GIVEN,
174
174
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
175
175
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
176
176
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -191,9 +191,9 @@ class BenchmarksResource(SyncAPIResource):
191
191
  required_environment_variables: Environment variables required to run the benchmark. If any required variables
192
192
  are not supplied, the benchmark will fail to start
193
193
 
194
- required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to
195
- benchmark required secret name). If any of these secrets are not provided or the
196
- mapping is incorrect, the benchmark will fail to start.
194
+ required_secret_names: Secrets required to run the benchmark with (environment variable name will be
195
+ mapped to the your user secret by name). If any of these secrets are not
196
+ provided or the mapping is incorrect, the benchmark will fail to start.
197
197
 
198
198
  scenario_ids: The Scenario IDs that make up the Benchmark.
199
199
 
@@ -216,7 +216,7 @@ class BenchmarksResource(SyncAPIResource):
216
216
  "name": name,
217
217
  "metadata": metadata,
218
218
  "required_environment_variables": required_environment_variables,
219
- "required_secrets": required_secrets,
219
+ "required_secret_names": required_secret_names,
220
220
  "scenario_ids": scenario_ids,
221
221
  },
222
222
  benchmark_update_params.BenchmarkUpdateParams,
@@ -463,7 +463,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
463
463
  name: str,
464
464
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
465
465
  required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
466
- required_secrets: List[str] | NotGiven = NOT_GIVEN,
466
+ required_secret_names: List[str] | NotGiven = NOT_GIVEN,
467
467
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
468
468
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
469
469
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -484,9 +484,9 @@ class AsyncBenchmarksResource(AsyncAPIResource):
484
484
  required_environment_variables: Environment variables required to run the benchmark. If any required variables
485
485
  are not supplied, the benchmark will fail to start
486
486
 
487
- required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to
488
- benchmark required secret name). If any of these secrets are not provided or the
489
- mapping is incorrect, the benchmark will fail to start.
487
+ required_secret_names: Secrets required to run the benchmark with (environment variable name will be
488
+ mapped to the your user secret by name). If any of these secrets are not
489
+ provided or the mapping is incorrect, the benchmark will fail to start.
490
490
 
491
491
  scenario_ids: The Scenario IDs that make up the Benchmark.
492
492
 
@@ -507,7 +507,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
507
507
  "name": name,
508
508
  "metadata": metadata,
509
509
  "required_environment_variables": required_environment_variables,
510
- "required_secrets": required_secrets,
510
+ "required_secret_names": required_secret_names,
511
511
  "scenario_ids": scenario_ids,
512
512
  },
513
513
  benchmark_create_params.BenchmarkCreateParams,
@@ -562,7 +562,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
562
562
  name: str,
563
563
  metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
564
564
  required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
565
- required_secrets: List[str] | NotGiven = NOT_GIVEN,
565
+ required_secret_names: List[str] | NotGiven = NOT_GIVEN,
566
566
  scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
567
567
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
568
568
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -583,9 +583,9 @@ class AsyncBenchmarksResource(AsyncAPIResource):
583
583
  required_environment_variables: Environment variables required to run the benchmark. If any required variables
584
584
  are not supplied, the benchmark will fail to start
585
585
 
586
- required_secrets: Secrets required to run the benchmark with (user secret name will be mapped to
587
- benchmark required secret name). If any of these secrets are not provided or the
588
- mapping is incorrect, the benchmark will fail to start.
586
+ required_secret_names: Secrets required to run the benchmark with (environment variable name will be
587
+ mapped to the your user secret by name). If any of these secrets are not
588
+ provided or the mapping is incorrect, the benchmark will fail to start.
589
589
 
590
590
  scenario_ids: The Scenario IDs that make up the Benchmark.
591
591
 
@@ -608,7 +608,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
608
608
  "name": name,
609
609
  "metadata": metadata,
610
610
  "required_environment_variables": required_environment_variables,
611
- "required_secrets": required_secrets,
611
+ "required_secret_names": required_secret_names,
612
612
  "scenario_ids": scenario_ids,
613
613
  },
614
614
  benchmark_update_params.BenchmarkUpdateParams,
@@ -2,7 +2,7 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict, List, Iterable, Optional
5
+ from typing import Dict, List, Iterable, Optional, TypedDict
6
6
 
7
7
  import httpx
8
8
 
@@ -28,7 +28,19 @@ from ..types.blueprint_build_logs_list_view import BlueprintBuildLogsListView
28
28
  from ..types.shared_params.launch_parameters import LaunchParameters
29
29
  from ..types.shared_params.code_mount_parameters import CodeMountParameters
30
30
 
31
- __all__ = ["BlueprintsResource", "AsyncBlueprintsResource"]
31
+
32
+ # Type for request arguments that combine polling config with additional request options
33
+ class BlueprintRequestArgs(TypedDict, total=False):
34
+ polling_config: PollingConfig | None
35
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
36
+ # The extra values given here take precedence over values defined on the client or passed to this method.
37
+ extra_headers: Headers | None
38
+ extra_query: Query | None
39
+ extra_body: Body | None
40
+ timeout: float | httpx.Timeout | None | NotGiven
41
+
42
+
43
+ __all__ = ["BlueprintsResource", "AsyncBlueprintsResource", "BlueprintRequestArgs"]
32
44
 
33
45
 
34
46
  class BlueprintsResource(SyncAPIResource):
@@ -188,13 +200,10 @@ class BlueprintsResource(SyncAPIResource):
188
200
  PollingTimeout: If polling times out before blueprint is built
189
201
  RunloopError: If blueprint enters a non-built terminal state
190
202
  """
203
+
191
204
  def retrieve_blueprint() -> BlueprintView:
192
205
  return self.retrieve(
193
- id,
194
- extra_headers=extra_headers,
195
- extra_query=extra_query,
196
- extra_body=extra_body,
197
- timeout=timeout
206
+ id, extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
198
207
  )
199
208
 
200
209
  def is_done_building(blueprint: BlueprintView) -> bool:
@@ -203,44 +212,23 @@ class BlueprintsResource(SyncAPIResource):
203
212
  blueprint = poll_until(retrieve_blueprint, is_done_building, polling_config)
204
213
 
205
214
  if blueprint.status != "build_complete":
206
- raise RunloopError(
207
- f"Blueprint entered non-built terminal state: {blueprint.status}"
208
- )
215
+ raise RunloopError(f"Blueprint entered non-built terminal state: {blueprint.status}")
209
216
 
210
217
  return blueprint
211
218
 
212
219
  def create_and_await_build_complete(
213
220
  self,
214
221
  *,
215
- name: str,
216
- code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
217
- dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
218
- file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
219
- launch_parameters: Optional[LaunchParameters] | NotGiven = NOT_GIVEN,
220
- system_setup_commands: Optional[List[str]] | NotGiven = NOT_GIVEN,
221
- polling_config: PollingConfig | None = None,
222
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
223
- # The extra values given here take precedence over values defined on the client or passed to this method.
224
- extra_headers: Headers | None = None,
225
- extra_query: Query | None = None,
226
- extra_body: Body | None = None,
227
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
228
- idempotency_key: str | None = None,
222
+ create_args: blueprint_create_params.BlueprintCreateParams,
223
+ request_args: BlueprintRequestArgs | None = None,
229
224
  ) -> BlueprintView:
230
225
  """Create a new Blueprint and wait for it to finish building.
231
226
 
227
+ This is a wrapper around the `create` method that waits for the blueprint to finish building.
228
+
232
229
  Args:
233
- dockerfile: The Dockerfile contents to use for building the Blueprint
234
- file_mounts: Files to mount into the Blueprint
235
- launch_parameters: Launch parameters for Devboxes created from this Blueprint
236
- name: Name for the Blueprint
237
- system_setup_commands: Commands to run during Blueprint build
238
- polling_config: Optional polling configuration
239
- extra_headers: Send extra headers
240
- extra_query: Add additional query parameters to the request
241
- extra_body: Add additional JSON properties to the request
242
- timeout: Override the client-level default timeout for this request, in seconds
243
- idempotency_key: Specify a custom idempotency key for this request
230
+ create_args: Arguments to pass to the `create` method. See the `create` method for detailed documentation.
231
+ request_args: Optional request arguments including polling configuration and additional request options
244
232
 
245
233
  Returns:
246
234
  The built blueprint
@@ -249,27 +237,19 @@ class BlueprintsResource(SyncAPIResource):
249
237
  PollingTimeout: If polling times out before blueprint is built
250
238
  RunloopError: If blueprint enters a non-built terminal state
251
239
  """
252
- blueprint = self.create(
253
- name=name,
254
- dockerfile=dockerfile,
255
- code_mounts=code_mounts,
256
- file_mounts=file_mounts,
257
- launch_parameters=launch_parameters,
258
- system_setup_commands=system_setup_commands,
259
- extra_headers=extra_headers,
260
- extra_query=extra_query,
261
- extra_body=extra_body,
262
- timeout=timeout,
263
- idempotency_key=idempotency_key,
264
- )
240
+ # Pass all create_args to the underlying create method
241
+ blueprint = self.create(**create_args)
242
+
243
+ if request_args is None:
244
+ request_args = {}
265
245
 
266
246
  return self.await_build_complete(
267
247
  blueprint.id,
268
- polling_config=polling_config,
269
- extra_headers=extra_headers,
270
- extra_query=extra_query,
271
- extra_body=extra_body,
272
- timeout=timeout,
248
+ polling_config=request_args.get("polling_config", None),
249
+ extra_headers=request_args.get("extra_headers", None),
250
+ extra_query=request_args.get("extra_query", None),
251
+ extra_body=request_args.get("extra_body", None),
252
+ timeout=request_args.get("timeout", None),
273
253
  )
274
254
 
275
255
  def list(
@@ -597,7 +577,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
597
577
  ),
598
578
  cast_to=BlueprintView,
599
579
  )
600
-
580
+
601
581
  async def await_build_complete(
602
582
  self,
603
583
  id: str,
@@ -627,13 +607,10 @@ class AsyncBlueprintsResource(AsyncAPIResource):
627
607
  PollingTimeout: If polling times out before blueprint is built
628
608
  RunloopError: If blueprint enters a non-built terminal state
629
609
  """
610
+
630
611
  async def retrieve_blueprint() -> BlueprintView:
631
612
  return await self.retrieve(
632
- id,
633
- extra_headers=extra_headers,
634
- extra_query=extra_query,
635
- extra_body=extra_body,
636
- timeout=timeout
613
+ id, extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
637
614
  )
638
615
 
639
616
  def is_done_building(blueprint: BlueprintView) -> bool:
@@ -642,44 +619,23 @@ class AsyncBlueprintsResource(AsyncAPIResource):
642
619
  blueprint = await async_poll_until(retrieve_blueprint, is_done_building, polling_config)
643
620
 
644
621
  if blueprint.status != "build_complete":
645
- raise RunloopError(
646
- f"Blueprint entered non-built terminal state: {blueprint.status}"
647
- )
622
+ raise RunloopError(f"Blueprint entered non-built terminal state: {blueprint.status}")
648
623
 
649
624
  return blueprint
650
625
 
651
626
  async def create_and_await_build_complete(
652
627
  self,
653
628
  *,
654
- name: str,
655
- code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
656
- dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
657
- file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
658
- launch_parameters: Optional[LaunchParameters] | NotGiven = NOT_GIVEN,
659
- system_setup_commands: Optional[List[str]] | NotGiven = NOT_GIVEN,
660
- polling_config: PollingConfig | None = None,
661
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
662
- # The extra values given here take precedence over values defined on the client or passed to this method.
663
- extra_headers: Headers | None = None,
664
- extra_query: Query | None = None,
665
- extra_body: Body | None = None,
666
- timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
667
- idempotency_key: str | None = None,
629
+ create_args: blueprint_create_params.BlueprintCreateParams,
630
+ request_args: BlueprintRequestArgs | None = None,
668
631
  ) -> BlueprintView:
669
632
  """Create a new Blueprint and wait for it to finish building.
670
633
 
634
+ This is a wrapper around the `create` method that waits for the blueprint to finish building.
635
+
671
636
  Args:
672
- dockerfile: The Dockerfile contents to use for building the Blueprint
673
- file_mounts: Files to mount into the Blueprint
674
- launch_parameters: Launch parameters for Devboxes created from this Blueprint
675
- name: Name for the Blueprint
676
- system_setup_commands: Commands to run during Blueprint build
677
- polling_config: Optional polling configuration
678
- extra_headers: Send extra headers
679
- extra_query: Add additional query parameters to the request
680
- extra_body: Add additional JSON properties to the request
681
- timeout: Override the client-level default timeout for this request, in seconds
682
- idempotency_key: Specify a custom idempotency key for this request
637
+ create_args: Arguments to pass to the `create` method. See the `create` method for detailed documentation.
638
+ request_args: Optional request arguments including polling configuration and additional request options
683
639
 
684
640
  Returns:
685
641
  The built blueprint
@@ -688,27 +644,20 @@ class AsyncBlueprintsResource(AsyncAPIResource):
688
644
  PollingTimeout: If polling times out before blueprint is built
689
645
  RunloopError: If blueprint enters a non-built terminal state
690
646
  """
691
- blueprint = await self.create(
692
- name=name,
693
- dockerfile=dockerfile,
694
- code_mounts=code_mounts,
695
- file_mounts=file_mounts,
696
- launch_parameters=launch_parameters,
697
- system_setup_commands=system_setup_commands,
698
- extra_headers=extra_headers,
699
- extra_query=extra_query,
700
- extra_body=extra_body,
701
- timeout=timeout,
702
- idempotency_key=idempotency_key,
703
- )
647
+ # Pass all create_args to the underlying create method
648
+ blueprint = await self.create(**create_args)
649
+
650
+ # Extract polling config and other request args
651
+ if request_args is None:
652
+ request_args = {}
704
653
 
705
654
  return await self.await_build_complete(
706
655
  blueprint.id,
707
- polling_config=polling_config,
708
- extra_headers=extra_headers,
709
- extra_query=extra_query,
710
- extra_body=extra_body,
711
- timeout=timeout,
656
+ polling_config=request_args.get("polling_config", None),
657
+ extra_headers=request_args.get("extra_headers", None),
658
+ extra_query=request_args.get("extra_query", None),
659
+ extra_body=request_args.get("extra_body", None),
660
+ timeout=request_args.get("timeout", None),
712
661
  )
713
662
 
714
663
  def list(