runloop-api-client 0.19.0__tar.gz → 0.20.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.20.0/.release-please-manifest.json +3 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/CHANGELOG.md +15 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/PKG-INFO +1 -1
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/api.md +22 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/pyproject.toml +2 -2
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/requirements-dev.lock +1 -1
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_constants.py +1 -1
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_models.py +1 -1
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/pagination.py +59 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/blueprints.py +229 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/scenarios/__init__.py +14 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/scenarios/scenarios.py +124 -0
- runloop_api_client-0.20.0/src/runloop_api_client/resources/scenarios/scorers.py +632 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/input_context.py +4 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/input_context_param.py +4 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/__init__.py +14 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_create_params.py +18 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_create_response.py +17 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_list_params.py +15 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_list_response.py +17 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +17 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_update_params.py +18 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_update_response.py +17 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_validate_params.py +17 -0
- runloop_api_client-0.20.0/src/runloop_api_client/types/scenarios/scorer_validate_response.py +23 -0
- runloop_api_client-0.20.0/tests/api_resources/scenarios/test_scorers.py +441 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/test_scenarios.py +8 -2
- runloop_api_client-0.19.0/.release-please-manifest.json +0 -3
- runloop_api_client-0.19.0/src/runloop_api_client/types/scenarios/__init__.py +0 -5
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/.gitignore +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/CONTRIBUTING.md +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/LICENSE +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/README.md +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/SECURITY.md +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/bin/check-release-environment +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/bin/publish-pypi +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/examples/.keep +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/mypy.ini +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/noxfile.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/release-please-config.json +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/requirements.lock +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_base_client.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/repository_version_details.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/repository_version_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/devboxes/test_computers.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/devboxes/test_executions.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/devboxes/test_lsp.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/test_benchmarks.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/test_blueprints.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/test_devboxes.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/api_resources/test_repositories.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/conftest.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/sample_file.txt +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_client.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_extract_files.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_files.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_models.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_qs.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_required_args.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_response.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_streaming.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_transform.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.20.0 (2025-02-04)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.19.0...v0.20.0](https://github.com/runloopai/api-client-python/compare/v0.19.0...v0.20.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* add helpers for blueprint and scenario run creation ([b00a7c1](https://github.com/runloopai/api-client-python/commit/b00a7c1b935db7c919d79ed10c135bf5ed2a9b4f))
|
|
10
|
+
* **api:** api update ([#526](https://github.com/runloopai/api-client-python/issues/526)) ([be26ed7](https://github.com/runloopai/api-client-python/commit/be26ed7c82017d9bff67c9920c078808f8a675e3))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Chores
|
|
14
|
+
|
|
15
|
+
* **internal:** bummp ruff dependency ([#525](https://github.com/runloopai/api-client-python/issues/525)) ([84051db](https://github.com/runloopai/api-client-python/commit/84051db83a6347f28ee4891be52f5eee7fa9d02a))
|
|
16
|
+
* **internal:** change default timeout to an int ([#524](https://github.com/runloopai/api-client-python/issues/524)) ([a15ccaa](https://github.com/runloopai/api-client-python/commit/a15ccaa45f69331d57be0144a16ba3b1df387245))
|
|
17
|
+
|
|
3
18
|
## 0.19.0 (2025-02-03)
|
|
4
19
|
|
|
5
20
|
Full Changelog: [v0.18.0...v0.19.0](https://github.com/runloopai/api-client-python/compare/v0.18.0...v0.19.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.20.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
|
|
@@ -274,6 +274,28 @@ Methods:
|
|
|
274
274
|
- <code title="post /v1/scenarios/runs/{id}/complete">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">complete</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
|
|
275
275
|
- <code title="post /v1/scenarios/runs/{id}/score">client.scenarios.runs.<a href="./src/runloop_api_client/resources/scenarios/runs.py">score</a>(id) -> <a href="./src/runloop_api_client/types/scenario_run_view.py">ScenarioRunView</a></code>
|
|
276
276
|
|
|
277
|
+
## Scorers
|
|
278
|
+
|
|
279
|
+
Types:
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
from runloop_api_client.types.scenarios import (
|
|
283
|
+
ScorerCreateResponse,
|
|
284
|
+
ScorerRetrieveResponse,
|
|
285
|
+
ScorerUpdateResponse,
|
|
286
|
+
ScorerListResponse,
|
|
287
|
+
ScorerValidateResponse,
|
|
288
|
+
)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Methods:
|
|
292
|
+
|
|
293
|
+
- <code title="post /v1/scenarios/scorers">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">create</a>(\*\*<a href="src/runloop_api_client/types/scenarios/scorer_create_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_create_response.py">ScorerCreateResponse</a></code>
|
|
294
|
+
- <code title="get /v1/scenarios/scorers/{id}">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/scenarios/scorer_retrieve_response.py">ScorerRetrieveResponse</a></code>
|
|
295
|
+
- <code title="post /v1/scenarios/scorers/{id}">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">update</a>(id, \*\*<a href="src/runloop_api_client/types/scenarios/scorer_update_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_update_response.py">ScorerUpdateResponse</a></code>
|
|
296
|
+
- <code title="get /v1/scenarios/scorers">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">list</a>(\*\*<a href="src/runloop_api_client/types/scenarios/scorer_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_list_response.py">SyncScenarioScorersCursorIDPage[ScorerListResponse]</a></code>
|
|
297
|
+
- <code title="post /v1/scenarios/scorers/{id}/validate">client.scenarios.scorers.<a href="./src/runloop_api_client/resources/scenarios/scorers.py">validate</a>(id, \*\*<a href="src/runloop_api_client/types/scenarios/scorer_validate_params.py">params</a>) -> <a href="./src/runloop_api_client/types/scenarios/scorer_validate_response.py">ScorerValidateResponse</a></code>
|
|
298
|
+
|
|
277
299
|
# Repositories
|
|
278
300
|
|
|
279
301
|
Types:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "runloop_api_client"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.20.0"
|
|
4
4
|
description = "The official Python library for the runloop API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "MIT"
|
|
@@ -177,7 +177,7 @@ select = [
|
|
|
177
177
|
"T201",
|
|
178
178
|
"T203",
|
|
179
179
|
# misuse of typing.TYPE_CHECKING
|
|
180
|
-
"
|
|
180
|
+
"TC004",
|
|
181
181
|
# import rules
|
|
182
182
|
"TID251",
|
|
183
183
|
]
|
{runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/_constants.py
RENAMED
|
@@ -6,7 +6,7 @@ RAW_RESPONSE_HEADER = "X-Stainless-Raw-Response"
|
|
|
6
6
|
OVERRIDE_CAST_TO_HEADER = "____stainless_override_cast_to"
|
|
7
7
|
|
|
8
8
|
# default timeout is 1 minute
|
|
9
|
-
DEFAULT_TIMEOUT = httpx.Timeout(timeout=60
|
|
9
|
+
DEFAULT_TIMEOUT = httpx.Timeout(timeout=60, connect=5.0)
|
|
10
10
|
DEFAULT_MAX_RETRIES = 2
|
|
11
11
|
DEFAULT_CONNECTION_LIMITS = httpx.Limits(max_connections=100, max_keepalive_connections=20)
|
|
12
12
|
|
|
@@ -172,7 +172,7 @@ class BaseModel(pydantic.BaseModel):
|
|
|
172
172
|
@override
|
|
173
173
|
def __str__(self) -> str:
|
|
174
174
|
# mypy complains about an invalid self arg
|
|
175
|
-
return f
|
|
175
|
+
return f"{self.__repr_name__()}({self.__repr_str__(', ')})" # type: ignore[misc]
|
|
176
176
|
|
|
177
177
|
# Override the 'construct' method in a way that supports recursive parsing without validation.
|
|
178
178
|
# Based on https://github.com/samuelcolvin/pydantic/issues/1168#issuecomment-817742836.
|
{runloop_api_client-0.19.0 → runloop_api_client-0.20.0}/src/runloop_api_client/pagination.py
RENAMED
|
@@ -22,6 +22,8 @@ __all__ = [
|
|
|
22
22
|
"AsyncScenariosCursorIDPage",
|
|
23
23
|
"SyncScenarioRunsCursorIDPage",
|
|
24
24
|
"AsyncScenarioRunsCursorIDPage",
|
|
25
|
+
"SyncScenarioScorersCursorIDPage",
|
|
26
|
+
"AsyncScenarioScorersCursorIDPage",
|
|
25
27
|
]
|
|
26
28
|
|
|
27
29
|
_T = TypeVar("_T")
|
|
@@ -67,6 +69,11 @@ class ScenarioRunsCursorIDPageItem(Protocol):
|
|
|
67
69
|
id: str
|
|
68
70
|
|
|
69
71
|
|
|
72
|
+
@runtime_checkable
|
|
73
|
+
class ScenarioScorersCursorIDPageItem(Protocol):
|
|
74
|
+
id: str
|
|
75
|
+
|
|
76
|
+
|
|
70
77
|
class SyncBlueprintsCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
71
78
|
blueprints: List[_T]
|
|
72
79
|
has_more: Optional[bool] = None
|
|
@@ -481,3 +488,55 @@ class AsyncScenarioRunsCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]
|
|
|
481
488
|
return None
|
|
482
489
|
|
|
483
490
|
return PageInfo(params={"starting_after": item.id})
|
|
491
|
+
|
|
492
|
+
|
|
493
|
+
class SyncScenarioScorersCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
494
|
+
scorers: List[_T]
|
|
495
|
+
has_more: Optional[bool] = None
|
|
496
|
+
total_count: Optional[int] = None
|
|
497
|
+
|
|
498
|
+
@override
|
|
499
|
+
def _get_page_items(self) -> List[_T]:
|
|
500
|
+
scorers = self.scorers
|
|
501
|
+
if not scorers:
|
|
502
|
+
return []
|
|
503
|
+
return scorers
|
|
504
|
+
|
|
505
|
+
@override
|
|
506
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
507
|
+
scorers = self.scorers
|
|
508
|
+
if not scorers:
|
|
509
|
+
return None
|
|
510
|
+
|
|
511
|
+
item = cast(Any, scorers[-1])
|
|
512
|
+
if not isinstance(item, ScenarioScorersCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
|
|
513
|
+
# TODO emit warning log
|
|
514
|
+
return None
|
|
515
|
+
|
|
516
|
+
return PageInfo(params={"starting_after": item.id})
|
|
517
|
+
|
|
518
|
+
|
|
519
|
+
class AsyncScenarioScorersCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
520
|
+
scorers: List[_T]
|
|
521
|
+
has_more: Optional[bool] = None
|
|
522
|
+
total_count: Optional[int] = None
|
|
523
|
+
|
|
524
|
+
@override
|
|
525
|
+
def _get_page_items(self) -> List[_T]:
|
|
526
|
+
scorers = self.scorers
|
|
527
|
+
if not scorers:
|
|
528
|
+
return []
|
|
529
|
+
return scorers
|
|
530
|
+
|
|
531
|
+
@override
|
|
532
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
533
|
+
scorers = self.scorers
|
|
534
|
+
if not scorers:
|
|
535
|
+
return None
|
|
536
|
+
|
|
537
|
+
item = cast(Any, scorers[-1])
|
|
538
|
+
if not isinstance(item, ScenarioScorersCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
|
|
539
|
+
# TODO emit warning log
|
|
540
|
+
return None
|
|
541
|
+
|
|
542
|
+
return PageInfo(params={"starting_after": item.id})
|
|
@@ -20,6 +20,9 @@ from .._response import (
|
|
|
20
20
|
async_to_raw_response_wrapper,
|
|
21
21
|
async_to_streamed_response_wrapper,
|
|
22
22
|
)
|
|
23
|
+
from .._exceptions import RunloopError
|
|
24
|
+
from ..lib.polling import PollingConfig, poll_until
|
|
25
|
+
from ..lib.polling_async import async_poll_until
|
|
23
26
|
from ..pagination import SyncBlueprintsCursorIDPage, AsyncBlueprintsCursorIDPage
|
|
24
27
|
from .._base_client import AsyncPaginator, make_request_options
|
|
25
28
|
from ..types.blueprint_view import BlueprintView
|
|
@@ -154,6 +157,119 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
154
157
|
cast_to=BlueprintView,
|
|
155
158
|
)
|
|
156
159
|
|
|
160
|
+
def await_build_complete(
|
|
161
|
+
self,
|
|
162
|
+
id: str,
|
|
163
|
+
*,
|
|
164
|
+
polling_config: PollingConfig | None = None,
|
|
165
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
166
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
167
|
+
extra_headers: Headers | None = None,
|
|
168
|
+
extra_query: Query | None = None,
|
|
169
|
+
extra_body: Body | None = None,
|
|
170
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
171
|
+
) -> BlueprintView:
|
|
172
|
+
"""Wait for a blueprint to finish building.
|
|
173
|
+
|
|
174
|
+
Args:
|
|
175
|
+
id: The ID of the blueprint to wait for
|
|
176
|
+
polling_config: Optional polling configuration
|
|
177
|
+
extra_headers: Send extra headers
|
|
178
|
+
extra_query: Add additional query parameters to the request
|
|
179
|
+
extra_body: Add additional JSON properties to the request
|
|
180
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
181
|
+
|
|
182
|
+
Returns:
|
|
183
|
+
The blueprint in built state
|
|
184
|
+
|
|
185
|
+
Raises:
|
|
186
|
+
PollingTimeout: If polling times out before blueprint is built
|
|
187
|
+
RunloopError: If blueprint enters a non-built terminal state
|
|
188
|
+
"""
|
|
189
|
+
def retrieve_blueprint() -> BlueprintView:
|
|
190
|
+
return self.retrieve(
|
|
191
|
+
id,
|
|
192
|
+
extra_headers=extra_headers,
|
|
193
|
+
extra_query=extra_query,
|
|
194
|
+
extra_body=extra_body,
|
|
195
|
+
timeout=timeout
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
def is_done_building(blueprint: BlueprintView) -> bool:
|
|
199
|
+
return blueprint.status not in ["building", "provisioning"]
|
|
200
|
+
|
|
201
|
+
blueprint = poll_until(retrieve_blueprint, is_done_building, polling_config)
|
|
202
|
+
|
|
203
|
+
if blueprint.status != "build_complete":
|
|
204
|
+
raise RunloopError(
|
|
205
|
+
f"Blueprint entered non-built terminal state: {blueprint.status}"
|
|
206
|
+
)
|
|
207
|
+
|
|
208
|
+
return blueprint
|
|
209
|
+
|
|
210
|
+
def create_and_await_build_complete(
|
|
211
|
+
self,
|
|
212
|
+
*,
|
|
213
|
+
name: str,
|
|
214
|
+
code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
|
|
215
|
+
dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
|
|
216
|
+
file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
217
|
+
launch_parameters: Optional[LaunchParameters] | NotGiven = NOT_GIVEN,
|
|
218
|
+
system_setup_commands: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
219
|
+
polling_config: PollingConfig | None = None,
|
|
220
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
221
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
222
|
+
extra_headers: Headers | None = None,
|
|
223
|
+
extra_query: Query | None = None,
|
|
224
|
+
extra_body: Body | None = None,
|
|
225
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
226
|
+
idempotency_key: str | None = None,
|
|
227
|
+
) -> BlueprintView:
|
|
228
|
+
"""Create a new Blueprint and wait for it to finish building.
|
|
229
|
+
|
|
230
|
+
Args:
|
|
231
|
+
dockerfile: The Dockerfile contents to use for building the Blueprint
|
|
232
|
+
file_mounts: Files to mount into the Blueprint
|
|
233
|
+
launch_parameters: Launch parameters for Devboxes created from this Blueprint
|
|
234
|
+
name: Name for the Blueprint
|
|
235
|
+
system_setup_commands: Commands to run during Blueprint build
|
|
236
|
+
polling_config: Optional polling configuration
|
|
237
|
+
extra_headers: Send extra headers
|
|
238
|
+
extra_query: Add additional query parameters to the request
|
|
239
|
+
extra_body: Add additional JSON properties to the request
|
|
240
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
241
|
+
idempotency_key: Specify a custom idempotency key for this request
|
|
242
|
+
|
|
243
|
+
Returns:
|
|
244
|
+
The built blueprint
|
|
245
|
+
|
|
246
|
+
Raises:
|
|
247
|
+
PollingTimeout: If polling times out before blueprint is built
|
|
248
|
+
RunloopError: If blueprint enters a non-built terminal state
|
|
249
|
+
"""
|
|
250
|
+
blueprint = self.create(
|
|
251
|
+
name=name,
|
|
252
|
+
dockerfile=dockerfile,
|
|
253
|
+
code_mounts=code_mounts,
|
|
254
|
+
file_mounts=file_mounts,
|
|
255
|
+
launch_parameters=launch_parameters,
|
|
256
|
+
system_setup_commands=system_setup_commands,
|
|
257
|
+
extra_headers=extra_headers,
|
|
258
|
+
extra_query=extra_query,
|
|
259
|
+
extra_body=extra_body,
|
|
260
|
+
timeout=timeout,
|
|
261
|
+
idempotency_key=idempotency_key,
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
return self.await_build_complete(
|
|
265
|
+
blueprint.id,
|
|
266
|
+
polling_config=polling_config,
|
|
267
|
+
extra_headers=extra_headers,
|
|
268
|
+
extra_query=extra_query,
|
|
269
|
+
extra_body=extra_body,
|
|
270
|
+
timeout=timeout,
|
|
271
|
+
)
|
|
272
|
+
|
|
157
273
|
def list(
|
|
158
274
|
self,
|
|
159
275
|
*,
|
|
@@ -429,6 +545,119 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
429
545
|
),
|
|
430
546
|
cast_to=BlueprintView,
|
|
431
547
|
)
|
|
548
|
+
|
|
549
|
+
async def await_build_complete(
|
|
550
|
+
self,
|
|
551
|
+
id: str,
|
|
552
|
+
*,
|
|
553
|
+
polling_config: PollingConfig | None = None,
|
|
554
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
555
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
556
|
+
extra_headers: Headers | None = None,
|
|
557
|
+
extra_query: Query | None = None,
|
|
558
|
+
extra_body: Body | None = None,
|
|
559
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
560
|
+
) -> BlueprintView:
|
|
561
|
+
"""Wait for a blueprint to finish building.
|
|
562
|
+
|
|
563
|
+
Args:
|
|
564
|
+
id: The ID of the blueprint to wait for
|
|
565
|
+
polling_config: Optional polling configuration
|
|
566
|
+
extra_headers: Send extra headers
|
|
567
|
+
extra_query: Add additional query parameters to the request
|
|
568
|
+
extra_body: Add additional JSON properties to the request
|
|
569
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
570
|
+
|
|
571
|
+
Returns:
|
|
572
|
+
The blueprint in built state
|
|
573
|
+
|
|
574
|
+
Raises:
|
|
575
|
+
PollingTimeout: If polling times out before blueprint is built
|
|
576
|
+
RunloopError: If blueprint enters a non-built terminal state
|
|
577
|
+
"""
|
|
578
|
+
async def retrieve_blueprint() -> BlueprintView:
|
|
579
|
+
return await self.retrieve(
|
|
580
|
+
id,
|
|
581
|
+
extra_headers=extra_headers,
|
|
582
|
+
extra_query=extra_query,
|
|
583
|
+
extra_body=extra_body,
|
|
584
|
+
timeout=timeout
|
|
585
|
+
)
|
|
586
|
+
|
|
587
|
+
def is_done_building(blueprint: BlueprintView) -> bool:
|
|
588
|
+
return blueprint.status not in ["building", "provisioning"]
|
|
589
|
+
|
|
590
|
+
blueprint = await async_poll_until(retrieve_blueprint, is_done_building, polling_config)
|
|
591
|
+
|
|
592
|
+
if blueprint.status != "build_complete":
|
|
593
|
+
raise RunloopError(
|
|
594
|
+
f"Blueprint entered non-built terminal state: {blueprint.status}"
|
|
595
|
+
)
|
|
596
|
+
|
|
597
|
+
return blueprint
|
|
598
|
+
|
|
599
|
+
async def create_and_await_build_complete(
|
|
600
|
+
self,
|
|
601
|
+
*,
|
|
602
|
+
name: str,
|
|
603
|
+
code_mounts: Optional[Iterable[CodeMountParameters]] | NotGiven = NOT_GIVEN,
|
|
604
|
+
dockerfile: Optional[str] | NotGiven = NOT_GIVEN,
|
|
605
|
+
file_mounts: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
606
|
+
launch_parameters: Optional[LaunchParameters] | NotGiven = NOT_GIVEN,
|
|
607
|
+
system_setup_commands: Optional[List[str]] | NotGiven = NOT_GIVEN,
|
|
608
|
+
polling_config: PollingConfig | None = None,
|
|
609
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
610
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
611
|
+
extra_headers: Headers | None = None,
|
|
612
|
+
extra_query: Query | None = None,
|
|
613
|
+
extra_body: Body | None = None,
|
|
614
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
615
|
+
idempotency_key: str | None = None,
|
|
616
|
+
) -> BlueprintView:
|
|
617
|
+
"""Create a new Blueprint and wait for it to finish building.
|
|
618
|
+
|
|
619
|
+
Args:
|
|
620
|
+
dockerfile: The Dockerfile contents to use for building the Blueprint
|
|
621
|
+
file_mounts: Files to mount into the Blueprint
|
|
622
|
+
launch_parameters: Launch parameters for Devboxes created from this Blueprint
|
|
623
|
+
name: Name for the Blueprint
|
|
624
|
+
system_setup_commands: Commands to run during Blueprint build
|
|
625
|
+
polling_config: Optional polling configuration
|
|
626
|
+
extra_headers: Send extra headers
|
|
627
|
+
extra_query: Add additional query parameters to the request
|
|
628
|
+
extra_body: Add additional JSON properties to the request
|
|
629
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
630
|
+
idempotency_key: Specify a custom idempotency key for this request
|
|
631
|
+
|
|
632
|
+
Returns:
|
|
633
|
+
The built blueprint
|
|
634
|
+
|
|
635
|
+
Raises:
|
|
636
|
+
PollingTimeout: If polling times out before blueprint is built
|
|
637
|
+
RunloopError: If blueprint enters a non-built terminal state
|
|
638
|
+
"""
|
|
639
|
+
blueprint = await self.create(
|
|
640
|
+
name=name,
|
|
641
|
+
dockerfile=dockerfile,
|
|
642
|
+
code_mounts=code_mounts,
|
|
643
|
+
file_mounts=file_mounts,
|
|
644
|
+
launch_parameters=launch_parameters,
|
|
645
|
+
system_setup_commands=system_setup_commands,
|
|
646
|
+
extra_headers=extra_headers,
|
|
647
|
+
extra_query=extra_query,
|
|
648
|
+
extra_body=extra_body,
|
|
649
|
+
timeout=timeout,
|
|
650
|
+
idempotency_key=idempotency_key,
|
|
651
|
+
)
|
|
652
|
+
|
|
653
|
+
return await self.await_build_complete(
|
|
654
|
+
blueprint.id,
|
|
655
|
+
polling_config=polling_config,
|
|
656
|
+
extra_headers=extra_headers,
|
|
657
|
+
extra_query=extra_query,
|
|
658
|
+
extra_body=extra_body,
|
|
659
|
+
timeout=timeout,
|
|
660
|
+
)
|
|
432
661
|
|
|
433
662
|
def list(
|
|
434
663
|
self,
|
|
@@ -8,6 +8,14 @@ from .runs import (
|
|
|
8
8
|
RunsResourceWithStreamingResponse,
|
|
9
9
|
AsyncRunsResourceWithStreamingResponse,
|
|
10
10
|
)
|
|
11
|
+
from .scorers import (
|
|
12
|
+
ScorersResource,
|
|
13
|
+
AsyncScorersResource,
|
|
14
|
+
ScorersResourceWithRawResponse,
|
|
15
|
+
AsyncScorersResourceWithRawResponse,
|
|
16
|
+
ScorersResourceWithStreamingResponse,
|
|
17
|
+
AsyncScorersResourceWithStreamingResponse,
|
|
18
|
+
)
|
|
11
19
|
from .scenarios import (
|
|
12
20
|
ScenariosResource,
|
|
13
21
|
AsyncScenariosResource,
|
|
@@ -24,6 +32,12 @@ __all__ = [
|
|
|
24
32
|
"AsyncRunsResourceWithRawResponse",
|
|
25
33
|
"RunsResourceWithStreamingResponse",
|
|
26
34
|
"AsyncRunsResourceWithStreamingResponse",
|
|
35
|
+
"ScorersResource",
|
|
36
|
+
"AsyncScorersResource",
|
|
37
|
+
"ScorersResourceWithRawResponse",
|
|
38
|
+
"AsyncScorersResourceWithRawResponse",
|
|
39
|
+
"ScorersResourceWithStreamingResponse",
|
|
40
|
+
"AsyncScorersResourceWithStreamingResponse",
|
|
27
41
|
"ScenariosResource",
|
|
28
42
|
"AsyncScenariosResource",
|
|
29
43
|
"ScenariosResourceWithRawResponse",
|
|
@@ -20,11 +20,20 @@ from ...types import (
|
|
|
20
20
|
scenario_start_run_params,
|
|
21
21
|
scenario_list_public_params,
|
|
22
22
|
)
|
|
23
|
+
from .scorers import (
|
|
24
|
+
ScorersResource,
|
|
25
|
+
AsyncScorersResource,
|
|
26
|
+
ScorersResourceWithRawResponse,
|
|
27
|
+
AsyncScorersResourceWithRawResponse,
|
|
28
|
+
ScorersResourceWithStreamingResponse,
|
|
29
|
+
AsyncScorersResourceWithStreamingResponse,
|
|
30
|
+
)
|
|
23
31
|
from ..._types import NOT_GIVEN, Body, Query, Headers, NotGiven
|
|
24
32
|
from ..._utils import (
|
|
25
33
|
maybe_transform,
|
|
26
34
|
async_maybe_transform,
|
|
27
35
|
)
|
|
36
|
+
from ...lib.polling import PollingConfig
|
|
28
37
|
from ..._compat import cached_property
|
|
29
38
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
30
39
|
from ..._response import (
|
|
@@ -49,6 +58,10 @@ class ScenariosResource(SyncAPIResource):
|
|
|
49
58
|
def runs(self) -> RunsResource:
|
|
50
59
|
return RunsResource(self._client)
|
|
51
60
|
|
|
61
|
+
@cached_property
|
|
62
|
+
def scorers(self) -> ScorersResource:
|
|
63
|
+
return ScorersResource(self._client)
|
|
64
|
+
|
|
52
65
|
@cached_property
|
|
53
66
|
def with_raw_response(self) -> ScenariosResourceWithRawResponse:
|
|
54
67
|
"""
|
|
@@ -317,12 +330,73 @@ class ScenariosResource(SyncAPIResource):
|
|
|
317
330
|
cast_to=ScenarioRunView,
|
|
318
331
|
)
|
|
319
332
|
|
|
333
|
+
def start_run_and_await_env_ready(
|
|
334
|
+
self,
|
|
335
|
+
*,
|
|
336
|
+
scenario_id: str,
|
|
337
|
+
benchmark_run_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
338
|
+
run_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
339
|
+
polling_config: PollingConfig | None = None,
|
|
340
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
341
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
342
|
+
extra_headers: Headers | None = None,
|
|
343
|
+
extra_query: Query | None = None,
|
|
344
|
+
extra_body: Body | None = None,
|
|
345
|
+
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
346
|
+
idempotency_key: str | None = None,
|
|
347
|
+
) -> ScenarioRunView:
|
|
348
|
+
"""Start a new ScenarioRun and wait for its environment to be ready.
|
|
349
|
+
|
|
350
|
+
Args:
|
|
351
|
+
scenario_id: ID of the Scenario to run
|
|
352
|
+
benchmark_run_id: Benchmark to associate the run
|
|
353
|
+
run_name: Display name of the run
|
|
354
|
+
polling_config: Optional polling configuration
|
|
355
|
+
extra_headers: Send extra headers
|
|
356
|
+
extra_query: Add additional query parameters to the request
|
|
357
|
+
extra_body: Add additional JSON properties to the request
|
|
358
|
+
timeout: Override the client-level default timeout for this request, in seconds
|
|
359
|
+
idempotency_key: Specify a custom idempotency key for this request
|
|
360
|
+
|
|
361
|
+
Returns:
|
|
362
|
+
The scenario run in running state
|
|
363
|
+
|
|
364
|
+
Raises:
|
|
365
|
+
PollingTimeout: If polling times out before environment is ready
|
|
366
|
+
RunloopError: If environment enters a non-running terminal state
|
|
367
|
+
"""
|
|
368
|
+
run = self.start_run(
|
|
369
|
+
scenario_id=scenario_id,
|
|
370
|
+
benchmark_run_id=benchmark_run_id,
|
|
371
|
+
run_name=run_name,
|
|
372
|
+
extra_headers=extra_headers,
|
|
373
|
+
extra_query=extra_query,
|
|
374
|
+
extra_body=extra_body,
|
|
375
|
+
timeout=timeout,
|
|
376
|
+
idempotency_key=idempotency_key,
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
self._client.devboxes.await_running(
|
|
380
|
+
run.devbox_id,
|
|
381
|
+
polling_config=polling_config,
|
|
382
|
+
extra_headers=extra_headers,
|
|
383
|
+
extra_query=extra_query,
|
|
384
|
+
extra_body=extra_body,
|
|
385
|
+
timeout=timeout,
|
|
386
|
+
)
|
|
387
|
+
|
|
388
|
+
return run
|
|
389
|
+
|
|
320
390
|
|
|
321
391
|
class AsyncScenariosResource(AsyncAPIResource):
|
|
322
392
|
@cached_property
|
|
323
393
|
def runs(self) -> AsyncRunsResource:
|
|
324
394
|
return AsyncRunsResource(self._client)
|
|
325
395
|
|
|
396
|
+
@cached_property
|
|
397
|
+
def scorers(self) -> AsyncScorersResource:
|
|
398
|
+
return AsyncScorersResource(self._client)
|
|
399
|
+
|
|
326
400
|
@cached_property
|
|
327
401
|
def with_raw_response(self) -> AsyncScenariosResourceWithRawResponse:
|
|
328
402
|
"""
|
|
@@ -591,6 +665,40 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
591
665
|
cast_to=ScenarioRunView,
|
|
592
666
|
)
|
|
593
667
|
|
|
668
|
+
async def start_run_and_await_env_ready(
|
|
669
|
+
self,
|
|
670
|
+
scenario_id: str,
|
|
671
|
+
benchmark_run_id: Optional[str] | NotGiven = NOT_GIVEN,
|
|
672
|
+
run_name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
673
|
+
polling_config: PollingConfig | None = None,
|
|
674
|
+
) -> ScenarioRunView:
|
|
675
|
+
"""Start a new ScenarioRun and wait for its environment to be ready.
|
|
676
|
+
|
|
677
|
+
Args:
|
|
678
|
+
scenario_id: ID of the Scenario to run
|
|
679
|
+
benchmark_run_id: Benchmark to associate the run
|
|
680
|
+
run_name: Display name of the run
|
|
681
|
+
polling_config: Optional polling configuration
|
|
682
|
+
|
|
683
|
+
Returns:
|
|
684
|
+
The scenario run in running state
|
|
685
|
+
|
|
686
|
+
Raises:
|
|
687
|
+
PollingTimeout: If polling times out before environment is ready
|
|
688
|
+
RunloopError: If environment enters a non-running terminal state
|
|
689
|
+
"""
|
|
690
|
+
run = await self.start_run(
|
|
691
|
+
scenario_id=scenario_id,
|
|
692
|
+
benchmark_run_id=benchmark_run_id,
|
|
693
|
+
run_name=run_name,
|
|
694
|
+
)
|
|
695
|
+
|
|
696
|
+
await self._client.devboxes.await_running(
|
|
697
|
+
run.devbox_id,
|
|
698
|
+
polling_config=polling_config,
|
|
699
|
+
)
|
|
700
|
+
|
|
701
|
+
return run
|
|
594
702
|
|
|
595
703
|
class ScenariosResourceWithRawResponse:
|
|
596
704
|
def __init__(self, scenarios: ScenariosResource) -> None:
|
|
@@ -616,6 +724,10 @@ class ScenariosResourceWithRawResponse:
|
|
|
616
724
|
def runs(self) -> RunsResourceWithRawResponse:
|
|
617
725
|
return RunsResourceWithRawResponse(self._scenarios.runs)
|
|
618
726
|
|
|
727
|
+
@cached_property
|
|
728
|
+
def scorers(self) -> ScorersResourceWithRawResponse:
|
|
729
|
+
return ScorersResourceWithRawResponse(self._scenarios.scorers)
|
|
730
|
+
|
|
619
731
|
|
|
620
732
|
class AsyncScenariosResourceWithRawResponse:
|
|
621
733
|
def __init__(self, scenarios: AsyncScenariosResource) -> None:
|
|
@@ -641,6 +753,10 @@ class AsyncScenariosResourceWithRawResponse:
|
|
|
641
753
|
def runs(self) -> AsyncRunsResourceWithRawResponse:
|
|
642
754
|
return AsyncRunsResourceWithRawResponse(self._scenarios.runs)
|
|
643
755
|
|
|
756
|
+
@cached_property
|
|
757
|
+
def scorers(self) -> AsyncScorersResourceWithRawResponse:
|
|
758
|
+
return AsyncScorersResourceWithRawResponse(self._scenarios.scorers)
|
|
759
|
+
|
|
644
760
|
|
|
645
761
|
class ScenariosResourceWithStreamingResponse:
|
|
646
762
|
def __init__(self, scenarios: ScenariosResource) -> None:
|
|
@@ -666,6 +782,10 @@ class ScenariosResourceWithStreamingResponse:
|
|
|
666
782
|
def runs(self) -> RunsResourceWithStreamingResponse:
|
|
667
783
|
return RunsResourceWithStreamingResponse(self._scenarios.runs)
|
|
668
784
|
|
|
785
|
+
@cached_property
|
|
786
|
+
def scorers(self) -> ScorersResourceWithStreamingResponse:
|
|
787
|
+
return ScorersResourceWithStreamingResponse(self._scenarios.scorers)
|
|
788
|
+
|
|
669
789
|
|
|
670
790
|
class AsyncScenariosResourceWithStreamingResponse:
|
|
671
791
|
def __init__(self, scenarios: AsyncScenariosResource) -> None:
|
|
@@ -690,3 +810,7 @@ class AsyncScenariosResourceWithStreamingResponse:
|
|
|
690
810
|
@cached_property
|
|
691
811
|
def runs(self) -> AsyncRunsResourceWithStreamingResponse:
|
|
692
812
|
return AsyncRunsResourceWithStreamingResponse(self._scenarios.runs)
|
|
813
|
+
|
|
814
|
+
@cached_property
|
|
815
|
+
def scorers(self) -> AsyncScorersResourceWithStreamingResponse:
|
|
816
|
+
return AsyncScorersResourceWithStreamingResponse(self._scenarios.scorers)
|