runloop-api-client 0.42.0__tar.gz → 0.44.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.44.0/.release-please-manifest.json +3 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/CHANGELOG.md +46 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/PKG-INFO +38 -3
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/README.md +34 -2
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/api.md +1 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/pyproject.toml +5 -2
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/requirements-dev.lock +31 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/requirements.lock +27 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/__init__.py +2 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_base_client.py +38 -2
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/scenarios/scenarios.py +40 -32
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_list_params.py +3 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_update_params.py +10 -10
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/benchmarks/test_runs.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/devboxes/test_browsers.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/devboxes/test_computers.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/devboxes/test_disk_snapshots.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/devboxes/test_executions.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/devboxes/test_logs.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/devboxes/test_lsp.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/scenarios/test_runs.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/scenarios/test_scorers.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/test_benchmarks.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/test_blueprints.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/test_devboxes.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/test_repositories.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/test_scenarios.py +31 -147
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/test_secrets.py +3 -1
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/conftest.py +39 -6
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_client.py +56 -33
- runloop_api_client-0.42.0/.release-please-manifest.json +0 -3
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/.gitignore +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/CONTRIBUTING.md +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/LICENSE +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/SECURITY.md +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/bin/check-release-environment +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/bin/publish-pypi +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/examples/.keep +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/mypy.ini +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/noxfile.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/release-please-config.json +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/blueprints.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/devboxes.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/devboxes/lsp.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_build_parameters.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_preview_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_execute_async_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_code_action.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_command.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_command_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_diagnostic.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_diagnostic_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_location.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_markup_content.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_parameter_information.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_range.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_range_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_signature.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_workspace_edit.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/base_workspace_edit_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/code_action_application_result.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/code_action_context_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/code_action_kind.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/code_action_trigger_kind.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/code_actions_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/code_description_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/code_segment_info_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/diagnostic_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/diagnostic_related_information_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/diagnostic_severity.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/diagnostic_tag.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/diagnostics_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/document_symbol.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/document_symbol_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/document_uri.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/file_contents_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/file_definition_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/file_path.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/file_uri.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/formatting_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/health_status_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/integer.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/l_sp_any_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/location_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_apply_code_action_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_code_actions_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_diagnostics_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_document_symbols_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_file_definition_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_file_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_files_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_formatting_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_get_code_actions_for_diagnostic_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_get_code_segment_info_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_get_signature_help_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_references_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/lsp_set_watch_directory_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/position.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/position_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/range.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/range_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/record_string_text_edit_array_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/references_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/signature_help_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/symbol_kind.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/symbol_tag.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/symbol_type.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/text_edit.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/text_edit_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/u_ri.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/uinteger.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/devboxes/watched_file_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared/launch_parameters.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/sample_file.txt +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_extract_files.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_files.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_models.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_qs.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_required_args.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_response.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_streaming.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_transform.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/tests/utils.py +0 -0
- {runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/uv.lock +0 -0
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.44.0 (2025-06-21)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.43.0...v0.44.0](https://github.com/runloopai/api-client-python/compare/v0.43.0...v0.44.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([8bd0a39](https://github.com/runloopai/api-client-python/commit/8bd0a3937ff3d5b3e03a34ab2fc291377bbc4203))
|
|
10
|
+
* **api:** api update ([8ebd055](https://github.com/runloopai/api-client-python/commit/8ebd055bb3760c7a01193df890ca7e56d7ff9c01))
|
|
11
|
+
* **client:** add support for aiohttp ([4237321](https://github.com/runloopai/api-client-python/commit/4237321688934fcc89a17588800ce33fb47d9633))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* **tests:** fix: tests which call HTTP endpoints directly with the example parameters ([038fe71](https://github.com/runloopai/api-client-python/commit/038fe71f5d0bee93bdcad12af69a8f5b09b6664f))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Chores
|
|
20
|
+
|
|
21
|
+
* **ci:** enable for pull requests ([f64b8a2](https://github.com/runloopai/api-client-python/commit/f64b8a2a52a28a86f25d8b8ad1998e9ce4dda542))
|
|
22
|
+
* **internal:** update conftest.py ([d840c86](https://github.com/runloopai/api-client-python/commit/d840c863eb3b080202874080e44b8ab0baa379c4))
|
|
23
|
+
* **readme:** update badges ([4b5af3f](https://github.com/runloopai/api-client-python/commit/4b5af3faf2f3cfbcee8474b864335eb0a4c0a78b))
|
|
24
|
+
* **tests:** add tests for httpx client instantiation & proxies ([938b9aa](https://github.com/runloopai/api-client-python/commit/938b9aa33ef7ae52809ca6e9111fc3265d70263d))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Documentation
|
|
28
|
+
|
|
29
|
+
* **client:** fix httpx.Timeout documentation reference ([b8df915](https://github.com/runloopai/api-client-python/commit/b8df91557df34f77ce5a6f85769305628d9f2a1d))
|
|
30
|
+
|
|
31
|
+
## 0.43.0 (2025-06-14)
|
|
32
|
+
|
|
33
|
+
Full Changelog: [v0.42.0...v0.43.0](https://github.com/runloopai/api-client-python/compare/v0.42.0...v0.43.0)
|
|
34
|
+
|
|
35
|
+
### Features
|
|
36
|
+
|
|
37
|
+
* **api:** api update ([695b29a](https://github.com/runloopai/api-client-python/commit/695b29a97bd2dcad3f90ee377ed0475a84ed1a2b))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Bug Fixes
|
|
41
|
+
|
|
42
|
+
* **client:** correctly parse binary response | stream ([1d815d4](https://github.com/runloopai/api-client-python/commit/1d815d468db24142174fe536c05dcd3ec49ee03f))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Chores
|
|
46
|
+
|
|
47
|
+
* **tests:** run tests in parallel ([fdeee42](https://github.com/runloopai/api-client-python/commit/fdeee42440c5df55af77cbad2423c7faab473dcd))
|
|
48
|
+
|
|
3
49
|
## 0.42.0 (2025-06-11)
|
|
4
50
|
|
|
5
51
|
Full Changelog: [v0.41.0...v0.42.0](https://github.com/runloopai/api-client-python/compare/v0.41.0...v0.42.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.44.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
|
|
@@ -27,11 +27,14 @@ Requires-Dist: httpx<1,>=0.23.0
|
|
|
27
27
|
Requires-Dist: pydantic<3,>=1.9.0
|
|
28
28
|
Requires-Dist: sniffio
|
|
29
29
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
30
|
+
Provides-Extra: aiohttp
|
|
31
|
+
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
32
|
+
Requires-Dist: httpx-aiohttp>=0.1.6; extra == 'aiohttp'
|
|
30
33
|
Description-Content-Type: text/markdown
|
|
31
34
|
|
|
32
35
|
# Runloop Python API library
|
|
33
36
|
|
|
34
|
-
[](https://pypi.org/project/runloop_api_client/)
|
|
37
|
+
[>)](https://pypi.org/project/runloop_api_client/)
|
|
35
38
|
|
|
36
39
|
The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
|
|
37
40
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -95,6 +98,38 @@ asyncio.run(main())
|
|
|
95
98
|
|
|
96
99
|
Functionality between the synchronous and asynchronous clients is otherwise identical.
|
|
97
100
|
|
|
101
|
+
### With aiohttp
|
|
102
|
+
|
|
103
|
+
By default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.
|
|
104
|
+
|
|
105
|
+
You can enable this by installing `aiohttp`:
|
|
106
|
+
|
|
107
|
+
```sh
|
|
108
|
+
# install from PyPI
|
|
109
|
+
pip install runloop_api_client[aiohttp]
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
import os
|
|
116
|
+
import asyncio
|
|
117
|
+
from runloop_api_client import DefaultAioHttpClient
|
|
118
|
+
from runloop_api_client import AsyncRunloop
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
async def main() -> None:
|
|
122
|
+
async with AsyncRunloop(
|
|
123
|
+
bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
|
|
124
|
+
http_client=DefaultAioHttpClient(),
|
|
125
|
+
) as client:
|
|
126
|
+
devbox_view = await client.devboxes.create()
|
|
127
|
+
print(devbox_view.id)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
asyncio.run(main())
|
|
131
|
+
```
|
|
132
|
+
|
|
98
133
|
## Using types
|
|
99
134
|
|
|
100
135
|
Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:
|
|
@@ -266,7 +301,7 @@ client.with_options(max_retries=5).devboxes.create()
|
|
|
266
301
|
### Timeouts
|
|
267
302
|
|
|
268
303
|
By default requests time out after 1 minute. You can configure this with a `timeout` option,
|
|
269
|
-
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:
|
|
304
|
+
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:
|
|
270
305
|
|
|
271
306
|
```python
|
|
272
307
|
from runloop_api_client import Runloop
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Runloop Python API library
|
|
2
2
|
|
|
3
|
-
[](https://pypi.org/project/runloop_api_client/)
|
|
3
|
+
[>)](https://pypi.org/project/runloop_api_client/)
|
|
4
4
|
|
|
5
5
|
The Runloop Python library provides convenient access to the Runloop REST API from any Python 3.8+
|
|
6
6
|
application. The library includes type definitions for all request params and response fields,
|
|
@@ -64,6 +64,38 @@ asyncio.run(main())
|
|
|
64
64
|
|
|
65
65
|
Functionality between the synchronous and asynchronous clients is otherwise identical.
|
|
66
66
|
|
|
67
|
+
### With aiohttp
|
|
68
|
+
|
|
69
|
+
By default, the async client uses `httpx` for HTTP requests. However, for improved concurrency performance you may also use `aiohttp` as the HTTP backend.
|
|
70
|
+
|
|
71
|
+
You can enable this by installing `aiohttp`:
|
|
72
|
+
|
|
73
|
+
```sh
|
|
74
|
+
# install from PyPI
|
|
75
|
+
pip install runloop_api_client[aiohttp]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
79
|
+
|
|
80
|
+
```python
|
|
81
|
+
import os
|
|
82
|
+
import asyncio
|
|
83
|
+
from runloop_api_client import DefaultAioHttpClient
|
|
84
|
+
from runloop_api_client import AsyncRunloop
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
async def main() -> None:
|
|
88
|
+
async with AsyncRunloop(
|
|
89
|
+
bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
|
|
90
|
+
http_client=DefaultAioHttpClient(),
|
|
91
|
+
) as client:
|
|
92
|
+
devbox_view = await client.devboxes.create()
|
|
93
|
+
print(devbox_view.id)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
asyncio.run(main())
|
|
97
|
+
```
|
|
98
|
+
|
|
67
99
|
## Using types
|
|
68
100
|
|
|
69
101
|
Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typing.html#typing.TypedDict). Responses are [Pydantic models](https://docs.pydantic.dev) which also provide helper methods for things like:
|
|
@@ -235,7 +267,7 @@ client.with_options(max_retries=5).devboxes.create()
|
|
|
235
267
|
### Timeouts
|
|
236
268
|
|
|
237
269
|
By default requests time out after 1 minute. You can configure this with a `timeout` option,
|
|
238
|
-
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:
|
|
270
|
+
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/timeouts/#fine-tuning-the-configuration) object:
|
|
239
271
|
|
|
240
272
|
```python
|
|
241
273
|
from runloop_api_client import Runloop
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "runloop_api_client"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.44.0"
|
|
4
4
|
description = "The official Python library for the runloop API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "MIT"
|
|
@@ -37,6 +37,8 @@ classifiers = [
|
|
|
37
37
|
Homepage = "https://github.com/runloopai/api-client-python"
|
|
38
38
|
Repository = "https://github.com/runloopai/api-client-python"
|
|
39
39
|
|
|
40
|
+
[project.optional-dependencies]
|
|
41
|
+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.6"]
|
|
40
42
|
|
|
41
43
|
[tool.rye]
|
|
42
44
|
managed = true
|
|
@@ -54,6 +56,7 @@ dev-dependencies = [
|
|
|
54
56
|
"importlib-metadata>=6.7.0",
|
|
55
57
|
"rich>=13.7.1",
|
|
56
58
|
"nest_asyncio==1.6.0",
|
|
59
|
+
"pytest-xdist>=3.6.1",
|
|
57
60
|
]
|
|
58
61
|
|
|
59
62
|
[tool.rye.scripts]
|
|
@@ -125,7 +128,7 @@ replacement = '[\1](https://github.com/runloopai/api-client-python/tree/main/\g<
|
|
|
125
128
|
|
|
126
129
|
[tool.pytest.ini_options]
|
|
127
130
|
testpaths = ["tests"]
|
|
128
|
-
addopts = "--tb=short"
|
|
131
|
+
addopts = "--tb=short -n auto"
|
|
129
132
|
xfail_strict = true
|
|
130
133
|
asyncio_mode = "auto"
|
|
131
134
|
asyncio_default_fixture_loop_scope = "session"
|
|
@@ -10,6 +10,13 @@
|
|
|
10
10
|
# universal: false
|
|
11
11
|
|
|
12
12
|
-e file:.
|
|
13
|
+
aiohappyeyeballs==2.6.1
|
|
14
|
+
# via aiohttp
|
|
15
|
+
aiohttp==3.12.8
|
|
16
|
+
# via httpx-aiohttp
|
|
17
|
+
# via runloop-api-client
|
|
18
|
+
aiosignal==1.3.2
|
|
19
|
+
# via aiohttp
|
|
13
20
|
annotated-types==0.6.0
|
|
14
21
|
# via pydantic
|
|
15
22
|
anyio==4.4.0
|
|
@@ -17,6 +24,10 @@ anyio==4.4.0
|
|
|
17
24
|
# via runloop-api-client
|
|
18
25
|
argcomplete==3.1.2
|
|
19
26
|
# via nox
|
|
27
|
+
async-timeout==5.0.1
|
|
28
|
+
# via aiohttp
|
|
29
|
+
attrs==25.3.0
|
|
30
|
+
# via aiohttp
|
|
20
31
|
certifi==2023.7.22
|
|
21
32
|
# via httpcore
|
|
22
33
|
# via httpx
|
|
@@ -30,18 +41,27 @@ distro==1.8.0
|
|
|
30
41
|
exceptiongroup==1.2.2
|
|
31
42
|
# via anyio
|
|
32
43
|
# via pytest
|
|
44
|
+
execnet==2.1.1
|
|
45
|
+
# via pytest-xdist
|
|
33
46
|
filelock==3.12.4
|
|
34
47
|
# via virtualenv
|
|
48
|
+
frozenlist==1.6.2
|
|
49
|
+
# via aiohttp
|
|
50
|
+
# via aiosignal
|
|
35
51
|
h11==0.14.0
|
|
36
52
|
# via httpcore
|
|
37
53
|
httpcore==1.0.2
|
|
38
54
|
# via httpx
|
|
39
55
|
httpx==0.28.1
|
|
56
|
+
# via httpx-aiohttp
|
|
40
57
|
# via respx
|
|
41
58
|
# via runloop-api-client
|
|
59
|
+
httpx-aiohttp==0.1.6
|
|
60
|
+
# via runloop-api-client
|
|
42
61
|
idna==3.4
|
|
43
62
|
# via anyio
|
|
44
63
|
# via httpx
|
|
64
|
+
# via yarl
|
|
45
65
|
importlib-metadata==7.0.0
|
|
46
66
|
iniconfig==2.0.0
|
|
47
67
|
# via pytest
|
|
@@ -49,6 +69,9 @@ markdown-it-py==3.0.0
|
|
|
49
69
|
# via rich
|
|
50
70
|
mdurl==0.1.2
|
|
51
71
|
# via markdown-it-py
|
|
72
|
+
multidict==6.4.4
|
|
73
|
+
# via aiohttp
|
|
74
|
+
# via yarl
|
|
52
75
|
mypy==1.14.1
|
|
53
76
|
mypy-extensions==1.0.0
|
|
54
77
|
# via mypy
|
|
@@ -63,6 +86,9 @@ platformdirs==3.11.0
|
|
|
63
86
|
# via virtualenv
|
|
64
87
|
pluggy==1.5.0
|
|
65
88
|
# via pytest
|
|
89
|
+
propcache==0.3.1
|
|
90
|
+
# via aiohttp
|
|
91
|
+
# via yarl
|
|
66
92
|
pydantic==2.10.3
|
|
67
93
|
# via runloop-api-client
|
|
68
94
|
pydantic-core==2.27.1
|
|
@@ -72,7 +98,9 @@ pygments==2.18.0
|
|
|
72
98
|
pyright==1.1.399
|
|
73
99
|
pytest==8.3.3
|
|
74
100
|
# via pytest-asyncio
|
|
101
|
+
# via pytest-xdist
|
|
75
102
|
pytest-asyncio==0.24.0
|
|
103
|
+
pytest-xdist==3.7.0
|
|
76
104
|
python-dateutil==2.8.2
|
|
77
105
|
# via time-machine
|
|
78
106
|
pytz==2023.3.post1
|
|
@@ -93,6 +121,7 @@ tomli==2.0.2
|
|
|
93
121
|
# via pytest
|
|
94
122
|
typing-extensions==4.12.2
|
|
95
123
|
# via anyio
|
|
124
|
+
# via multidict
|
|
96
125
|
# via mypy
|
|
97
126
|
# via pydantic
|
|
98
127
|
# via pydantic-core
|
|
@@ -100,5 +129,7 @@ typing-extensions==4.12.2
|
|
|
100
129
|
# via runloop-api-client
|
|
101
130
|
virtualenv==20.24.5
|
|
102
131
|
# via nox
|
|
132
|
+
yarl==1.20.0
|
|
133
|
+
# via aiohttp
|
|
103
134
|
zipp==3.17.0
|
|
104
135
|
# via importlib-metadata
|
|
@@ -10,11 +10,22 @@
|
|
|
10
10
|
# universal: false
|
|
11
11
|
|
|
12
12
|
-e file:.
|
|
13
|
+
aiohappyeyeballs==2.6.1
|
|
14
|
+
# via aiohttp
|
|
15
|
+
aiohttp==3.12.8
|
|
16
|
+
# via httpx-aiohttp
|
|
17
|
+
# via runloop-api-client
|
|
18
|
+
aiosignal==1.3.2
|
|
19
|
+
# via aiohttp
|
|
13
20
|
annotated-types==0.6.0
|
|
14
21
|
# via pydantic
|
|
15
22
|
anyio==4.4.0
|
|
16
23
|
# via httpx
|
|
17
24
|
# via runloop-api-client
|
|
25
|
+
async-timeout==5.0.1
|
|
26
|
+
# via aiohttp
|
|
27
|
+
attrs==25.3.0
|
|
28
|
+
# via aiohttp
|
|
18
29
|
certifi==2023.7.22
|
|
19
30
|
# via httpcore
|
|
20
31
|
# via httpx
|
|
@@ -22,15 +33,28 @@ distro==1.8.0
|
|
|
22
33
|
# via runloop-api-client
|
|
23
34
|
exceptiongroup==1.2.2
|
|
24
35
|
# via anyio
|
|
36
|
+
frozenlist==1.6.2
|
|
37
|
+
# via aiohttp
|
|
38
|
+
# via aiosignal
|
|
25
39
|
h11==0.14.0
|
|
26
40
|
# via httpcore
|
|
27
41
|
httpcore==1.0.2
|
|
28
42
|
# via httpx
|
|
29
43
|
httpx==0.28.1
|
|
44
|
+
# via httpx-aiohttp
|
|
45
|
+
# via runloop-api-client
|
|
46
|
+
httpx-aiohttp==0.1.6
|
|
30
47
|
# via runloop-api-client
|
|
31
48
|
idna==3.4
|
|
32
49
|
# via anyio
|
|
33
50
|
# via httpx
|
|
51
|
+
# via yarl
|
|
52
|
+
multidict==6.4.4
|
|
53
|
+
# via aiohttp
|
|
54
|
+
# via yarl
|
|
55
|
+
propcache==0.3.1
|
|
56
|
+
# via aiohttp
|
|
57
|
+
# via yarl
|
|
34
58
|
pydantic==2.10.3
|
|
35
59
|
# via runloop-api-client
|
|
36
60
|
pydantic-core==2.27.1
|
|
@@ -40,6 +64,9 @@ sniffio==1.3.0
|
|
|
40
64
|
# via runloop-api-client
|
|
41
65
|
typing-extensions==4.12.2
|
|
42
66
|
# via anyio
|
|
67
|
+
# via multidict
|
|
43
68
|
# via pydantic
|
|
44
69
|
# via pydantic-core
|
|
45
70
|
# via runloop-api-client
|
|
71
|
+
yarl==1.20.0
|
|
72
|
+
# via aiohttp
|
|
@@ -26,7 +26,7 @@ from ._exceptions import (
|
|
|
26
26
|
UnprocessableEntityError,
|
|
27
27
|
APIResponseValidationError,
|
|
28
28
|
)
|
|
29
|
-
from ._base_client import DefaultHttpxClient, DefaultAsyncHttpxClient
|
|
29
|
+
from ._base_client import DefaultHttpxClient, DefaultAioHttpClient, DefaultAsyncHttpxClient
|
|
30
30
|
from ._utils._logs import setup_logging as _setup_logging
|
|
31
31
|
|
|
32
32
|
__all__ = [
|
|
@@ -68,6 +68,7 @@ __all__ = [
|
|
|
68
68
|
"DEFAULT_CONNECTION_LIMITS",
|
|
69
69
|
"DefaultHttpxClient",
|
|
70
70
|
"DefaultAsyncHttpxClient",
|
|
71
|
+
"DefaultAioHttpClient",
|
|
71
72
|
]
|
|
72
73
|
|
|
73
74
|
if not _t.TYPE_CHECKING:
|
{runloop_api_client-0.42.0 → runloop_api_client-0.44.0}/src/runloop_api_client/_base_client.py
RENAMED
|
@@ -1071,7 +1071,14 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1071
1071
|
) -> ResponseT:
|
|
1072
1072
|
origin = get_origin(cast_to) or cast_to
|
|
1073
1073
|
|
|
1074
|
-
if
|
|
1074
|
+
if (
|
|
1075
|
+
inspect.isclass(origin)
|
|
1076
|
+
and issubclass(origin, BaseAPIResponse)
|
|
1077
|
+
# we only want to actually return the custom BaseAPIResponse class if we're
|
|
1078
|
+
# returning the raw response, or if we're not streaming SSE, as if we're streaming
|
|
1079
|
+
# SSE then `cast_to` doesn't actively reflect the type we need to parse into
|
|
1080
|
+
and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
|
|
1081
|
+
):
|
|
1075
1082
|
if not issubclass(origin, APIResponse):
|
|
1076
1083
|
raise TypeError(f"API Response types must subclass {APIResponse}; Received {origin}")
|
|
1077
1084
|
|
|
@@ -1282,6 +1289,24 @@ class _DefaultAsyncHttpxClient(httpx.AsyncClient):
|
|
|
1282
1289
|
super().__init__(**kwargs)
|
|
1283
1290
|
|
|
1284
1291
|
|
|
1292
|
+
try:
|
|
1293
|
+
import httpx_aiohttp
|
|
1294
|
+
except ImportError:
|
|
1295
|
+
|
|
1296
|
+
class _DefaultAioHttpClient(httpx.AsyncClient):
|
|
1297
|
+
def __init__(self, **_kwargs: Any) -> None:
|
|
1298
|
+
raise RuntimeError("To use the aiohttp client you must have installed the package with the `aiohttp` extra")
|
|
1299
|
+
else:
|
|
1300
|
+
|
|
1301
|
+
class _DefaultAioHttpClient(httpx_aiohttp.HttpxAiohttpClient): # type: ignore
|
|
1302
|
+
def __init__(self, **kwargs: Any) -> None:
|
|
1303
|
+
kwargs.setdefault("timeout", DEFAULT_TIMEOUT)
|
|
1304
|
+
kwargs.setdefault("limits", DEFAULT_CONNECTION_LIMITS)
|
|
1305
|
+
kwargs.setdefault("follow_redirects", True)
|
|
1306
|
+
|
|
1307
|
+
super().__init__(**kwargs)
|
|
1308
|
+
|
|
1309
|
+
|
|
1285
1310
|
if TYPE_CHECKING:
|
|
1286
1311
|
DefaultAsyncHttpxClient = httpx.AsyncClient
|
|
1287
1312
|
"""An alias to `httpx.AsyncClient` that provides the same defaults that this SDK
|
|
@@ -1290,8 +1315,12 @@ if TYPE_CHECKING:
|
|
|
1290
1315
|
This is useful because overriding the `http_client` with your own instance of
|
|
1291
1316
|
`httpx.AsyncClient` will result in httpx's defaults being used, not ours.
|
|
1292
1317
|
"""
|
|
1318
|
+
|
|
1319
|
+
DefaultAioHttpClient = httpx.AsyncClient
|
|
1320
|
+
"""An alias to `httpx.AsyncClient` that changes the default HTTP transport to `aiohttp`."""
|
|
1293
1321
|
else:
|
|
1294
1322
|
DefaultAsyncHttpxClient = _DefaultAsyncHttpxClient
|
|
1323
|
+
DefaultAioHttpClient = _DefaultAioHttpClient
|
|
1295
1324
|
|
|
1296
1325
|
|
|
1297
1326
|
class AsyncHttpxClientWrapper(DefaultAsyncHttpxClient):
|
|
@@ -1574,7 +1603,14 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1574
1603
|
) -> ResponseT:
|
|
1575
1604
|
origin = get_origin(cast_to) or cast_to
|
|
1576
1605
|
|
|
1577
|
-
if
|
|
1606
|
+
if (
|
|
1607
|
+
inspect.isclass(origin)
|
|
1608
|
+
and issubclass(origin, BaseAPIResponse)
|
|
1609
|
+
# we only want to actually return the custom BaseAPIResponse class if we're
|
|
1610
|
+
# returning the raw response, or if we're not streaming SSE, as if we're streaming
|
|
1611
|
+
# SSE then `cast_to` doesn't actively reflect the type we need to parse into
|
|
1612
|
+
and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
|
|
1613
|
+
):
|
|
1578
1614
|
if not issubclass(origin, AsyncAPIResponse):
|
|
1579
1615
|
raise TypeError(f"API Response types must subclass {AsyncAPIResponse}; Received {origin}")
|
|
1580
1616
|
|
|
@@ -185,12 +185,12 @@ class ScenariosResource(SyncAPIResource):
|
|
|
185
185
|
self,
|
|
186
186
|
id: str,
|
|
187
187
|
*,
|
|
188
|
-
input_context: InputContextParam,
|
|
189
|
-
name: str,
|
|
190
|
-
scoring_contract: ScoringContractParam,
|
|
191
188
|
environment_parameters: Optional[ScenarioEnvironmentParam] | NotGiven = NOT_GIVEN,
|
|
189
|
+
input_context: Optional[InputContextParam] | NotGiven = NOT_GIVEN,
|
|
192
190
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
191
|
+
name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
193
192
|
reference_output: Optional[str] | NotGiven = NOT_GIVEN,
|
|
193
|
+
scoring_contract: Optional[ScoringContractParam] | NotGiven = NOT_GIVEN,
|
|
194
194
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
195
195
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
196
196
|
extra_headers: Headers | None = None,
|
|
@@ -201,23 +201,24 @@ class ScenariosResource(SyncAPIResource):
|
|
|
201
201
|
) -> ScenarioView:
|
|
202
202
|
"""
|
|
203
203
|
Update a Scenario, a repeatable AI coding evaluation test that defines the
|
|
204
|
-
starting environment as well as evaluation success criteria.
|
|
204
|
+
starting environment as well as evaluation success criteria. Only provided
|
|
205
|
+
fields will be updated.
|
|
205
206
|
|
|
206
207
|
Args:
|
|
207
|
-
input_context: The input context for the Scenario.
|
|
208
|
-
|
|
209
|
-
name: Name of the scenario.
|
|
210
|
-
|
|
211
|
-
scoring_contract: The scoring contract for the Scenario.
|
|
212
|
-
|
|
213
208
|
environment_parameters: The Environment in which the Scenario will run.
|
|
214
209
|
|
|
210
|
+
input_context: The input context for the Scenario.
|
|
211
|
+
|
|
215
212
|
metadata: User defined metadata to attach to the scenario for organization.
|
|
216
213
|
|
|
214
|
+
name: Name of the scenario.
|
|
215
|
+
|
|
217
216
|
reference_output: A string representation of the reference output to solve the scenario. Commonly
|
|
218
217
|
can be the result of a git diff or a sequence of command actions to apply to the
|
|
219
218
|
environment.
|
|
220
219
|
|
|
220
|
+
scoring_contract: The scoring contract for the Scenario.
|
|
221
|
+
|
|
221
222
|
extra_headers: Send extra headers
|
|
222
223
|
|
|
223
224
|
extra_query: Add additional query parameters to the request
|
|
@@ -234,12 +235,12 @@ class ScenariosResource(SyncAPIResource):
|
|
|
234
235
|
f"/v1/scenarios/{id}",
|
|
235
236
|
body=maybe_transform(
|
|
236
237
|
{
|
|
237
|
-
"input_context": input_context,
|
|
238
|
-
"name": name,
|
|
239
|
-
"scoring_contract": scoring_contract,
|
|
240
238
|
"environment_parameters": environment_parameters,
|
|
239
|
+
"input_context": input_context,
|
|
241
240
|
"metadata": metadata,
|
|
241
|
+
"name": name,
|
|
242
242
|
"reference_output": reference_output,
|
|
243
|
+
"scoring_contract": scoring_contract,
|
|
243
244
|
},
|
|
244
245
|
scenario_update_params.ScenarioUpdateParams,
|
|
245
246
|
),
|
|
@@ -256,6 +257,7 @@ class ScenariosResource(SyncAPIResource):
|
|
|
256
257
|
def list(
|
|
257
258
|
self,
|
|
258
259
|
*,
|
|
260
|
+
benchmark_id: str | NotGiven = NOT_GIVEN,
|
|
259
261
|
limit: int | NotGiven = NOT_GIVEN,
|
|
260
262
|
name: str | NotGiven = NOT_GIVEN,
|
|
261
263
|
starting_after: str | NotGiven = NOT_GIVEN,
|
|
@@ -266,12 +268,13 @@ class ScenariosResource(SyncAPIResource):
|
|
|
266
268
|
extra_body: Body | None = None,
|
|
267
269
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
268
270
|
) -> SyncScenariosCursorIDPage[ScenarioView]:
|
|
269
|
-
"""
|
|
271
|
+
"""
|
|
272
|
+
List all Scenarios matching filter.
|
|
270
273
|
|
|
271
274
|
Args:
|
|
272
|
-
|
|
275
|
+
benchmark_id: Filter scenarios by benchmark ID.
|
|
273
276
|
|
|
274
|
-
|
|
277
|
+
limit: The limit of items to return. Default is 20.
|
|
275
278
|
|
|
276
279
|
name: Query for Scenarios with a given name.
|
|
277
280
|
|
|
@@ -295,6 +298,7 @@ class ScenariosResource(SyncAPIResource):
|
|
|
295
298
|
timeout=timeout,
|
|
296
299
|
query=maybe_transform(
|
|
297
300
|
{
|
|
301
|
+
"benchmark_id": benchmark_id,
|
|
298
302
|
"limit": limit,
|
|
299
303
|
"name": name,
|
|
300
304
|
"starting_after": starting_after,
|
|
@@ -608,12 +612,12 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
608
612
|
self,
|
|
609
613
|
id: str,
|
|
610
614
|
*,
|
|
611
|
-
input_context: InputContextParam,
|
|
612
|
-
name: str,
|
|
613
|
-
scoring_contract: ScoringContractParam,
|
|
614
615
|
environment_parameters: Optional[ScenarioEnvironmentParam] | NotGiven = NOT_GIVEN,
|
|
616
|
+
input_context: Optional[InputContextParam] | NotGiven = NOT_GIVEN,
|
|
615
617
|
metadata: Optional[Dict[str, str]] | NotGiven = NOT_GIVEN,
|
|
618
|
+
name: Optional[str] | NotGiven = NOT_GIVEN,
|
|
616
619
|
reference_output: Optional[str] | NotGiven = NOT_GIVEN,
|
|
620
|
+
scoring_contract: Optional[ScoringContractParam] | NotGiven = NOT_GIVEN,
|
|
617
621
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
618
622
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
619
623
|
extra_headers: Headers | None = None,
|
|
@@ -624,23 +628,24 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
624
628
|
) -> ScenarioView:
|
|
625
629
|
"""
|
|
626
630
|
Update a Scenario, a repeatable AI coding evaluation test that defines the
|
|
627
|
-
starting environment as well as evaluation success criteria.
|
|
631
|
+
starting environment as well as evaluation success criteria. Only provided
|
|
632
|
+
fields will be updated.
|
|
628
633
|
|
|
629
634
|
Args:
|
|
630
|
-
input_context: The input context for the Scenario.
|
|
631
|
-
|
|
632
|
-
name: Name of the scenario.
|
|
633
|
-
|
|
634
|
-
scoring_contract: The scoring contract for the Scenario.
|
|
635
|
-
|
|
636
635
|
environment_parameters: The Environment in which the Scenario will run.
|
|
637
636
|
|
|
637
|
+
input_context: The input context for the Scenario.
|
|
638
|
+
|
|
638
639
|
metadata: User defined metadata to attach to the scenario for organization.
|
|
639
640
|
|
|
641
|
+
name: Name of the scenario.
|
|
642
|
+
|
|
640
643
|
reference_output: A string representation of the reference output to solve the scenario. Commonly
|
|
641
644
|
can be the result of a git diff or a sequence of command actions to apply to the
|
|
642
645
|
environment.
|
|
643
646
|
|
|
647
|
+
scoring_contract: The scoring contract for the Scenario.
|
|
648
|
+
|
|
644
649
|
extra_headers: Send extra headers
|
|
645
650
|
|
|
646
651
|
extra_query: Add additional query parameters to the request
|
|
@@ -657,12 +662,12 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
657
662
|
f"/v1/scenarios/{id}",
|
|
658
663
|
body=await async_maybe_transform(
|
|
659
664
|
{
|
|
660
|
-
"input_context": input_context,
|
|
661
|
-
"name": name,
|
|
662
|
-
"scoring_contract": scoring_contract,
|
|
663
665
|
"environment_parameters": environment_parameters,
|
|
666
|
+
"input_context": input_context,
|
|
664
667
|
"metadata": metadata,
|
|
668
|
+
"name": name,
|
|
665
669
|
"reference_output": reference_output,
|
|
670
|
+
"scoring_contract": scoring_contract,
|
|
666
671
|
},
|
|
667
672
|
scenario_update_params.ScenarioUpdateParams,
|
|
668
673
|
),
|
|
@@ -679,6 +684,7 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
679
684
|
def list(
|
|
680
685
|
self,
|
|
681
686
|
*,
|
|
687
|
+
benchmark_id: str | NotGiven = NOT_GIVEN,
|
|
682
688
|
limit: int | NotGiven = NOT_GIVEN,
|
|
683
689
|
name: str | NotGiven = NOT_GIVEN,
|
|
684
690
|
starting_after: str | NotGiven = NOT_GIVEN,
|
|
@@ -689,12 +695,13 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
689
695
|
extra_body: Body | None = None,
|
|
690
696
|
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
|
|
691
697
|
) -> AsyncPaginator[ScenarioView, AsyncScenariosCursorIDPage[ScenarioView]]:
|
|
692
|
-
"""
|
|
698
|
+
"""
|
|
699
|
+
List all Scenarios matching filter.
|
|
693
700
|
|
|
694
701
|
Args:
|
|
695
|
-
|
|
702
|
+
benchmark_id: Filter scenarios by benchmark ID.
|
|
696
703
|
|
|
697
|
-
|
|
704
|
+
limit: The limit of items to return. Default is 20.
|
|
698
705
|
|
|
699
706
|
name: Query for Scenarios with a given name.
|
|
700
707
|
|
|
@@ -718,6 +725,7 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
718
725
|
timeout=timeout,
|
|
719
726
|
query=maybe_transform(
|
|
720
727
|
{
|
|
728
|
+
"benchmark_id": benchmark_id,
|
|
721
729
|
"limit": limit,
|
|
722
730
|
"name": name,
|
|
723
731
|
"starting_after": starting_after,
|