runloop-api-client 0.47.0__tar.gz → 0.48.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.48.0/.release-please-manifest.json +3 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/CHANGELOG.md +13 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/PKG-INFO +1 -1
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/pyproject.toml +1 -1
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/requirements-dev.lock +1 -1
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/requirements.lock +1 -1
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/lib/polling.py +10 -1
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/lib/polling_async.py +10 -1
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/devboxes.py +70 -31
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/executions.py +2 -4
- runloop_api_client-0.47.0/.release-please-manifest.json +0 -3
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/.gitignore +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/CONTRIBUTING.md +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/LICENSE +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/README.md +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/SECURITY.md +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/api.md +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/bin/check-release-environment +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/bin/publish-pypi +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/examples/.keep +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/mypy.ini +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/noxfile.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/release-please-config.json +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_base_client.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/blueprints.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/scenarios/scenarios.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/devboxes/test_computers.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/devboxes/test_executions.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/test_benchmarks.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/test_blueprints.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/test_devboxes.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/test_repositories.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/test_scenarios.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/api_resources/test_secrets.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/conftest.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/sample_file.txt +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_client.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_extract_files.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_files.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_models.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_qs.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_required_args.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_response.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_streaming.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_transform.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/tests/utils.py +0 -0
- {runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/uv.lock +0 -0
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.48.0 (2025-07-09)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.47.1...v0.48.0](https://github.com/runloopai/api-client-python/compare/v0.47.1...v0.48.0)
|
|
6
|
+
|
|
7
|
+
## 0.47.1 (2025-07-08)
|
|
8
|
+
|
|
9
|
+
Full Changelog: [v0.47.0...v0.47.1](https://github.com/runloopai/api-client-python/compare/v0.47.0...v0.47.1)
|
|
10
|
+
|
|
11
|
+
### Chores
|
|
12
|
+
|
|
13
|
+
* **ci:** change upload type ([e8af7c3](https://github.com/runloopai/api-client-python/commit/e8af7c350cf848f0255ffc3ebcaeb339ebcb8ba9))
|
|
14
|
+
* **internal:** codegen related update ([402126e](https://github.com/runloopai/api-client-python/commit/402126e45fbb32556f59b1504ded9581910ee7dd))
|
|
15
|
+
|
|
3
16
|
## 0.47.0 (2025-07-01)
|
|
4
17
|
|
|
5
18
|
Full Changelog: [v0.46.0...v0.47.0](https://github.com/runloopai/api-client-python/compare/v0.46.0...v0.47.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.48.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
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/lib/polling.py
RENAMED
|
@@ -21,6 +21,7 @@ def poll_until(
|
|
|
21
21
|
retriever: Callable[[], T],
|
|
22
22
|
is_terminal: Callable[[T], bool],
|
|
23
23
|
config: Optional[PollingConfig] = None,
|
|
24
|
+
on_error: Optional[Callable[[Exception], T]] = None,
|
|
24
25
|
) -> T:
|
|
25
26
|
"""
|
|
26
27
|
Poll until a condition is met or timeout/max attempts are reached.
|
|
@@ -29,6 +30,8 @@ def poll_until(
|
|
|
29
30
|
retriever: Callable that returns the object to check
|
|
30
31
|
is_terminal: Callable that returns True when polling should stop
|
|
31
32
|
config: Optional polling configuration
|
|
33
|
+
on_error: Optional error handler that can return a value to continue polling
|
|
34
|
+
or re-raise the exception to stop polling
|
|
32
35
|
|
|
33
36
|
Returns:
|
|
34
37
|
The final state of the polled object
|
|
@@ -44,7 +47,13 @@ def poll_until(
|
|
|
44
47
|
last_result = None
|
|
45
48
|
|
|
46
49
|
while True:
|
|
47
|
-
|
|
50
|
+
try:
|
|
51
|
+
last_result = retriever()
|
|
52
|
+
except Exception as e:
|
|
53
|
+
if on_error is not None:
|
|
54
|
+
last_result = on_error(e)
|
|
55
|
+
else:
|
|
56
|
+
raise
|
|
48
57
|
|
|
49
58
|
if is_terminal(last_result):
|
|
50
59
|
return last_result
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/lib/polling_async.py
RENAMED
|
@@ -10,6 +10,7 @@ async def async_poll_until(
|
|
|
10
10
|
retriever: Callable[[], Awaitable[T]],
|
|
11
11
|
is_terminal: Callable[[T], bool],
|
|
12
12
|
config: Optional[PollingConfig] = None,
|
|
13
|
+
on_error: Optional[Callable[[Exception], T]] = None,
|
|
13
14
|
) -> T:
|
|
14
15
|
"""
|
|
15
16
|
Poll until a condition is met or timeout/max attempts are reached.
|
|
@@ -18,6 +19,8 @@ async def async_poll_until(
|
|
|
18
19
|
retriever: Async or sync callable that returns the object to check
|
|
19
20
|
is_terminal: Callable that returns True when polling should stop
|
|
20
21
|
config: Optional polling configuration
|
|
22
|
+
on_error: Optional error handler that can return a value to continue polling
|
|
23
|
+
or re-raise the exception to stop polling
|
|
21
24
|
|
|
22
25
|
Returns:
|
|
23
26
|
The final state of the polled object
|
|
@@ -33,7 +36,13 @@ async def async_poll_until(
|
|
|
33
36
|
last_result: Union[T, None] = None
|
|
34
37
|
|
|
35
38
|
while True:
|
|
36
|
-
|
|
39
|
+
try:
|
|
40
|
+
last_result = await retriever()
|
|
41
|
+
except Exception as e:
|
|
42
|
+
if on_error is not None:
|
|
43
|
+
last_result = on_error(e)
|
|
44
|
+
else:
|
|
45
|
+
raise
|
|
37
46
|
|
|
38
47
|
if is_terminal(last_result):
|
|
39
48
|
return last_result
|
|
@@ -88,7 +88,7 @@ from ...pagination import (
|
|
|
88
88
|
SyncDiskSnapshotsCursorIDPage,
|
|
89
89
|
AsyncDiskSnapshotsCursorIDPage,
|
|
90
90
|
)
|
|
91
|
-
from ..._exceptions import RunloopError
|
|
91
|
+
from ..._exceptions import RunloopError, APIStatusError
|
|
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 (
|
|
@@ -103,6 +103,7 @@ from ...lib.polling_async import async_poll_until
|
|
|
103
103
|
from ...types.devbox_view import DevboxView
|
|
104
104
|
from ...types.devbox_tunnel_view import DevboxTunnelView
|
|
105
105
|
from ...types.devbox_snapshot_view import DevboxSnapshotView
|
|
106
|
+
from ...types.shared.launch_parameters import LaunchParameters as SharedLaunchParameters
|
|
106
107
|
from ...types.devbox_execution_detail_view import DevboxExecutionDetailView
|
|
107
108
|
from ...types.devbox_create_ssh_key_response import DevboxCreateSSHKeyResponse
|
|
108
109
|
from ...types.shared_params.launch_parameters import LaunchParameters
|
|
@@ -111,7 +112,8 @@ from ...types.shared_params.code_mount_parameters import CodeMountParameters
|
|
|
111
112
|
|
|
112
113
|
__all__ = ["DevboxesResource", "AsyncDevboxesResource"]
|
|
113
114
|
|
|
114
|
-
DEVBOX_BOOTING_STATES = frozenset((
|
|
115
|
+
DEVBOX_BOOTING_STATES = frozenset(("provisioning", "initializing"))
|
|
116
|
+
|
|
115
117
|
|
|
116
118
|
class DevboxesResource(SyncAPIResource):
|
|
117
119
|
@cached_property
|
|
@@ -357,7 +359,7 @@ class DevboxesResource(SyncAPIResource):
|
|
|
357
359
|
def await_running(
|
|
358
360
|
self,
|
|
359
361
|
id: str,
|
|
360
|
-
*,
|
|
362
|
+
*,
|
|
361
363
|
polling_config: PollingConfig | None = None,
|
|
362
364
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
363
365
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -367,7 +369,7 @@ class DevboxesResource(SyncAPIResource):
|
|
|
367
369
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
368
370
|
) -> DevboxView:
|
|
369
371
|
"""Wait for a devbox to be in running state.
|
|
370
|
-
|
|
372
|
+
|
|
371
373
|
Args:
|
|
372
374
|
id: The ID of the devbox to wait for
|
|
373
375
|
config: Optional polling configuration
|
|
@@ -383,24 +385,43 @@ class DevboxesResource(SyncAPIResource):
|
|
|
383
385
|
PollingTimeout: If polling times out before devbox is running
|
|
384
386
|
RunloopError: If devbox enters a non-running terminal state
|
|
385
387
|
"""
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
388
|
+
|
|
389
|
+
def wait_for_devbox_status() -> DevboxView:
|
|
390
|
+
# This wait_for_status endpoint polls the devbox status for 10 seconds until it reaches either running or failure.
|
|
391
|
+
# If it's neither, it will throw an error.
|
|
392
|
+
return self._post(
|
|
393
|
+
f"/v1/devboxes/{id}/wait_for_status",
|
|
394
|
+
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
|
+
cast_to=DevboxView,
|
|
393
399
|
)
|
|
394
400
|
|
|
401
|
+
def handle_timeout_error(error: Exception) -> DevboxView:
|
|
402
|
+
# Handle 408 timeout errors by returning current devbox state to continue polling
|
|
403
|
+
if isinstance(error, APIStatusError) and error.response.status_code == 408:
|
|
404
|
+
# Return a placeholder result to continue polling
|
|
405
|
+
return DevboxView(
|
|
406
|
+
id=id,
|
|
407
|
+
status="provisioning",
|
|
408
|
+
capabilities=[],
|
|
409
|
+
create_time_ms=0,
|
|
410
|
+
launch_parameters=SharedLaunchParameters(),
|
|
411
|
+
metadata={},
|
|
412
|
+
state_transitions=[],
|
|
413
|
+
)
|
|
414
|
+
else:
|
|
415
|
+
# Re-raise other errors to stop polling
|
|
416
|
+
raise error
|
|
417
|
+
|
|
395
418
|
def is_done_booting(devbox: DevboxView) -> bool:
|
|
396
419
|
return devbox.status not in DEVBOX_BOOTING_STATES
|
|
397
420
|
|
|
398
|
-
devbox = poll_until(
|
|
421
|
+
devbox = poll_until(wait_for_devbox_status, is_done_booting, polling_config, handle_timeout_error)
|
|
399
422
|
|
|
400
423
|
if devbox.status != "running":
|
|
401
|
-
raise RunloopError(
|
|
402
|
-
f"Devbox entered non-running terminal state: {devbox.status}"
|
|
403
|
-
)
|
|
424
|
+
raise RunloopError(f"Devbox entered non-running terminal state: {devbox.status}")
|
|
404
425
|
|
|
405
426
|
return devbox
|
|
406
427
|
|
|
@@ -427,7 +448,7 @@ class DevboxesResource(SyncAPIResource):
|
|
|
427
448
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
428
449
|
) -> DevboxView:
|
|
429
450
|
"""Create a new devbox and wait for it to be in running state.
|
|
430
|
-
|
|
451
|
+
|
|
431
452
|
Args:
|
|
432
453
|
blueprint_id: The ID of the blueprint to use
|
|
433
454
|
blueprint_name: The name of the blueprint to use
|
|
@@ -1660,7 +1681,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
1660
1681
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
1661
1682
|
) -> DevboxView:
|
|
1662
1683
|
"""Wait for a devbox to be in running state.
|
|
1663
|
-
|
|
1684
|
+
|
|
1664
1685
|
Args:
|
|
1665
1686
|
id: The ID of the devbox to wait for
|
|
1666
1687
|
config: Optional polling configuration
|
|
@@ -1676,27 +1697,45 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
1676
1697
|
PollingTimeout: If polling times out before devbox is running
|
|
1677
1698
|
RunloopError: If devbox enters a non-running terminal state
|
|
1678
1699
|
"""
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1700
|
+
|
|
1701
|
+
async def wait_for_devbox_status() -> DevboxView:
|
|
1702
|
+
# This wait_for_status endpoint polls the devbox status for 10 seconds until it reaches either running or failure.
|
|
1703
|
+
# If it's neither, it will throw an error.
|
|
1704
|
+
try:
|
|
1705
|
+
return await self._post(
|
|
1706
|
+
f"/v1/devboxes/{id}/wait_for_status",
|
|
1707
|
+
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
|
+
cast_to=DevboxView,
|
|
1712
|
+
)
|
|
1713
|
+
except APIStatusError as error:
|
|
1714
|
+
if error.response.status_code == 408:
|
|
1715
|
+
# Handle 408 timeout errors by returning a placeholder result to continue polling
|
|
1716
|
+
return DevboxView(
|
|
1717
|
+
id=id,
|
|
1718
|
+
status="provisioning",
|
|
1719
|
+
capabilities=[],
|
|
1720
|
+
create_time_ms=0,
|
|
1721
|
+
launch_parameters=SharedLaunchParameters(),
|
|
1722
|
+
metadata={},
|
|
1723
|
+
state_transitions=[],
|
|
1724
|
+
)
|
|
1725
|
+
else:
|
|
1726
|
+
# Re-raise other errors to stop polling
|
|
1727
|
+
raise
|
|
1728
|
+
|
|
1688
1729
|
def is_done_booting(devbox: DevboxView) -> bool:
|
|
1689
1730
|
return devbox.status not in DEVBOX_BOOTING_STATES
|
|
1690
1731
|
|
|
1691
|
-
devbox = await async_poll_until(
|
|
1732
|
+
devbox = await async_poll_until(wait_for_devbox_status, is_done_booting, polling_config)
|
|
1692
1733
|
|
|
1693
1734
|
if devbox.status != "running":
|
|
1694
|
-
raise RunloopError(
|
|
1695
|
-
f"Devbox entered non-running terminal state: {devbox.status}"
|
|
1696
|
-
)
|
|
1735
|
+
raise RunloopError(f"Devbox entered non-running terminal state: {devbox.status}")
|
|
1697
1736
|
|
|
1698
1737
|
return devbox
|
|
1699
|
-
|
|
1738
|
+
|
|
1700
1739
|
async def update(
|
|
1701
1740
|
self,
|
|
1702
1741
|
id: str,
|
|
@@ -16,8 +16,8 @@ from ..._response import (
|
|
|
16
16
|
async_to_raw_response_wrapper,
|
|
17
17
|
async_to_streamed_response_wrapper,
|
|
18
18
|
)
|
|
19
|
-
from ...lib.polling import PollingConfig, poll_until
|
|
20
19
|
from ..._constants import DEFAULT_TIMEOUT
|
|
20
|
+
from ...lib.polling import PollingConfig, poll_until
|
|
21
21
|
from ..._base_client import make_request_options
|
|
22
22
|
from ...types.devboxes import execution_retrieve_params, execution_execute_sync_params, execution_execute_async_params
|
|
23
23
|
from ...lib.polling_async import async_poll_until
|
|
@@ -103,7 +103,6 @@ class ExecutionsResource(SyncAPIResource):
|
|
|
103
103
|
extra_query: Query | None = None,
|
|
104
104
|
extra_body: Body | None = None,
|
|
105
105
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
106
|
-
idempotency_key: str | None = None,
|
|
107
106
|
) -> DevboxAsyncExecutionDetailView:
|
|
108
107
|
"""Wait for an execution to complete.
|
|
109
108
|
|
|
@@ -380,7 +379,6 @@ class AsyncExecutionsResource(AsyncAPIResource):
|
|
|
380
379
|
extra_query: Query | None = None,
|
|
381
380
|
extra_body: Body | None = None,
|
|
382
381
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
383
|
-
idempotency_key: str | None = None,
|
|
384
382
|
) -> DevboxAsyncExecutionDetailView:
|
|
385
383
|
"""Wait for an execution to complete.
|
|
386
384
|
|
|
@@ -406,7 +404,7 @@ class AsyncExecutionsResource(AsyncAPIResource):
|
|
|
406
404
|
extra_headers=extra_headers,
|
|
407
405
|
extra_query=extra_query,
|
|
408
406
|
extra_body=extra_body,
|
|
409
|
-
timeout=timeout
|
|
407
|
+
timeout=timeout,
|
|
410
408
|
)
|
|
411
409
|
|
|
412
410
|
def is_done(execution: DevboxAsyncExecutionDetailView) -> bool:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_base_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_constants.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_streaming.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/__init__.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_logs.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_proxy.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_reflection.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_streams.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_sync.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_transform.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_typing.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/_utils/_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/pagination.py
RENAMED
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/resources/secrets.py
RENAMED
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{runloop_api_client-0.47.0 → runloop_api_client-0.48.0}/src/runloop_api_client/types/devbox_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|