runloop-api-client 0.48.1__tar.gz → 0.49.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.
- runloop_api_client-0.49.0/.release-please-manifest.json +3 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/CHANGELOG.md +23 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/PKG-INFO +5 -5
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/README.md +3 -3
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/pyproject.toml +2 -2
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_base_client.py +9 -2
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +28 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/blueprints.py +24 -4
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/devboxes.py +31 -56
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/executions.py +27 -43
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/scenarios.py +27 -5
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_create_params.py +6 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_run_view.py +6 -0
- runloop_api_client-0.49.0/src/runloop_api_client/types/benchmark_start_run_params.py +32 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_update_params.py +6 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_view.py +6 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_build_parameters.py +7 -1
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_create_params.py +7 -1
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_preview_params.py +7 -1
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_view.py +3 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_inspection_details.py +3 -2
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_create_params.py +7 -1
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_run_view.py +6 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_start_run_params.py +15 -2
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_update_params.py +6 -2
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_view.py +8 -1
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/launch_parameters.py +3 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +3 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_executions.py +4 -4
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/scenarios/test_scorers.py +2 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_benchmarks.py +12 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_blueprints.py +8 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_devboxes.py +5 -7
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_scenarios.py +16 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_client.py +2 -2
- runloop_api_client-0.48.1/.release-please-manifest.json +0 -3
- runloop_api_client-0.48.1/src/runloop_api_client/types/benchmark_start_run_params.py +0 -19
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/.gitignore +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/CONTRIBUTING.md +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/LICENSE +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/SECURITY.md +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/api.md +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/bin/check-release-environment +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/bin/publish-pypi +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/examples/.keep +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/mypy.ini +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/noxfile.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/release-please-config.json +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/requirements-dev.lock +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/requirements.lock +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_computers.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_repositories.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/api_resources/test_secrets.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/conftest.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/sample_file.txt +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_extract_files.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_files.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_models.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_polling.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_qs.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_required_args.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_response.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_streaming.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_transform.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/tests/utils.py +0 -0
- {runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/uv.lock +0 -0
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.49.0 (2025-07-15)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.48.2...v0.49.0](https://github.com/runloopai/api-client-python/compare/v0.48.2...v0.49.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([6022768](https://github.com/runloopai/api-client-python/commit/60227681f91e9eabc2b8da030fc6ef61834ce761))
|
|
10
|
+
* **api:** api update ([27c4579](https://github.com/runloopai/api-client-python/commit/27c4579ac003a2e211c5b421a1cc4714f86c6e57))
|
|
11
|
+
* clean up environment call outs ([e3a125d](https://github.com/runloopai/api-client-python/commit/e3a125d0bde927ff142d1817ce4c40489a3217c0))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **client:** don't send Content-Type header on GET requests ([5d9b833](https://github.com/runloopai/api-client-python/commit/5d9b8330d37d53bb5c1e8393c5d9798323a0a2ca))
|
|
17
|
+
|
|
18
|
+
## 0.48.2 (2025-07-11)
|
|
19
|
+
|
|
20
|
+
Full Changelog: [v0.48.1...v0.48.2](https://github.com/runloopai/api-client-python/compare/v0.48.1...v0.48.2)
|
|
21
|
+
|
|
22
|
+
### Chores
|
|
23
|
+
|
|
24
|
+
* **readme:** fix version rendering on pypi ([73af53e](https://github.com/runloopai/api-client-python/commit/73af53e19889262ac445fc0789999873c411c35a))
|
|
25
|
+
|
|
3
26
|
## 0.48.1 (2025-07-10)
|
|
4
27
|
|
|
5
28
|
Full Changelog: [v0.48.0...v0.48.1](https://github.com/runloopai/api-client-python/compare/v0.48.0...v0.48.1)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.49.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
|
|
@@ -30,12 +30,13 @@ Requires-Dist: sniffio
|
|
|
30
30
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
31
31
|
Provides-Extra: aiohttp
|
|
32
32
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
33
|
-
Requires-Dist: httpx-aiohttp>=0.1.
|
|
33
|
+
Requires-Dist: httpx-aiohttp>=0.1.8; extra == 'aiohttp'
|
|
34
34
|
Description-Content-Type: text/markdown
|
|
35
35
|
|
|
36
36
|
# Runloop Python API library
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
<!-- prettier-ignore -->
|
|
39
|
+
[)](https://pypi.org/project/runloop_api_client/)
|
|
39
40
|
|
|
40
41
|
The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
|
|
41
42
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -113,7 +114,6 @@ pip install runloop_api_client[aiohttp]
|
|
|
113
114
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
114
115
|
|
|
115
116
|
```python
|
|
116
|
-
import os
|
|
117
117
|
import asyncio
|
|
118
118
|
from runloop_api_client import DefaultAioHttpClient
|
|
119
119
|
from runloop_api_client import AsyncRunloop
|
|
@@ -121,7 +121,7 @@ from runloop_api_client import AsyncRunloop
|
|
|
121
121
|
|
|
122
122
|
async def main() -> None:
|
|
123
123
|
async with AsyncRunloop(
|
|
124
|
-
bearer_token=
|
|
124
|
+
bearer_token="My Bearer Token",
|
|
125
125
|
http_client=DefaultAioHttpClient(),
|
|
126
126
|
) as client:
|
|
127
127
|
devbox_view = await client.devboxes.create()
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
# Runloop Python API library
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- prettier-ignore -->
|
|
4
|
+
[)](https://pypi.org/project/runloop_api_client/)
|
|
4
5
|
|
|
5
6
|
The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
|
|
6
7
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -78,7 +79,6 @@ pip install runloop_api_client[aiohttp]
|
|
|
78
79
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
79
80
|
|
|
80
81
|
```python
|
|
81
|
-
import os
|
|
82
82
|
import asyncio
|
|
83
83
|
from runloop_api_client import DefaultAioHttpClient
|
|
84
84
|
from runloop_api_client import AsyncRunloop
|
|
@@ -86,7 +86,7 @@ from runloop_api_client import AsyncRunloop
|
|
|
86
86
|
|
|
87
87
|
async def main() -> None:
|
|
88
88
|
async with AsyncRunloop(
|
|
89
|
-
bearer_token=
|
|
89
|
+
bearer_token="My Bearer Token",
|
|
90
90
|
http_client=DefaultAioHttpClient(),
|
|
91
91
|
) as client:
|
|
92
92
|
devbox_view = await client.devboxes.create()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "runloop_api_client"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.49.0"
|
|
4
4
|
description = "The official Python library for the runloop API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "MIT"
|
|
@@ -39,7 +39,7 @@ Homepage = "https://github.com/runloopai/api-client-python"
|
|
|
39
39
|
Repository = "https://github.com/runloopai/api-client-python"
|
|
40
40
|
|
|
41
41
|
[project.optional-dependencies]
|
|
42
|
-
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.
|
|
42
|
+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.8"]
|
|
43
43
|
|
|
44
44
|
[tool.rye]
|
|
45
45
|
managed = true
|
{runloop_api_client-0.48.1 → runloop_api_client-0.49.0}/src/runloop_api_client/_base_client.py
RENAMED
|
@@ -529,6 +529,15 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
529
529
|
# work around https://github.com/encode/httpx/discussions/2880
|
|
530
530
|
kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
|
|
531
531
|
|
|
532
|
+
is_body_allowed = options.method.lower() != "get"
|
|
533
|
+
|
|
534
|
+
if is_body_allowed:
|
|
535
|
+
kwargs["json"] = json_data if is_given(json_data) else None
|
|
536
|
+
kwargs["files"] = files
|
|
537
|
+
else:
|
|
538
|
+
headers.pop("Content-Type", None)
|
|
539
|
+
kwargs.pop("data", None)
|
|
540
|
+
|
|
532
541
|
# TODO: report this error to httpx
|
|
533
542
|
return self._client.build_request( # pyright: ignore[reportUnknownMemberType]
|
|
534
543
|
headers=headers,
|
|
@@ -540,8 +549,6 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
540
549
|
# so that passing a `TypedDict` doesn't cause an error.
|
|
541
550
|
# https://github.com/microsoft/pyright/issues/3526#event-6715453066
|
|
542
551
|
params=self.qs.stringify(cast(Mapping[str, Any], params)) if params else None,
|
|
543
|
-
json=json_data if is_given(json_data) else None,
|
|
544
|
-
files=files,
|
|
545
552
|
**kwargs,
|
|
546
553
|
)
|
|
547
554
|
|
|
@@ -70,6 +70,7 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
70
70
|
*,
|
|
71
71
|
name: str,
|
|
72
72
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
73
|
+
required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
73
74
|
scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
74
75
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
75
76
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -87,6 +88,9 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
87
88
|
|
|
88
89
|
metadata: User defined metadata to attach to the benchmark for organization.
|
|
89
90
|
|
|
91
|
+
required_environment_variables: Environment variables required to run the benchmark. If these variables are not
|
|
92
|
+
supplied, the benchmark will fail to start
|
|
93
|
+
|
|
90
94
|
scenario_ids: The Scenario IDs that make up the Benchmark.
|
|
91
95
|
|
|
92
96
|
extra_headers: Send extra headers
|
|
@@ -105,6 +109,7 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
105
109
|
{
|
|
106
110
|
"name": name,
|
|
107
111
|
"metadata": metadata,
|
|
112
|
+
"required_environment_variables": required_environment_variables,
|
|
108
113
|
"scenario_ids": scenario_ids,
|
|
109
114
|
},
|
|
110
115
|
benchmark_create_params.BenchmarkCreateParams,
|
|
@@ -158,6 +163,7 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
158
163
|
*,
|
|
159
164
|
name: str,
|
|
160
165
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
166
|
+
required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
161
167
|
scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
162
168
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
163
169
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -175,6 +181,9 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
175
181
|
|
|
176
182
|
metadata: User defined metadata to attach to the benchmark for organization.
|
|
177
183
|
|
|
184
|
+
required_environment_variables: Environment variables required to run the benchmark. If these variables are not
|
|
185
|
+
supplied, the benchmark will fail to start
|
|
186
|
+
|
|
178
187
|
scenario_ids: The Scenario IDs that make up the Benchmark.
|
|
179
188
|
|
|
180
189
|
extra_headers: Send extra headers
|
|
@@ -195,6 +204,7 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
195
204
|
{
|
|
196
205
|
"name": name,
|
|
197
206
|
"metadata": metadata,
|
|
207
|
+
"required_environment_variables": required_environment_variables,
|
|
198
208
|
"scenario_ids": scenario_ids,
|
|
199
209
|
},
|
|
200
210
|
benchmark_update_params.BenchmarkUpdateParams,
|
|
@@ -358,6 +368,7 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
358
368
|
benchmark_id: str,
|
|
359
369
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
360
370
|
run_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
371
|
+
run_profile: Optional[benchmark_start_run_params.RunProfile] | NotGiven = NOT_GIVEN,
|
|
361
372
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
362
373
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
363
374
|
extra_headers: Headers | None = None,
|
|
@@ -376,6 +387,8 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
376
387
|
|
|
377
388
|
run_name: Display name of the run.
|
|
378
389
|
|
|
390
|
+
run_profile: Runtime configuration to use for this benchmark run
|
|
391
|
+
|
|
379
392
|
extra_headers: Send extra headers
|
|
380
393
|
|
|
381
394
|
extra_query: Add additional query parameters to the request
|
|
@@ -393,6 +406,7 @@ class BenchmarksResource(SyncAPIResource):
|
|
|
393
406
|
"benchmark_id": benchmark_id,
|
|
394
407
|
"metadata": metadata,
|
|
395
408
|
"run_name": run_name,
|
|
409
|
+
"run_profile": run_profile,
|
|
396
410
|
},
|
|
397
411
|
benchmark_start_run_params.BenchmarkStartRunParams,
|
|
398
412
|
),
|
|
@@ -436,6 +450,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
436
450
|
*,
|
|
437
451
|
name: str,
|
|
438
452
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
453
|
+
required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
439
454
|
scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
440
455
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
441
456
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -453,6 +468,9 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
453
468
|
|
|
454
469
|
metadata: User defined metadata to attach to the benchmark for organization.
|
|
455
470
|
|
|
471
|
+
required_environment_variables: Environment variables required to run the benchmark. If these variables are not
|
|
472
|
+
supplied, the benchmark will fail to start
|
|
473
|
+
|
|
456
474
|
scenario_ids: The Scenario IDs that make up the Benchmark.
|
|
457
475
|
|
|
458
476
|
extra_headers: Send extra headers
|
|
@@ -471,6 +489,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
471
489
|
{
|
|
472
490
|
"name": name,
|
|
473
491
|
"metadata": metadata,
|
|
492
|
+
"required_environment_variables": required_environment_variables,
|
|
474
493
|
"scenario_ids": scenario_ids,
|
|
475
494
|
},
|
|
476
495
|
benchmark_create_params.BenchmarkCreateParams,
|
|
@@ -524,6 +543,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
524
543
|
*,
|
|
525
544
|
name: str,
|
|
526
545
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
546
|
+
required_environment_variables: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
527
547
|
scenario_ids: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
528
548
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
529
549
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -541,6 +561,9 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
541
561
|
|
|
542
562
|
metadata: User defined metadata to attach to the benchmark for organization.
|
|
543
563
|
|
|
564
|
+
required_environment_variables: Environment variables required to run the benchmark. If these variables are not
|
|
565
|
+
supplied, the benchmark will fail to start
|
|
566
|
+
|
|
544
567
|
scenario_ids: The Scenario IDs that make up the Benchmark.
|
|
545
568
|
|
|
546
569
|
extra_headers: Send extra headers
|
|
@@ -561,6 +584,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
561
584
|
{
|
|
562
585
|
"name": name,
|
|
563
586
|
"metadata": metadata,
|
|
587
|
+
"required_environment_variables": required_environment_variables,
|
|
564
588
|
"scenario_ids": scenario_ids,
|
|
565
589
|
},
|
|
566
590
|
benchmark_update_params.BenchmarkUpdateParams,
|
|
@@ -724,6 +748,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
724
748
|
benchmark_id: str,
|
|
725
749
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
726
750
|
run_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
751
|
+
run_profile: Optional[benchmark_start_run_params.RunProfile] | NotGiven = NOT_GIVEN,
|
|
727
752
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
728
753
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
729
754
|
extra_headers: Headers | None = None,
|
|
@@ -742,6 +767,8 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
742
767
|
|
|
743
768
|
run_name: Display name of the run.
|
|
744
769
|
|
|
770
|
+
run_profile: Runtime configuration to use for this benchmark run
|
|
771
|
+
|
|
745
772
|
extra_headers: Send extra headers
|
|
746
773
|
|
|
747
774
|
extra_query: Add additional query parameters to the request
|
|
@@ -759,6 +786,7 @@ class AsyncBenchmarksResource(AsyncAPIResource):
|
|
|
759
786
|
"benchmark_id": benchmark_id,
|
|
760
787
|
"metadata": metadata,
|
|
761
788
|
"run_name": run_name,
|
|
789
|
+
"run_profile": run_profile,
|
|
762
790
|
},
|
|
763
791
|
benchmark_start_run_params.BenchmarkStartRunParams,
|
|
764
792
|
),
|
|
@@ -55,6 +55,7 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
55
55
|
self,
|
|
56
56
|
*,
|
|
57
57
|
name: str,
|
|
58
|
+
base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
58
59
|
code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
|
|
59
60
|
dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
|
|
60
61
|
file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
@@ -78,11 +79,14 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
78
79
|
Args:
|
|
79
80
|
name: Name of the Blueprint.
|
|
80
81
|
|
|
82
|
+
base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
|
|
83
|
+
build.
|
|
84
|
+
|
|
81
85
|
code_mounts: A list of code mounts to be included in the Blueprint.
|
|
82
86
|
|
|
83
87
|
dockerfile: Dockerfile contents to be used to build the Blueprint.
|
|
84
88
|
|
|
85
|
-
file_mounts: (Optional) Map of paths and file contents to write before setup
|
|
89
|
+
file_mounts: (Optional) Map of paths and file contents to write before setup.
|
|
86
90
|
|
|
87
91
|
launch_parameters: Parameters to configure your Devbox at launch time.
|
|
88
92
|
|
|
@@ -103,6 +107,7 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
103
107
|
body=maybe_transform(
|
|
104
108
|
{
|
|
105
109
|
"name": name,
|
|
110
|
+
"base_blueprint_id": base_blueprint_id,
|
|
106
111
|
"code_mounts": code_mounts,
|
|
107
112
|
"dockerfile": dockerfile,
|
|
108
113
|
"file_mounts": file_mounts,
|
|
@@ -395,6 +400,7 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
395
400
|
self,
|
|
396
401
|
*,
|
|
397
402
|
name: str,
|
|
403
|
+
base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
398
404
|
code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
|
|
399
405
|
dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
|
|
400
406
|
file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
@@ -416,11 +422,14 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
416
422
|
Args:
|
|
417
423
|
name: Name of the Blueprint.
|
|
418
424
|
|
|
425
|
+
base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
|
|
426
|
+
build.
|
|
427
|
+
|
|
419
428
|
code_mounts: A list of code mounts to be included in the Blueprint.
|
|
420
429
|
|
|
421
430
|
dockerfile: Dockerfile contents to be used to build the Blueprint.
|
|
422
431
|
|
|
423
|
-
file_mounts: (Optional) Map of paths and file contents to write before setup
|
|
432
|
+
file_mounts: (Optional) Map of paths and file contents to write before setup.
|
|
424
433
|
|
|
425
434
|
launch_parameters: Parameters to configure your Devbox at launch time.
|
|
426
435
|
|
|
@@ -441,6 +450,7 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
441
450
|
body=maybe_transform(
|
|
442
451
|
{
|
|
443
452
|
"name": name,
|
|
453
|
+
"base_blueprint_id": base_blueprint_id,
|
|
444
454
|
"code_mounts": code_mounts,
|
|
445
455
|
"dockerfile": dockerfile,
|
|
446
456
|
"file_mounts": file_mounts,
|
|
@@ -484,6 +494,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
484
494
|
self,
|
|
485
495
|
*,
|
|
486
496
|
name: str,
|
|
497
|
+
base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
487
498
|
code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
|
|
488
499
|
dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
|
|
489
500
|
file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
@@ -507,11 +518,14 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
507
518
|
Args:
|
|
508
519
|
name: Name of the Blueprint.
|
|
509
520
|
|
|
521
|
+
base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
|
|
522
|
+
build.
|
|
523
|
+
|
|
510
524
|
code_mounts: A list of code mounts to be included in the Blueprint.
|
|
511
525
|
|
|
512
526
|
dockerfile: Dockerfile contents to be used to build the Blueprint.
|
|
513
527
|
|
|
514
|
-
file_mounts: (Optional) Map of paths and file contents to write before setup
|
|
528
|
+
file_mounts: (Optional) Map of paths and file contents to write before setup.
|
|
515
529
|
|
|
516
530
|
launch_parameters: Parameters to configure your Devbox at launch time.
|
|
517
531
|
|
|
@@ -532,6 +546,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
532
546
|
body=await async_maybe_transform(
|
|
533
547
|
{
|
|
534
548
|
"name": name,
|
|
549
|
+
"base_blueprint_id": base_blueprint_id,
|
|
535
550
|
"code_mounts": code_mounts,
|
|
536
551
|
"dockerfile": dockerfile,
|
|
537
552
|
"file_mounts": file_mounts,
|
|
@@ -824,6 +839,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
824
839
|
self,
|
|
825
840
|
*,
|
|
826
841
|
name: str,
|
|
842
|
+
base_blueprint_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
827
843
|
code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
|
|
828
844
|
dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
|
|
829
845
|
file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
@@ -845,11 +861,14 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
845
861
|
Args:
|
|
846
862
|
name: Name of the Blueprint.
|
|
847
863
|
|
|
864
|
+
base_blueprint_id: (Optional) ID of previously built blueprint to use as a base blueprint for this
|
|
865
|
+
build.
|
|
866
|
+
|
|
848
867
|
code_mounts: A list of code mounts to be included in the Blueprint.
|
|
849
868
|
|
|
850
869
|
dockerfile: Dockerfile contents to be used to build the Blueprint.
|
|
851
870
|
|
|
852
|
-
file_mounts: (Optional) Map of paths and file contents to write before setup
|
|
871
|
+
file_mounts: (Optional) Map of paths and file contents to write before setup.
|
|
853
872
|
|
|
854
873
|
launch_parameters: Parameters to configure your Devbox at launch time.
|
|
855
874
|
|
|
@@ -870,6 +889,7 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
870
889
|
body=await async_maybe_transform(
|
|
871
890
|
{
|
|
872
891
|
"name": name,
|
|
892
|
+
"base_blueprint_id": base_blueprint_id,
|
|
873
893
|
"code_mounts": code_mounts,
|
|
874
894
|
"dockerfile": dockerfile,
|
|
875
895
|
"file_mounts": file_mounts,
|
|
@@ -88,7 +88,7 @@ from ...pagination import (
|
|
|
88
88
|
SyncDiskSnapshotsCursorIDPage,
|
|
89
89
|
AsyncDiskSnapshotsCursorIDPage,
|
|
90
90
|
)
|
|
91
|
-
from ..._exceptions import RunloopError, APIStatusError
|
|
91
|
+
from ..._exceptions import RunloopError, APIStatusError, APITimeoutError
|
|
92
92
|
from ...lib.polling import PollingConfig, poll_until
|
|
93
93
|
from ..._base_client import AsyncPaginator, make_request_options
|
|
94
94
|
from .disk_snapshots import (
|
|
@@ -115,6 +115,18 @@ __all__ = ["DevboxesResource", "AsyncDevboxesResource"]
|
|
|
115
115
|
DEVBOX_BOOTING_STATES = frozenset(("provisioning", "initializing"))
|
|
116
116
|
|
|
117
117
|
|
|
118
|
+
def placeholder_devbox_view(id: str) -> DevboxView:
|
|
119
|
+
return DevboxView(
|
|
120
|
+
id=id,
|
|
121
|
+
status="provisioning",
|
|
122
|
+
capabilities=[],
|
|
123
|
+
create_time_ms=0,
|
|
124
|
+
launch_parameters=SharedLaunchParameters(),
|
|
125
|
+
metadata={},
|
|
126
|
+
state_transitions=[],
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
|
|
118
130
|
class DevboxesResource(SyncAPIResource):
|
|
119
131
|
@cached_property
|
|
120
132
|
def disk_snapshots(self) -> DiskSnapshotsResource:
|
|
@@ -360,13 +372,8 @@ class DevboxesResource(SyncAPIResource):
|
|
|
360
372
|
self,
|
|
361
373
|
id: str,
|
|
362
374
|
*,
|
|
375
|
+
# Use polling_config to configure the "long" polling behavior.
|
|
363
376
|
polling_config: PollingConfig | None = None,
|
|
364
|
-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
365
|
-
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
366
|
-
extra_headers: Headers | None = None,
|
|
367
|
-
extra_query: Query | None = None,
|
|
368
|
-
extra_body: Body | None = None,
|
|
369
|
-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
370
377
|
) -> DevboxView:
|
|
371
378
|
"""Wait for a devbox to be in running state.
|
|
372
379
|
|
|
@@ -392,28 +399,19 @@ class DevboxesResource(SyncAPIResource):
|
|
|
392
399
|
return self._post(
|
|
393
400
|
f"/v1/devboxes/{id}/wait_for_status",
|
|
394
401
|
body={"statuses": ["running", "failure"]},
|
|
395
|
-
options=make_request_options(
|
|
396
|
-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
397
|
-
),
|
|
398
402
|
cast_to=DevboxView,
|
|
399
403
|
)
|
|
400
404
|
|
|
401
405
|
def handle_timeout_error(error: Exception) -> DevboxView:
|
|
402
|
-
# Handle
|
|
403
|
-
if isinstance(error,
|
|
406
|
+
# Handle timeout errors by returning current devbox state to continue polling
|
|
407
|
+
if isinstance(error, APITimeoutError) or (
|
|
408
|
+
isinstance(error, APIStatusError) and error.response.status_code == 408
|
|
409
|
+
):
|
|
404
410
|
# Return a placeholder result to continue polling
|
|
405
|
-
return
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
create_time_ms=0,
|
|
410
|
-
launch_parameters=SharedLaunchParameters(),
|
|
411
|
-
metadata={},
|
|
412
|
-
state_transitions=[],
|
|
413
|
-
)
|
|
414
|
-
else:
|
|
415
|
-
# Re-raise other errors to stop polling
|
|
416
|
-
raise error
|
|
411
|
+
return placeholder_devbox_view(id)
|
|
412
|
+
|
|
413
|
+
# Re-raise other errors to stop polling
|
|
414
|
+
raise error
|
|
417
415
|
|
|
418
416
|
def is_done_booting(devbox: DevboxView) -> bool:
|
|
419
417
|
return devbox.status not in DEVBOX_BOOTING_STATES
|
|
@@ -495,10 +493,6 @@ class DevboxesResource(SyncAPIResource):
|
|
|
495
493
|
return self.await_running(
|
|
496
494
|
devbox.id,
|
|
497
495
|
polling_config=polling_config,
|
|
498
|
-
extra_headers=extra_headers,
|
|
499
|
-
extra_query=extra_query,
|
|
500
|
-
extra_body=extra_body,
|
|
501
|
-
timeout=timeout,
|
|
502
496
|
)
|
|
503
497
|
|
|
504
498
|
def list(
|
|
@@ -1662,23 +1656,14 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
1662
1656
|
return await self.await_running(
|
|
1663
1657
|
devbox.id,
|
|
1664
1658
|
polling_config=polling_config,
|
|
1665
|
-
extra_headers=extra_headers,
|
|
1666
|
-
extra_query=extra_query,
|
|
1667
|
-
extra_body=extra_body,
|
|
1668
|
-
timeout=timeout,
|
|
1669
1659
|
)
|
|
1670
1660
|
|
|
1671
1661
|
async def await_running(
|
|
1672
1662
|
self,
|
|
1673
1663
|
id: str,
|
|
1674
1664
|
*,
|
|
1665
|
+
# Use polling_config to configure the "long" polling behavior.
|
|
1675
1666
|
polling_config: PollingConfig | None = None,
|
|
1676
|
-
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
1677
|
-
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
1678
|
-
extra_headers: Headers | None = None,
|
|
1679
|
-
extra_query: Query | None = None,
|
|
1680
|
-
extra_body: Body | None = None,
|
|
1681
|
-
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
1682
1667
|
) -> DevboxView:
|
|
1683
1668
|
"""Wait for a devbox to be in running state.
|
|
1684
1669
|
|
|
@@ -1705,26 +1690,16 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
1705
1690
|
return await self._post(
|
|
1706
1691
|
f"/v1/devboxes/{id}/wait_for_status",
|
|
1707
1692
|
body={"statuses": ["running", "failure"]},
|
|
1708
|
-
options=make_request_options(
|
|
1709
|
-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
|
|
1710
|
-
),
|
|
1711
1693
|
cast_to=DevboxView,
|
|
1712
1694
|
)
|
|
1713
|
-
except APIStatusError as error:
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
launch_parameters=SharedLaunchParameters(),
|
|
1722
|
-
metadata={},
|
|
1723
|
-
state_transitions=[],
|
|
1724
|
-
)
|
|
1725
|
-
else:
|
|
1726
|
-
# Re-raise other errors to stop polling
|
|
1727
|
-
raise
|
|
1695
|
+
except (APITimeoutError, APIStatusError) as error:
|
|
1696
|
+
# Handle timeout errors by returning current devbox state to continue polling
|
|
1697
|
+
if isinstance(error, APITimeoutError) or error.response.status_code == 408:
|
|
1698
|
+
# Return a placeholder result to continue polling
|
|
1699
|
+
return placeholder_devbox_view(id)
|
|
1700
|
+
|
|
1701
|
+
# Re-raise other errors to stop polling
|
|
1702
|
+
raise
|
|
1728
1703
|
|
|
1729
1704
|
def is_done_booting(devbox: DevboxView) -> bool:
|
|
1730
1705
|
return devbox.status not in DEVBOX_BOOTING_STATES
|