runloop-api-client 0.17.0__tar.gz → 0.19.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 (249) hide show
  1. runloop_api_client-0.19.0/.release-please-manifest.json +3 -0
  2. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/CHANGELOG.md +17 -0
  3. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/PKG-INFO +1 -1
  4. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/api.md +6 -4
  5. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/pyproject.toml +1 -1
  6. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_version.py +1 -1
  7. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/pagination.py +236 -0
  8. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +124 -21
  9. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/benchmarks/runs.py +13 -14
  10. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/scenarios/runs.py +299 -14
  11. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/scenarios/scenarios.py +135 -10
  12. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/__init__.py +2 -0
  13. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -6
  14. runloop_api_client-0.19.0/src/runloop_api_client/types/benchmark_list_public_params.py +15 -0
  15. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_run_view.py +4 -1
  16. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_list_params.py +3 -0
  17. runloop_api_client-0.19.0/src/runloop_api_client/types/scenario_list_public_params.py +18 -0
  18. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/benchmarks/test_runs.py +10 -9
  19. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/scenarios/test_runs.py +10 -9
  20. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/test_benchmarks.py +75 -11
  21. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/test_scenarios.py +79 -9
  22. runloop_api_client-0.17.0/.release-please-manifest.json +0 -3
  23. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/.gitignore +0 -0
  24. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/CONTRIBUTING.md +0 -0
  25. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/LICENSE +0 -0
  26. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/README.md +0 -0
  27. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/SECURITY.md +0 -0
  28. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/bin/check-release-environment +0 -0
  29. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/bin/publish-pypi +0 -0
  30. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/examples/.keep +0 -0
  31. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/mypy.ini +0 -0
  32. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/noxfile.py +0 -0
  33. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/release-please-config.json +0 -0
  34. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/requirements-dev.lock +0 -0
  35. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/requirements.lock +0 -0
  36. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop/lib/.keep +0 -0
  37. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/__init__.py +0 -0
  38. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_base_client.py +0 -0
  39. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_client.py +0 -0
  40. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_compat.py +0 -0
  41. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_constants.py +0 -0
  42. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_exceptions.py +0 -0
  43. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_files.py +0 -0
  44. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_models.py +0 -0
  45. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_qs.py +0 -0
  46. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_resource.py +0 -0
  47. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_response.py +0 -0
  48. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_streaming.py +0 -0
  49. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_types.py +0 -0
  50. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/__init__.py +0 -0
  51. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_logs.py +0 -0
  52. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
  53. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
  54. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_streams.py +0 -0
  55. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_sync.py +0 -0
  56. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_transform.py +0 -0
  57. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_typing.py +0 -0
  58. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/_utils/_utils.py +0 -0
  59. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/lib/.keep +0 -0
  60. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/lib/polling.py +0 -0
  61. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/lib/polling_async.py +0 -0
  62. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/py.typed +0 -0
  63. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/__init__.py +0 -0
  64. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
  65. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/blueprints.py +0 -0
  66. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
  67. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
  68. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
  69. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/devboxes.py +3 -3
  70. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
  71. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
  72. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
  73. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/repositories.py +0 -0
  74. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
  75. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
  76. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_list_view.py +0 -0
  77. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
  78. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
  79. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
  80. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
  81. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
  82. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
  83. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
  84. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
  85. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
  86. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
  87. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
  88. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
  89. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
  90. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
  91. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
  92. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
  93. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
  94. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
  95. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
  96. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
  97. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
  98. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
  99. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
  100. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
  101. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
  102. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
  103. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
  104. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
  105. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
  106. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
  107. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
  108. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
  109. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
  110. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_view.py +0 -0
  111. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
  112. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
  113. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
  114. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
  115. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
  116. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
  117. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
  118. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
  119. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
  120. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
  121. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
  122. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
  123. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
  124. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
  125. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
  126. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
  127. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
  128. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
  129. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
  130. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
  131. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
  132. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
  133. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
  134. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
  135. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
  136. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
  137. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
  138. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
  139. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
  140. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
  141. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
  142. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
  143. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
  144. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
  145. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
  146. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
  147. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
  148. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
  149. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
  150. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
  151. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
  152. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
  153. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
  154. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
  155. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
  156. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
  157. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
  158. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
  159. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
  160. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
  161. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
  162. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
  163. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
  164. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
  165. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
  166. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
  167. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
  168. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
  169. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
  170. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
  171. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
  172. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
  173. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
  174. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
  175. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
  176. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
  177. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
  178. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
  179. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
  180. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
  181. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
  182. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
  183. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
  184. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
  185. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
  186. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
  187. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
  188. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
  189. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
  190. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/input_context.py +0 -0
  191. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/input_context_param.py +0 -0
  192. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
  193. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
  194. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
  195. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
  196. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
  197. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
  198. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
  199. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
  200. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
  201. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_list_view.py +0 -0
  202. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
  203. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
  204. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
  205. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenario_view.py +0 -0
  206. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
  207. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
  208. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
  209. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
  210. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
  211. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_function.py +0 -0
  212. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
  213. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
  214. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
  215. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
  216. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
  217. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
  218. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
  219. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
  220. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
  221. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
  222. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/__init__.py +0 -0
  223. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/__init__.py +0 -0
  224. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/benchmarks/__init__.py +0 -0
  225. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/__init__.py +0 -0
  226. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
  227. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_computers.py +0 -0
  228. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_executions.py +0 -0
  229. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_logs.py +0 -0
  230. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
  231. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/scenarios/__init__.py +0 -0
  232. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/test_blueprints.py +0 -0
  233. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/test_devboxes.py +0 -0
  234. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/api_resources/test_repositories.py +0 -0
  235. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/conftest.py +0 -0
  236. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/sample_file.txt +0 -0
  237. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_client.py +0 -0
  238. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_deepcopy.py +0 -0
  239. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_extract_files.py +0 -0
  240. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_files.py +0 -0
  241. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_models.py +0 -0
  242. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_qs.py +0 -0
  243. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_required_args.py +0 -0
  244. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_response.py +0 -0
  245. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_streaming.py +0 -0
  246. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_transform.py +0 -0
  247. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_utils/test_proxy.py +0 -0
  248. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/test_utils/test_typing.py +0 -0
  249. {runloop_api_client-0.17.0 → runloop_api_client-0.19.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.19.0"
3
+ }
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.19.0 (2025-02-03)
4
+
5
+ Full Changelog: [v0.18.0...v0.19.0](https://github.com/runloopai/api-client-python/compare/v0.18.0...v0.19.0)
6
+
7
+ ### Features
8
+
9
+ * add helper methods for scenarios ([551fcfc](https://github.com/runloopai/api-client-python/commit/551fcfc1dc5b8b67c0c6179d49c3eef2c0a38676))
10
+ * **api:** api update ([#520](https://github.com/runloopai/api-client-python/issues/520)) ([750b4ba](https://github.com/runloopai/api-client-python/commit/750b4ba51cc0c848258113af8bf882ceb679bf9e))
11
+
12
+ ## 0.18.0 (2025-02-01)
13
+
14
+ Full Changelog: [v0.17.0...v0.18.0](https://github.com/runloopai/api-client-python/compare/v0.17.0...v0.18.0)
15
+
16
+ ### Features
17
+
18
+ * **api:** api update ([#515](https://github.com/runloopai/api-client-python/issues/515)) ([1c68520](https://github.com/runloopai/api-client-python/commit/1c68520b90822af7d035acbf8b366a0c6492ec87))
19
+
3
20
  ## 0.17.0 (2025-01-31)
4
21
 
5
22
  Full Changelog: [v0.16.0...v0.17.0](https://github.com/runloopai/api-client-python/compare/v0.16.0...v0.17.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: runloop_api_client
3
- Version: 0.17.0
3
+ Version: 0.19.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
@@ -23,7 +23,8 @@ Methods:
23
23
 
24
24
  - <code title="post /v1/benchmarks">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">create</a>(\*\*<a href="src/runloop_api_client/types/benchmark_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
25
25
  - <code title="get /v1/benchmarks/{id}">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_view.py">BenchmarkView</a></code>
26
- - <code title="get /v1/benchmarks">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmark_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_list_view.py">BenchmarkListView</a></code>
26
+ - <code title="get /v1/benchmarks">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmark_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">SyncBenchmarksCursorIDPage[BenchmarkView]</a></code>
27
+ - <code title="get /v1/benchmarks/list_public">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/benchmark_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_view.py">SyncBenchmarksCursorIDPage[BenchmarkView]</a></code>
27
28
  - <code title="post /v1/benchmarks/start_run">client.benchmarks.<a href="./src/runloop_api_client/resources/benchmarks/benchmarks.py">start_run</a>(\*\*<a href="src/runloop_api_client/types/benchmark_start_run_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
28
29
 
29
30
  ## Runs
@@ -31,7 +32,7 @@ Methods:
31
32
  Methods:
32
33
 
33
34
  - <code title="get /v1/benchmarks/runs/{id}">client.benchmarks.runs.<a href="./src/runloop_api_client/resources/benchmarks/runs.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
34
- - <code title="get /v1/benchmarks/runs">client.benchmarks.runs.<a href="./src/runloop_api_client/resources/benchmarks/runs.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmarks/run_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_run_list_view.py">BenchmarkRunListView</a></code>
35
+ - <code title="get /v1/benchmarks/runs">client.benchmarks.runs.<a href="./src/runloop_api_client/resources/benchmarks/runs.py">list</a>(\*\*<a href="src/runloop_api_client/types/benchmarks/run_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">SyncBenchmarkRunsCursorIDPage[BenchmarkRunView]</a></code>
35
36
  - <code title="post /v1/benchmarks/runs/{id}/complete">client.benchmarks.runs.<a href="./src/runloop_api_client/resources/benchmarks/runs.py">complete</a>(id) -> <a href="./src/runloop_api_client/types/benchmark_run_view.py">BenchmarkRunView</a></code>
36
37
 
37
38
  # Blueprints
@@ -260,7 +261,8 @@ Methods:
260
261
 
261
262
  - <code title="post /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">create</a>(\*\*<a href="src/runloop_api_client/types/scenario_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
262
263
  - <code title="get /v1/scenarios/{id}">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenario_view.py">ScenarioView</a></code>
263
- - <code title="get /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_list_view.py">ScenarioListView</a></code>
264
+ - <code title="get /v1/scenarios">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
265
+ - <code title="get /v1/scenarios/list_public">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">list_public</a>(\*\*<a href="src/runloop_api_client/types/scenario_list_public_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_view.py">SyncScenariosCursorIDPage[ScenarioView]</a></code>
264
266
  - <code title="post /v1/scenarios/start_run">client.scenarios.<a href="./src/runloop_api_client/resources/scenarios/scenarios.py">start_run</a>(\*\*<a href="src/runloop_api_client/types/scenario_start_run_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
265
267
 
266
268
  ## Runs
@@ -268,7 +270,7 @@ Methods:
268
270
  Methods:
269
271
 
270
272
  - <code title="get /v1/scenarios/runs/{id}">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
271
- - <code title="get /v1/scenarios/runs">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenarios/run_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_list_view.py">ScenarioRunListView</a></code>
273
+ - <code title="get /v1/scenarios/runs">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenarios/run_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">SyncBenchmarkRunsCursorIDPage[ScenarioRunView]</a></code>
272
274
  - <code title="post /v1/scenarios/runs/{id}/complete">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">complete</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
273
275
  - <code title="post /v1/scenarios/runs/{id}/score">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">score</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
274
276
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "runloop_api_client"
3
- version = "0.17.0"
3
+ version = "0.19.0"
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.17.0" # x-release-please-version
4
+ __version__ = "0.19.0" # x-release-please-version
@@ -14,6 +14,14 @@ __all__ = [
14
14
  "AsyncRepositoriesCursorIDPage",
15
15
  "SyncDiskSnapshotsCursorIDPage",
16
16
  "AsyncDiskSnapshotsCursorIDPage",
17
+ "SyncBenchmarksCursorIDPage",
18
+ "AsyncBenchmarksCursorIDPage",
19
+ "SyncBenchmarkRunsCursorIDPage",
20
+ "AsyncBenchmarkRunsCursorIDPage",
21
+ "SyncScenariosCursorIDPage",
22
+ "AsyncScenariosCursorIDPage",
23
+ "SyncScenarioRunsCursorIDPage",
24
+ "AsyncScenarioRunsCursorIDPage",
17
25
  ]
18
26
 
19
27
  _T = TypeVar("_T")
@@ -39,6 +47,26 @@ class DiskSnapshotsCursorIDPageItem(Protocol):
39
47
  id: str
40
48
 
41
49
 
50
+ @runtime_checkable
51
+ class BenchmarksCursorIDPageItem(Protocol):
52
+ id: str
53
+
54
+
55
+ @runtime_checkable
56
+ class BenchmarkRunsCursorIDPageItem(Protocol):
57
+ id: str
58
+
59
+
60
+ @runtime_checkable
61
+ class ScenariosCursorIDPageItem(Protocol):
62
+ id: str
63
+
64
+
65
+ @runtime_checkable
66
+ class ScenarioRunsCursorIDPageItem(Protocol):
67
+ id: str
68
+
69
+
42
70
  class SyncBlueprintsCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
43
71
  blueprints: List[_T]
44
72
  has_more: Optional[bool] = None
@@ -245,3 +273,211 @@ class AsyncDiskSnapshotsCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T
245
273
  return None
246
274
 
247
275
  return PageInfo(params={"starting_after": item.id})
276
+
277
+
278
+ class SyncBenchmarksCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
279
+ benchmarks: List[_T]
280
+ has_more: Optional[bool] = None
281
+ total_count: Optional[int] = None
282
+
283
+ @override
284
+ def _get_page_items(self) -> List[_T]:
285
+ benchmarks = self.benchmarks
286
+ if not benchmarks:
287
+ return []
288
+ return benchmarks
289
+
290
+ @override
291
+ def next_page_info(self) -> Optional[PageInfo]:
292
+ benchmarks = self.benchmarks
293
+ if not benchmarks:
294
+ return None
295
+
296
+ item = cast(Any, benchmarks[-1])
297
+ if not isinstance(item, BenchmarksCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
298
+ # TODO emit warning log
299
+ return None
300
+
301
+ return PageInfo(params={"starting_after": item.id})
302
+
303
+
304
+ class AsyncBenchmarksCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
305
+ benchmarks: List[_T]
306
+ has_more: Optional[bool] = None
307
+ total_count: Optional[int] = None
308
+
309
+ @override
310
+ def _get_page_items(self) -> List[_T]:
311
+ benchmarks = self.benchmarks
312
+ if not benchmarks:
313
+ return []
314
+ return benchmarks
315
+
316
+ @override
317
+ def next_page_info(self) -> Optional[PageInfo]:
318
+ benchmarks = self.benchmarks
319
+ if not benchmarks:
320
+ return None
321
+
322
+ item = cast(Any, benchmarks[-1])
323
+ if not isinstance(item, BenchmarksCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
324
+ # TODO emit warning log
325
+ return None
326
+
327
+ return PageInfo(params={"starting_after": item.id})
328
+
329
+
330
+ class SyncBenchmarkRunsCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
331
+ runs: List[_T]
332
+ has_more: Optional[bool] = None
333
+ total_count: Optional[int] = None
334
+
335
+ @override
336
+ def _get_page_items(self) -> List[_T]:
337
+ runs = self.runs
338
+ if not runs:
339
+ return []
340
+ return runs
341
+
342
+ @override
343
+ def next_page_info(self) -> Optional[PageInfo]:
344
+ runs = self.runs
345
+ if not runs:
346
+ return None
347
+
348
+ item = cast(Any, runs[-1])
349
+ if not isinstance(item, BenchmarkRunsCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
350
+ # TODO emit warning log
351
+ return None
352
+
353
+ return PageInfo(params={"starting_after": item.id})
354
+
355
+
356
+ class AsyncBenchmarkRunsCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
357
+ runs: List[_T]
358
+ has_more: Optional[bool] = None
359
+ total_count: Optional[int] = None
360
+
361
+ @override
362
+ def _get_page_items(self) -> List[_T]:
363
+ runs = self.runs
364
+ if not runs:
365
+ return []
366
+ return runs
367
+
368
+ @override
369
+ def next_page_info(self) -> Optional[PageInfo]:
370
+ runs = self.runs
371
+ if not runs:
372
+ return None
373
+
374
+ item = cast(Any, runs[-1])
375
+ if not isinstance(item, BenchmarkRunsCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
376
+ # TODO emit warning log
377
+ return None
378
+
379
+ return PageInfo(params={"starting_after": item.id})
380
+
381
+
382
+ class SyncScenariosCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
383
+ scenarios: List[_T]
384
+ has_more: Optional[bool] = None
385
+ total_count: Optional[int] = None
386
+
387
+ @override
388
+ def _get_page_items(self) -> List[_T]:
389
+ scenarios = self.scenarios
390
+ if not scenarios:
391
+ return []
392
+ return scenarios
393
+
394
+ @override
395
+ def next_page_info(self) -> Optional[PageInfo]:
396
+ scenarios = self.scenarios
397
+ if not scenarios:
398
+ return None
399
+
400
+ item = cast(Any, scenarios[-1])
401
+ if not isinstance(item, ScenariosCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
402
+ # TODO emit warning log
403
+ return None
404
+
405
+ return PageInfo(params={"starting_after": item.id})
406
+
407
+
408
+ class AsyncScenariosCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
409
+ scenarios: List[_T]
410
+ has_more: Optional[bool] = None
411
+ total_count: Optional[int] = None
412
+
413
+ @override
414
+ def _get_page_items(self) -> List[_T]:
415
+ scenarios = self.scenarios
416
+ if not scenarios:
417
+ return []
418
+ return scenarios
419
+
420
+ @override
421
+ def next_page_info(self) -> Optional[PageInfo]:
422
+ scenarios = self.scenarios
423
+ if not scenarios:
424
+ return None
425
+
426
+ item = cast(Any, scenarios[-1])
427
+ if not isinstance(item, ScenariosCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
428
+ # TODO emit warning log
429
+ return None
430
+
431
+ return PageInfo(params={"starting_after": item.id})
432
+
433
+
434
+ class SyncScenarioRunsCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
435
+ runs: List[_T]
436
+ has_more: Optional[bool] = None
437
+ total_count: Optional[int] = None
438
+
439
+ @override
440
+ def _get_page_items(self) -> List[_T]:
441
+ runs = self.runs
442
+ if not runs:
443
+ return []
444
+ return runs
445
+
446
+ @override
447
+ def next_page_info(self) -> Optional[PageInfo]:
448
+ runs = self.runs
449
+ if not runs:
450
+ return None
451
+
452
+ item = cast(Any, runs[-1])
453
+ if not isinstance(item, ScenarioRunsCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
454
+ # TODO emit warning log
455
+ return None
456
+
457
+ return PageInfo(params={"starting_after": item.id})
458
+
459
+
460
+ class AsyncScenarioRunsCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
461
+ runs: List[_T]
462
+ has_more: Optional[bool] = None
463
+ total_count: Optional[int] = None
464
+
465
+ @override
466
+ def _get_page_items(self) -> List[_T]:
467
+ runs = self.runs
468
+ if not runs:
469
+ return []
470
+ return runs
471
+
472
+ @override
473
+ def next_page_info(self) -> Optional[PageInfo]:
474
+ runs = self.runs
475
+ if not runs:
476
+ return None
477
+
478
+ item = cast(Any, runs[-1])
479
+ if not isinstance(item, ScenarioRunsCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
480
+ # TODO emit warning log
481
+ return None
482
+
483
+ return PageInfo(params={"starting_after": item.id})
@@ -14,7 +14,12 @@ from .runs import (
14
14
  RunsResourceWithStreamingResponse,
15
15
  AsyncRunsResourceWithStreamingResponse,
16
16
  )
17
- from ...types import benchmark_list_params, benchmark_create_params, benchmark_start_run_params
17
+ from ...types import (
18
+ benchmark_list_params,
19
+ benchmark_create_params,
20
+ benchmark_start_run_params,
21
+ benchmark_list_public_params,
22
+ )
18
23
  from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
19
24
  from ..._utils import (
20
25
  maybe_transform,
@@ -28,10 +33,10 @@ from ..._response import (
28
33
  async_to_raw_response_wrapper,
29
34
  async_to_streamed_response_wrapper,
30
35
  )
31
- from ..._base_client import make_request_options
36
+ from ...pagination import SyncBenchmarksCursorIDPage, AsyncBenchmarksCursorIDPage
37
+ from ..._base_client import AsyncPaginator, make_request_options
32
38
  from ...types.benchmark_view import BenchmarkView
33
39
  from ...types.benchmark_run_view import BenchmarkRunView
34
- from ...types.benchmark_list_view import BenchmarkListView
35
40
 
36
41
  __all__ = ["BenchmarksResource", "AsyncBenchmarksResource"]
37
42
 
@@ -147,7 +152,6 @@ class BenchmarksResource(SyncAPIResource):
147
152
  self,
148
153
  *,
149
154
  limit: int | NotGiven = NOT_GIVEN,
150
- public: bool | NotGiven = NOT_GIVEN,
151
155
  starting_after: str | NotGiven = NOT_GIVEN,
152
156
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
153
157
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -155,16 +159,13 @@ class BenchmarksResource(SyncAPIResource):
155
159
  extra_query: Query | None = None,
156
160
  extra_body: Body | None = None,
157
161
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
158
- ) -> BenchmarkListView:
162
+ ) -> SyncBenchmarksCursorIDPage[BenchmarkView]:
159
163
  """
160
164
  List all Benchmarks matching filter.
161
165
 
162
166
  Args:
163
167
  limit: The limit of items to return. Default is 20.
164
168
 
165
- public: List public benchmarks, e.g. SWE-bench. Defaults to false, i.e. only
166
- user-defined benchmarks are listed.
167
-
168
169
  starting_after: Load the next page of data starting after the item with the given ID.
169
170
 
170
171
  extra_headers: Send extra headers
@@ -175,8 +176,9 @@ class BenchmarksResource(SyncAPIResource):
175
176
 
176
177
  timeout: Override the client-level default timeout for this request, in seconds
177
178
  """
178
- return self._get(
179
+ return self._get_api_list(
179
180
  "/v1/benchmarks",
181
+ page=SyncBenchmarksCursorIDPage[BenchmarkView],
180
182
  options=make_request_options(
181
183
  extra_headers=extra_headers,
182
184
  extra_query=extra_query,
@@ -185,13 +187,59 @@ class BenchmarksResource(SyncAPIResource):
185
187
  query=maybe_transform(
186
188
  {
187
189
  "limit": limit,
188
- "public": public,
189
190
  "starting_after": starting_after,
190
191
  },
191
192
  benchmark_list_params.BenchmarkListParams,
192
193
  ),
193
194
  ),
194
- cast_to=BenchmarkListView,
195
+ model=BenchmarkView,
196
+ )
197
+
198
+ def list_public(
199
+ self,
200
+ *,
201
+ limit: int | NotGiven = NOT_GIVEN,
202
+ starting_after: str | NotGiven = NOT_GIVEN,
203
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
204
+ # The extra values given here take precedence over values defined on the client or passed to this method.
205
+ extra_headers: Headers | None = None,
206
+ extra_query: Query | None = None,
207
+ extra_body: Body | None = None,
208
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
209
+ ) -> SyncBenchmarksCursorIDPage[BenchmarkView]:
210
+ """
211
+ List all public benchmarks matching filter.
212
+
213
+ Args:
214
+ limit: The limit of items to return. Default is 20.
215
+
216
+ starting_after: Load the next page of data starting after the item with the given ID.
217
+
218
+ extra_headers: Send extra headers
219
+
220
+ extra_query: Add additional query parameters to the request
221
+
222
+ extra_body: Add additional JSON properties to the request
223
+
224
+ timeout: Override the client-level default timeout for this request, in seconds
225
+ """
226
+ return self._get_api_list(
227
+ "/v1/benchmarks/list_public",
228
+ page=SyncBenchmarksCursorIDPage[BenchmarkView],
229
+ options=make_request_options(
230
+ extra_headers=extra_headers,
231
+ extra_query=extra_query,
232
+ extra_body=extra_body,
233
+ timeout=timeout,
234
+ query=maybe_transform(
235
+ {
236
+ "limit": limit,
237
+ "starting_after": starting_after,
238
+ },
239
+ benchmark_list_public_params.BenchmarkListPublicParams,
240
+ ),
241
+ ),
242
+ model=BenchmarkView,
195
243
  )
196
244
 
197
245
  def start_run(
@@ -352,11 +400,10 @@ class AsyncBenchmarksResource(AsyncAPIResource):
352
400
  cast_to=BenchmarkView,
353
401
  )
354
402
 
355
- async def list(
403
+ def list(
356
404
  self,
357
405
  *,
358
406
  limit: int | NotGiven = NOT_GIVEN,
359
- public: bool | NotGiven = NOT_GIVEN,
360
407
  starting_after: str | NotGiven = NOT_GIVEN,
361
408
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
362
409
  # The extra values given here take precedence over values defined on the client or passed to this method.
@@ -364,16 +411,13 @@ class AsyncBenchmarksResource(AsyncAPIResource):
364
411
  extra_query: Query | None = None,
365
412
  extra_body: Body | None = None,
366
413
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
367
- ) -> BenchmarkListView:
414
+ ) -> AsyncPaginator[BenchmarkView, AsyncBenchmarksCursorIDPage[BenchmarkView]]:
368
415
  """
369
416
  List all Benchmarks matching filter.
370
417
 
371
418
  Args:
372
419
  limit: The limit of items to return. Default is 20.
373
420
 
374
- public: List public benchmarks, e.g. SWE-bench. Defaults to false, i.e. only
375
- user-defined benchmarks are listed.
376
-
377
421
  starting_after: Load the next page of data starting after the item with the given ID.
378
422
 
379
423
  extra_headers: Send extra headers
@@ -384,23 +428,70 @@ class AsyncBenchmarksResource(AsyncAPIResource):
384
428
 
385
429
  timeout: Override the client-level default timeout for this request, in seconds
386
430
  """
387
- return await self._get(
431
+ return self._get_api_list(
388
432
  "/v1/benchmarks",
433
+ page=AsyncBenchmarksCursorIDPage[BenchmarkView],
389
434
  options=make_request_options(
390
435
  extra_headers=extra_headers,
391
436
  extra_query=extra_query,
392
437
  extra_body=extra_body,
393
438
  timeout=timeout,
394
- query=await async_maybe_transform(
439
+ query=maybe_transform(
395
440
  {
396
441
  "limit": limit,
397
- "public": public,
398
442
  "starting_after": starting_after,
399
443
  },
400
444
  benchmark_list_params.BenchmarkListParams,
401
445
  ),
402
446
  ),
403
- cast_to=BenchmarkListView,
447
+ model=BenchmarkView,
448
+ )
449
+
450
+ def list_public(
451
+ self,
452
+ *,
453
+ limit: int | NotGiven = NOT_GIVEN,
454
+ starting_after: str | NotGiven = NOT_GIVEN,
455
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
456
+ # The extra values given here take precedence over values defined on the client or passed to this method.
457
+ extra_headers: Headers | None = None,
458
+ extra_query: Query | None = None,
459
+ extra_body: Body | None = None,
460
+ timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
461
+ ) -> AsyncPaginator[BenchmarkView, AsyncBenchmarksCursorIDPage[BenchmarkView]]:
462
+ """
463
+ List all public benchmarks matching filter.
464
+
465
+ Args:
466
+ limit: The limit of items to return. Default is 20.
467
+
468
+ starting_after: Load the next page of data starting after the item with the given ID.
469
+
470
+ extra_headers: Send extra headers
471
+
472
+ extra_query: Add additional query parameters to the request
473
+
474
+ extra_body: Add additional JSON properties to the request
475
+
476
+ timeout: Override the client-level default timeout for this request, in seconds
477
+ """
478
+ return self._get_api_list(
479
+ "/v1/benchmarks/list_public",
480
+ page=AsyncBenchmarksCursorIDPage[BenchmarkView],
481
+ options=make_request_options(
482
+ extra_headers=extra_headers,
483
+ extra_query=extra_query,
484
+ extra_body=extra_body,
485
+ timeout=timeout,
486
+ query=maybe_transform(
487
+ {
488
+ "limit": limit,
489
+ "starting_after": starting_after,
490
+ },
491
+ benchmark_list_public_params.BenchmarkListPublicParams,
492
+ ),
493
+ ),
494
+ model=BenchmarkView,
404
495
  )
405
496
 
406
497
  async def start_run(
@@ -467,6 +558,9 @@ class BenchmarksResourceWithRawResponse:
467
558
  self.list = to_raw_response_wrapper(
468
559
  benchmarks.list,
469
560
  )
561
+ self.list_public = to_raw_response_wrapper(
562
+ benchmarks.list_public,
563
+ )
470
564
  self.start_run = to_raw_response_wrapper(
471
565
  benchmarks.start_run,
472
566
  )
@@ -489,6 +583,9 @@ class AsyncBenchmarksResourceWithRawResponse:
489
583
  self.list = async_to_raw_response_wrapper(
490
584
  benchmarks.list,
491
585
  )
586
+ self.list_public = async_to_raw_response_wrapper(
587
+ benchmarks.list_public,
588
+ )
492
589
  self.start_run = async_to_raw_response_wrapper(
493
590
  benchmarks.start_run,
494
591
  )
@@ -511,6 +608,9 @@ class BenchmarksResourceWithStreamingResponse:
511
608
  self.list = to_streamed_response_wrapper(
512
609
  benchmarks.list,
513
610
  )
611
+ self.list_public = to_streamed_response_wrapper(
612
+ benchmarks.list_public,
613
+ )
514
614
  self.start_run = to_streamed_response_wrapper(
515
615
  benchmarks.start_run,
516
616
  )
@@ -533,6 +633,9 @@ class AsyncBenchmarksResourceWithStreamingResponse:
533
633
  self.list = async_to_streamed_response_wrapper(
534
634
  benchmarks.list,
535
635
  )
636
+ self.list_public = async_to_streamed_response_wrapper(
637
+ benchmarks.list_public,
638
+ )
536
639
  self.start_run = async_to_streamed_response_wrapper(
537
640
  benchmarks.start_run,
538
641
  )