runloop_api_client 0.68.0__tar.gz → 1.0.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.68.0 → runloop_api_client-1.0.0}/.gitignore +4 -1
- runloop_api_client-1.0.0/.release-please-manifest.json +3 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/CHANGELOG.md +46 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/PKG-INFO +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/README-SDK.md +20 -18
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/pyproject.toml +7 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/blueprints.py +11 -32
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/devboxes/devboxes.py +6 -6
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/scenarios/scenarios.py +22 -10
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/__init__.py +12 -3
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/_helpers.py +6 -6
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/_types.py +30 -15
- runloop_api_client-1.0.0/src/runloop_api_client/sdk/async_.py +639 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/async_blueprint.py +22 -29
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/async_devbox.py +227 -123
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/async_execution.py +15 -26
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/async_execution_result.py +33 -35
- runloop_api_client-1.0.0/src/runloop_api_client/sdk/async_scorer.py +77 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/async_snapshot.py +26 -35
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/async_storage_object.py +39 -52
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/blueprint.py +22 -29
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/devbox.py +223 -124
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/execution.py +15 -26
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/execution_result.py +34 -37
- runloop_api_client-1.0.0/src/runloop_api_client/sdk/scorer.py +77 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/snapshot.py +26 -35
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/storage_object.py +39 -52
- runloop_api_client-1.0.0/src/runloop_api_client/sdk/sync.py +634 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_build_parameters.py +1 -16
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_create_params.py +1 -16
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_preview_params.py +1 -16
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_create_params.py +3 -3
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_execute_async_params.py +11 -9
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_create_response.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_list_response.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_retrieve_response.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_update_response.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/code_mount_parameters.py +3 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/launch_parameters.py +1 -1
- runloop_api_client-1.0.0/src/runloop_api_client/types/shared/mount.py +28 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/run_profile.py +5 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/code_mount_parameters.py +3 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/launch_parameters.py +1 -1
- runloop_api_client-1.0.0/src/runloop_api_client/types/shared_params/mount.py +25 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/run_profile.py +5 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_benchmarks.py +14 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_blueprints.py +4 -24
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_devboxes.py +2 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_scenarios.py +14 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/async_devbox/test_core.py +6 -6
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/async_devbox/test_interfaces.py +3 -3
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/async_devbox/test_streaming.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/conftest.py +16 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/devbox/test_core.py +6 -6
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/devbox/test_interfaces.py +6 -6
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/devbox/test_streaming.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_async_blueprint.py +4 -4
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_async_execution_result.py +2 -2
- runloop_api_client-1.0.0/tests/sdk/test_async_ops.py +758 -0
- runloop_api_client-1.0.0/tests/sdk/test_async_scorer.py +69 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_async_snapshot.py +5 -5
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_async_storage_object.py +5 -5
- runloop_api_client-1.0.0/tests/sdk/test_ops.py +692 -0
- runloop_api_client-1.0.0/tests/sdk/test_scorer.py +71 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_async_blueprint.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_async_devbox.py +329 -11
- runloop_api_client-1.0.0/tests/smoketests/sdk/test_async_scorer.py +122 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_async_storage_object.py +54 -15
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_blueprint.py +1 -1
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_devbox.py +322 -11
- runloop_api_client-1.0.0/tests/smoketests/sdk/test_scorer.py +122 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_storage_object.py +54 -15
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_streaming.py +2 -0
- runloop_api_client-1.0.0/uv.lock +3011 -0
- runloop_api_client-0.68.0/.release-please-manifest.json +0 -3
- runloop_api_client-0.68.0/src/runloop_api_client/sdk/async_.py +0 -511
- runloop_api_client-0.68.0/src/runloop_api_client/sdk/protocols.py +0 -201
- runloop_api_client-0.68.0/src/runloop_api_client/sdk/sync.py +0 -503
- runloop_api_client-0.68.0/src/runloop_api_client/types/shared/mount.py +0 -12
- runloop_api_client-0.68.0/src/runloop_api_client/types/shared_params/mount.py +0 -13
- runloop_api_client-0.68.0/tests/sdk/test_async_clients.py +0 -363
- runloop_api_client-0.68.0/tests/sdk/test_clients.py +0 -345
- runloop_api_client-0.68.0/uv.lock +0 -1598
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/CONTRIBUTING.md +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/LICENSE +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/README.md +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/SECURITY.md +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/api.md +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/bin/check-release-environment +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/bin/publish-pypi +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/examples/.keep +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/release-please-config.json +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/requirements-dev.lock +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_base_client.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_compat.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_files.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_types.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_compat.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_datetime_parse.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_proxy.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_reflection.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_resources_proxy.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_utils.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/_utils/_validation.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/lib/polling.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/lib/polling_async.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/pagination.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/agents.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/benchmarks/benchmarks.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/benchmarks/runs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/devboxes/browsers.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/devboxes/computers.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/devboxes/disk_snapshots.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/devboxes/executions.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/objects.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/repositories.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/scenarios/runs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/scenarios/scorers.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/resources/secrets.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/agent_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/agent_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/agent_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/agent_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_definitions_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_list_public_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_run_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_run_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_start_run_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_update_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmark_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmarks/run_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/benchmarks/run_list_scenario_runs_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_create_from_inspection_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_list_public_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_async_execution_detail_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_create_ssh_key_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_create_tunnel_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_download_file_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_execute_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_list_disk_snapshots_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_read_file_contents_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_read_file_contents_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_remove_tunnel_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_send_std_in_result.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_snapshot_disk_async_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_snapshot_disk_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_snapshot_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_snapshot_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_tunnel_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_update_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_upload_file_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_wait_for_command_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devbox_write_file_contents_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/browser_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/browser_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_keyboard_interaction_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_mouse_interaction_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_screen_interaction_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/computer_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/devbox_snapshot_async_status_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/disk_snapshot_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/disk_snapshot_update_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_execute_async_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_execute_sync_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_kill_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_retrieve_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_send_std_in_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_stream_stderr_updates_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_stream_stdout_updates_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/execution_update_chunk.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/devboxes/log_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/input_context.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/input_context_param.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/input_context_update_param.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/inspection_source_param.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/object_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/object_download_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/object_download_url_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/object_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/object_list_public_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/object_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/object_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_connection_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_connection_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_inspect_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_inspection_details.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_inspection_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_manifest_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/repository_refresh_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_definition_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_environment.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_environment_param.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_list_public_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_run_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_run_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_start_run_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_update_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenario_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/run_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_update_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_validate_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scenarios/scorer_validate_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scoring_contract.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scoring_contract_param.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scoring_contract_result_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scoring_contract_update_param.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scoring_function.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scoring_function_param.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/scoring_function_result_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/secret_create_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/secret_list_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/secret_list_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/secret_update_params.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/secret_view.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/after_idle.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/agent_mount_parameters.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/agent_source.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared/object_mount_parameters.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/after_idle.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/agent_mount_parameters.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/agent_source.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/types/shared_params/object_mount_parameters.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/benchmarks/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/benchmarks/test_runs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/devboxes/test_browsers.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/devboxes/test_computers.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/devboxes/test_disk_snapshots.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/devboxes/test_executions.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/scenarios/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/scenarios/test_runs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/scenarios/test_scorers.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_agents.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_objects.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_repositories.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/api_resources/test_secrets.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/conftest.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sample_file.txt +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/async_devbox/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/async_devbox/conftest.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/async_devbox/test_edge_cases.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/devbox/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/devbox/conftest.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/devbox/test_edge_cases.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_async_execution.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_blueprint.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_execution.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_execution_result.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_helpers.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/sdk/test_storage_object.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/README.md +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/conftest.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/README.md +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/__init__.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/conftest.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_async_sdk.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_async_snapshot.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_sdk.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/sdk/test_snapshot.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/test_blueprints.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/test_devboxes.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/test_executions.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/test_scenarios_benchmarks.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/test_snapshots.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/smoketests/utils.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_client.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_deepcopy.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_extract_files.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_files.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_models.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_polling.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_qs.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_required_args.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_response.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_transform.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_utils/test_proxy.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/test_utils/test_typing.py +0 -0
- {runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.0 (2025-12-02)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.69.0...v1.0.0](https://github.com/runloopai/api-client-python/compare/v0.69.0...v1.0.0)
|
|
6
|
+
|
|
7
|
+
### ⚠ BREAKING CHANGES
|
|
8
|
+
|
|
9
|
+
* **devbox:** made command positional arg in exec and exec_async ([#695](https://github.com/runloopai/api-client-python/issues/695))
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* **blueprints:** Add build context to the OpenAPI spec ([#6494](https://github.com/runloopai/api-client-python/issues/6494)) ([d202b94](https://github.com/runloopai/api-client-python/commit/d202b942c07614ca954a8bbe3a9a6302e9a04216))
|
|
14
|
+
* **devbox:** added devbox.shell(shellName) command and stateful shell class to SDK ([#696](https://github.com/runloopai/api-client-python/issues/696)) ([c1e8f09](https://github.com/runloopai/api-client-python/commit/c1e8f0965a419ff53d830ba3c43a1c9a29dae5c7))
|
|
15
|
+
* **devbox:** made command positional arg in exec and exec_async ([#695](https://github.com/runloopai/api-client-python/issues/695)) ([6cc8c2f](https://github.com/runloopai/api-client-python/commit/6cc8c2fd4f904e8cc4386d81558157ca6fb69bfa))
|
|
16
|
+
* **sdk:** added scorer classes to sdk ([#698](https://github.com/runloopai/api-client-python/issues/698)) ([85f798f](https://github.com/runloopai/api-client-python/commit/85f798f2d8a7727b783e01a260ff0a52bdf01d78))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Bug Fixes
|
|
20
|
+
|
|
21
|
+
* **api:** don't ignore devbox keep_alive, suspend and resume in api ([fe3589f](https://github.com/runloopai/api-client-python/commit/fe3589f5fbb36a5b79f1d4a25e86f88676556fdb))
|
|
22
|
+
* **devbox:** launch parameter typo ([1c9c346](https://github.com/runloopai/api-client-python/commit/1c9c346e475b64fc389928fee0f7140e532c4f9c))
|
|
23
|
+
* **scenarios:** update parameters for manually maintained start_run_and_await_env_ready methods ([#692](https://github.com/runloopai/api-client-python/issues/692)) ([8000495](https://github.com/runloopai/api-client-python/commit/8000495f70b2e6f4f12742fb8a6d641dbbc088ca))
|
|
24
|
+
* **scorer:** fixed RL_TEST_CONTEXT to RL_SCORER_CONTEXT ([df43a42](https://github.com/runloopai/api-client-python/commit/df43a42a45b9ce67aba27835a41c9a0ebfc6a407))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Chores
|
|
28
|
+
|
|
29
|
+
* **blueprints:** Add build context examples ([#694](https://github.com/runloopai/api-client-python/issues/694)) ([6e63928](https://github.com/runloopai/api-client-python/commit/6e6392864b3cde20dfea5d173fed9a156b960ccd))
|
|
30
|
+
* hide build context APIs ([159a38f](https://github.com/runloopai/api-client-python/commit/159a38f0980c00430a1b949541076b0d63df2df2))
|
|
31
|
+
* **mounts:** Update documentation for deprecated fields to direct the user to the replacement API ([4936844](https://github.com/runloopai/api-client-python/commit/4936844989ec7a0d37c835dd37b8007e8caba944))
|
|
32
|
+
|
|
33
|
+
## 0.69.0 (2025-11-21)
|
|
34
|
+
|
|
35
|
+
Full Changelog: [v0.68.0...v0.69.0](https://github.com/runloopai/api-client-python/compare/v0.68.0...v0.69.0)
|
|
36
|
+
|
|
37
|
+
### Features
|
|
38
|
+
|
|
39
|
+
* **blueprints:** blueprints create_and_await_build_complete now take in build_context and named_build_context arguments ([#681](https://github.com/runloopai/api-client-python/issues/681)) ([1febe28](https://github.com/runloopai/api-client-python/commit/1febe28e2cadb23eae0cc411922646ce7b8875d3))
|
|
40
|
+
* **devbox:** unify api for devbox mounts ([01c7d14](https://github.com/runloopai/api-client-python/commit/01c7d14091961822d7fe706d6fa7528b6607f87a))
|
|
41
|
+
* **docs:** add documentation for the object oriented sdk, rendered with sphinx ([#677](https://github.com/runloopai/api-client-python/issues/677)) ([e8d1053](https://github.com/runloopai/api-client-python/commit/e8d1053edd15c07f8e8099e9736f97e5fd72fcfb))
|
|
42
|
+
* **storage-objects:** Add upload_from_dir helper method ([#680](https://github.com/runloopai/api-client-python/issues/680)) ([be5d99e](https://github.com/runloopai/api-client-python/commit/be5d99ef9983a64658c38ae5e0364122d11b86c4))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Documentation
|
|
46
|
+
|
|
47
|
+
* restructured sync vs async sdk and resources, added support for more type references ([#679](https://github.com/runloopai/api-client-python/issues/679)) ([6af891e](https://github.com/runloopai/api-client-python/commit/6af891e0b87d038b5b61a683fdf410df94f495b6))
|
|
48
|
+
|
|
3
49
|
## 0.68.0 (2025-11-19)
|
|
4
50
|
|
|
5
51
|
Full Changelog: [v0.67.0...v0.68.0](https://github.com/runloopai/api-client-python/compare/v0.67.0...v0.68.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 1.0.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
|
|
@@ -38,12 +38,12 @@ runloop = RunloopSDK()
|
|
|
38
38
|
|
|
39
39
|
# Create a ready-to-use devbox
|
|
40
40
|
with runloop.devbox.create(name="my-devbox") as devbox:
|
|
41
|
-
result = devbox.cmd.exec(
|
|
41
|
+
result = devbox.cmd.exec("echo 'Hello from Runloop!'")
|
|
42
42
|
print(result.stdout())
|
|
43
43
|
|
|
44
44
|
# Stream stdout in real time
|
|
45
45
|
devbox.cmd.exec(
|
|
46
|
-
|
|
46
|
+
"ls -la",
|
|
47
47
|
stdout=lambda line: print("stdout:", line),
|
|
48
48
|
)
|
|
49
49
|
|
|
@@ -68,13 +68,13 @@ from runloop_api_client import AsyncRunloopSDK
|
|
|
68
68
|
async def main():
|
|
69
69
|
runloop = AsyncRunloopSDK()
|
|
70
70
|
async with await runloop.devbox.create(name="async-devbox") as devbox:
|
|
71
|
-
result = await devbox.cmd.exec(
|
|
71
|
+
result = await devbox.cmd.exec("pwd")
|
|
72
72
|
print(await result.stdout())
|
|
73
73
|
|
|
74
74
|
def capture(line: str) -> None:
|
|
75
75
|
print(">>", line)
|
|
76
76
|
|
|
77
|
-
await devbox.cmd.exec(
|
|
77
|
+
await devbox.cmd.exec("ls", stdout=capture)
|
|
78
78
|
|
|
79
79
|
asyncio.run(main())
|
|
80
80
|
```
|
|
@@ -147,13 +147,13 @@ Execute commands synchronously or asynchronously:
|
|
|
147
147
|
|
|
148
148
|
```python
|
|
149
149
|
# Synchronous command execution (waits for completion)
|
|
150
|
-
result = devbox.cmd.exec(
|
|
150
|
+
result = devbox.cmd.exec("ls -la")
|
|
151
151
|
print("Output:", result.stdout())
|
|
152
152
|
print("Exit code:", result.exit_code)
|
|
153
153
|
print("Success:", result.success)
|
|
154
154
|
|
|
155
155
|
# Asynchronous command execution (returns immediately)
|
|
156
|
-
execution = devbox.cmd.exec_async(
|
|
156
|
+
execution = devbox.cmd.exec_async("npm run dev")
|
|
157
157
|
|
|
158
158
|
# Check execution status
|
|
159
159
|
state = execution.get_state()
|
|
@@ -173,7 +173,7 @@ The `Execution` object provides fine-grained control over asynchronous command e
|
|
|
173
173
|
|
|
174
174
|
```python
|
|
175
175
|
# Start a long-running process
|
|
176
|
-
execution = devbox.cmd.exec_async(
|
|
176
|
+
execution = devbox.cmd.exec_async("python train_model.py")
|
|
177
177
|
|
|
178
178
|
# Get the execution ID
|
|
179
179
|
print("Execution ID:", execution.execution_id)
|
|
@@ -208,10 +208,10 @@ The `ExecutionResult` object contains the output and exit status of a completed
|
|
|
208
208
|
|
|
209
209
|
```python
|
|
210
210
|
# From synchronous execution
|
|
211
|
-
result = devbox.cmd.exec(
|
|
211
|
+
result = devbox.cmd.exec("ls -la /tmp")
|
|
212
212
|
|
|
213
213
|
# Or from asynchronous execution
|
|
214
|
-
execution = devbox.cmd.exec_async(
|
|
214
|
+
execution = devbox.cmd.exec_async("echo 'test'")
|
|
215
215
|
result = execution.result()
|
|
216
216
|
|
|
217
217
|
# Access execution results
|
|
@@ -250,7 +250,7 @@ def handle_output(line: str) -> None:
|
|
|
250
250
|
print("LOG:", line)
|
|
251
251
|
|
|
252
252
|
result = devbox.cmd.exec(
|
|
253
|
-
|
|
253
|
+
"python train.py",
|
|
254
254
|
stdout=handle_output,
|
|
255
255
|
stderr=lambda line: print("ERR:", line),
|
|
256
256
|
output=lambda line: print("ANY:", line),
|
|
@@ -267,7 +267,7 @@ def capture(line: str) -> None:
|
|
|
267
267
|
log_queue.put_nowait(line)
|
|
268
268
|
|
|
269
269
|
await devbox.cmd.exec(
|
|
270
|
-
|
|
270
|
+
"tail -f /var/log/app.log",
|
|
271
271
|
stdout=capture,
|
|
272
272
|
)
|
|
273
273
|
```
|
|
@@ -356,6 +356,8 @@ devbox.await_suspended()
|
|
|
356
356
|
devbox.shutdown()
|
|
357
357
|
```
|
|
358
358
|
|
|
359
|
+
> **State-waiting behavior:** In the synchronous SDK, `runloop.devbox.from_id()` and `devbox.resume()` block until the devbox reaches the `running` state, and `devbox.suspend()` blocks until the devbox is `suspended`. The async counterparts return immediately; call `await_running()` / `await_suspended()` explicitly if you need to wait for the state transition.
|
|
360
|
+
|
|
359
361
|
#### Context Manager Support
|
|
360
362
|
|
|
361
363
|
Devboxes support context managers for automatic cleanup:
|
|
@@ -363,13 +365,13 @@ Devboxes support context managers for automatic cleanup:
|
|
|
363
365
|
```python
|
|
364
366
|
# Synchronous
|
|
365
367
|
with runloop.devbox.create(name="temp-devbox") as devbox:
|
|
366
|
-
result = devbox.cmd.exec(
|
|
368
|
+
result = devbox.cmd.exec("echo 'Hello'")
|
|
367
369
|
print(result.stdout())
|
|
368
370
|
# devbox is automatically shutdown when exiting the context
|
|
369
371
|
|
|
370
372
|
# Asynchronous
|
|
371
373
|
async with await runloop.devbox.create(name="temp-devbox") as devbox:
|
|
372
|
-
result = await devbox.cmd.exec(
|
|
374
|
+
result = await devbox.cmd.exec("echo 'Hello'")
|
|
373
375
|
print(await result.stdout())
|
|
374
376
|
# devbox is automatically shutdown when exiting the context
|
|
375
377
|
```
|
|
@@ -584,7 +586,7 @@ devbox = runloop.devbox.create(
|
|
|
584
586
|
)
|
|
585
587
|
|
|
586
588
|
# The storage object is now accessible at /home/user/data.txt in the devbox
|
|
587
|
-
result = devbox.cmd.exec(
|
|
589
|
+
result = devbox.cmd.exec("cat /home/user/data.txt")
|
|
588
590
|
print(result.stdout()) # "Hello, World!"
|
|
589
591
|
|
|
590
592
|
# Mount archived objects (tar, tgz, gzip) - they get extracted to a directory
|
|
@@ -605,7 +607,7 @@ devbox_with_archive = runloop.devbox.create(
|
|
|
605
607
|
)
|
|
606
608
|
|
|
607
609
|
# Access extracted archive contents
|
|
608
|
-
result = devbox_with_archive.cmd.exec(
|
|
610
|
+
result = devbox_with_archive.cmd.exec("ls -la /home/user/project/")
|
|
609
611
|
print(result.stdout())
|
|
610
612
|
```
|
|
611
613
|
|
|
@@ -632,7 +634,7 @@ runloop = RunloopSDK()
|
|
|
632
634
|
|
|
633
635
|
try:
|
|
634
636
|
devbox = runloop.devbox.create(name="example-devbox")
|
|
635
|
-
result = devbox.cmd.exec(
|
|
637
|
+
result = devbox.cmd.exec("invalid-command")
|
|
636
638
|
except runloop_api_client.APIConnectionError as e:
|
|
637
639
|
print("The server could not be reached")
|
|
638
640
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
|
@@ -692,14 +694,14 @@ async def main():
|
|
|
692
694
|
|
|
693
695
|
# All the same operations, but with await
|
|
694
696
|
async with await runloop.devbox.create(name="async-devbox") as devbox:
|
|
695
|
-
result = await devbox.cmd.exec(
|
|
697
|
+
result = await devbox.cmd.exec("pwd")
|
|
696
698
|
print(await result.stdout())
|
|
697
699
|
|
|
698
700
|
# Streaming (note: callbacks must be synchronous)
|
|
699
701
|
def capture(line: str) -> None:
|
|
700
702
|
print(">>", line)
|
|
701
703
|
|
|
702
|
-
await devbox.cmd.exec(
|
|
704
|
+
await devbox.cmd.exec("ls", stdout=capture)
|
|
703
705
|
|
|
704
706
|
# Async file operations
|
|
705
707
|
await devbox.file.write(path="/tmp/test.txt", contents="Hello")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "runloop_api_client"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "1.0.0"
|
|
4
4
|
description = "The official Python library for the runloop API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "MIT"
|
|
@@ -64,6 +64,12 @@ dev = [
|
|
|
64
64
|
"uuid-utils>=0.11.0",
|
|
65
65
|
"pytest-cov>=7.0.0",
|
|
66
66
|
]
|
|
67
|
+
docs = [
|
|
68
|
+
"furo>=2025.9.25",
|
|
69
|
+
"sphinx>=7.4.7",
|
|
70
|
+
"sphinx-autodoc-typehints>=2.3.0",
|
|
71
|
+
"sphinx-toolbox>=4.0.0",
|
|
72
|
+
]
|
|
67
73
|
pydantic-v1 = [
|
|
68
74
|
"pydantic>=1.9.0, <2",
|
|
69
75
|
]
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
# isort: skip_file
|
|
3
2
|
|
|
4
3
|
from __future__ import annotations
|
|
5
4
|
|
|
@@ -15,8 +14,7 @@ from ..types import (
|
|
|
15
14
|
blueprint_create_from_inspection_params,
|
|
16
15
|
)
|
|
17
16
|
from .._types import NOT_GIVEN, Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
18
|
-
from .._utils import maybe_transform, async_maybe_transform
|
|
19
|
-
from .._utils._validation import ValidationNotification
|
|
17
|
+
from .._utils import is_given, maybe_transform, async_maybe_transform
|
|
20
18
|
from .._compat import cached_property
|
|
21
19
|
from .._resource import SyncAPIResource, AsyncAPIResource
|
|
22
20
|
from .._response import (
|
|
@@ -31,6 +29,7 @@ from .._exceptions import RunloopError
|
|
|
31
29
|
from ..lib.polling import PollingConfig, poll_until
|
|
32
30
|
from .._base_client import AsyncPaginator, make_request_options
|
|
33
31
|
from ..lib.polling_async import async_poll_until
|
|
32
|
+
from .._utils._validation import ValidationNotification
|
|
34
33
|
from ..types.blueprint_view import BlueprintView
|
|
35
34
|
from ..types.blueprint_preview_view import BlueprintPreviewView
|
|
36
35
|
from ..types.inspection_source_param import InspectionSourceParam
|
|
@@ -79,7 +78,7 @@ def _validate_file_mounts(file_mounts: Optional[Dict[str, str]] | Omit) -> Valid
|
|
|
79
78
|
|
|
80
79
|
note = ValidationNotification()
|
|
81
80
|
|
|
82
|
-
if file_mounts is
|
|
81
|
+
if file_mounts is None or not is_given(file_mounts):
|
|
83
82
|
return note
|
|
84
83
|
|
|
85
84
|
total_size_bytes = 0
|
|
@@ -137,7 +136,6 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
137
136
|
file_mounts: Optional[Dict[str, str]] | Omit = omit,
|
|
138
137
|
launch_parameters: Optional[LaunchParameters] | Omit = omit,
|
|
139
138
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
140
|
-
named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
|
|
141
139
|
secrets: Optional[Dict[str, str]] | Omit = omit,
|
|
142
140
|
services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
|
|
143
141
|
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -181,11 +179,6 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
181
179
|
|
|
182
180
|
metadata: (Optional) User defined metadata for the Blueprint.
|
|
183
181
|
|
|
184
|
-
named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
|
|
185
|
-
the keys are the name used when referencing the contexts in a Dockerfile. See
|
|
186
|
-
Docker buildx additional contexts for details:
|
|
187
|
-
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context
|
|
188
|
-
|
|
189
182
|
secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
|
|
190
183
|
will be available to commands during the build. Secrets are NOT stored in the
|
|
191
184
|
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
|
|
@@ -225,7 +218,6 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
225
218
|
"file_mounts": file_mounts,
|
|
226
219
|
"launch_parameters": launch_parameters,
|
|
227
220
|
"metadata": metadata,
|
|
228
|
-
"named_build_contexts": named_build_contexts,
|
|
229
221
|
"secrets": secrets,
|
|
230
222
|
"services": services,
|
|
231
223
|
"system_setup_commands": system_setup_commands,
|
|
@@ -327,11 +319,13 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
327
319
|
base_blueprint_id: Optional[str] | Omit = omit,
|
|
328
320
|
base_blueprint_name: Optional[str] | Omit = omit,
|
|
329
321
|
build_args: Optional[Dict[str, str]] | Omit = omit,
|
|
322
|
+
build_context: Optional[blueprint_create_params.BuildContext] | Omit = omit,
|
|
330
323
|
code_mounts: Optional[Iterable[CodeMountParameters]] | Omit = omit,
|
|
331
324
|
dockerfile: Optional[str] | Omit = omit,
|
|
332
325
|
file_mounts: Optional[Dict[str, str]] | Omit = omit,
|
|
333
326
|
launch_parameters: Optional[LaunchParameters] | Omit = omit,
|
|
334
327
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
328
|
+
named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
|
|
335
329
|
secrets: Optional[Dict[str, str]] | Omit = omit,
|
|
336
330
|
services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
|
|
337
331
|
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -365,11 +359,13 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
365
359
|
base_blueprint_id=base_blueprint_id,
|
|
366
360
|
base_blueprint_name=base_blueprint_name,
|
|
367
361
|
build_args=build_args,
|
|
362
|
+
build_context=build_context,
|
|
368
363
|
code_mounts=code_mounts,
|
|
369
364
|
dockerfile=dockerfile,
|
|
370
365
|
file_mounts=file_mounts,
|
|
371
366
|
launch_parameters=launch_parameters,
|
|
372
367
|
metadata=metadata,
|
|
368
|
+
named_build_contexts=named_build_contexts,
|
|
373
369
|
secrets=secrets,
|
|
374
370
|
services=services,
|
|
375
371
|
system_setup_commands=system_setup_commands,
|
|
@@ -655,7 +651,6 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
655
651
|
file_mounts: Optional[Dict[str, str]] | Omit = omit,
|
|
656
652
|
launch_parameters: Optional[LaunchParameters] | Omit = omit,
|
|
657
653
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
658
|
-
named_build_contexts: Optional[Dict[str, blueprint_preview_params.NamedBuildContexts]] | Omit = omit,
|
|
659
654
|
secrets: Optional[Dict[str, str]] | Omit = omit,
|
|
660
655
|
services: Optional[Iterable[blueprint_preview_params.Service]] | Omit = omit,
|
|
661
656
|
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -697,11 +692,6 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
697
692
|
|
|
698
693
|
metadata: (Optional) User defined metadata for the Blueprint.
|
|
699
694
|
|
|
700
|
-
named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
|
|
701
|
-
the keys are the name used when referencing the contexts in a Dockerfile. See
|
|
702
|
-
Docker buildx additional contexts for details:
|
|
703
|
-
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context
|
|
704
|
-
|
|
705
695
|
secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
|
|
706
696
|
will be available to commands during the build. Secrets are NOT stored in the
|
|
707
697
|
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
|
|
@@ -737,7 +727,6 @@ class BlueprintsResource(SyncAPIResource):
|
|
|
737
727
|
"file_mounts": file_mounts,
|
|
738
728
|
"launch_parameters": launch_parameters,
|
|
739
729
|
"metadata": metadata,
|
|
740
|
-
"named_build_contexts": named_build_contexts,
|
|
741
730
|
"secrets": secrets,
|
|
742
731
|
"services": services,
|
|
743
732
|
"system_setup_commands": system_setup_commands,
|
|
@@ -788,7 +777,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
788
777
|
file_mounts: Optional[Dict[str, str]] | Omit = omit,
|
|
789
778
|
launch_parameters: Optional[LaunchParameters] | Omit = omit,
|
|
790
779
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
791
|
-
named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
|
|
792
780
|
secrets: Optional[Dict[str, str]] | Omit = omit,
|
|
793
781
|
services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
|
|
794
782
|
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -832,11 +820,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
832
820
|
|
|
833
821
|
metadata: (Optional) User defined metadata for the Blueprint.
|
|
834
822
|
|
|
835
|
-
named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
|
|
836
|
-
the keys are the name used when referencing the contexts in a Dockerfile. See
|
|
837
|
-
Docker buildx additional contexts for details:
|
|
838
|
-
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context
|
|
839
|
-
|
|
840
823
|
secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
|
|
841
824
|
will be available to commands during the build. Secrets are NOT stored in the
|
|
842
825
|
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
|
|
@@ -876,7 +859,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
876
859
|
"file_mounts": file_mounts,
|
|
877
860
|
"launch_parameters": launch_parameters,
|
|
878
861
|
"metadata": metadata,
|
|
879
|
-
"named_build_contexts": named_build_contexts,
|
|
880
862
|
"secrets": secrets,
|
|
881
863
|
"services": services,
|
|
882
864
|
"system_setup_commands": system_setup_commands,
|
|
@@ -978,11 +960,13 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
978
960
|
base_blueprint_id: Optional[str] | Omit = omit,
|
|
979
961
|
base_blueprint_name: Optional[str] | Omit = omit,
|
|
980
962
|
build_args: Optional[Dict[str, str]] | Omit = omit,
|
|
963
|
+
build_context: Optional[blueprint_create_params.BuildContext] | Omit = omit,
|
|
981
964
|
code_mounts: Optional[Iterable[CodeMountParameters]] | Omit = omit,
|
|
982
965
|
dockerfile: Optional[str] | Omit = omit,
|
|
983
966
|
file_mounts: Optional[Dict[str, str]] | Omit = omit,
|
|
984
967
|
launch_parameters: Optional[LaunchParameters] | Omit = omit,
|
|
985
968
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
969
|
+
named_build_contexts: Optional[Dict[str, blueprint_create_params.NamedBuildContexts]] | Omit = omit,
|
|
986
970
|
secrets: Optional[Dict[str, str]] | Omit = omit,
|
|
987
971
|
services: Optional[Iterable[blueprint_create_params.Service]] | Omit = omit,
|
|
988
972
|
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -1016,11 +1000,13 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
1016
1000
|
base_blueprint_id=base_blueprint_id,
|
|
1017
1001
|
base_blueprint_name=base_blueprint_name,
|
|
1018
1002
|
build_args=build_args,
|
|
1003
|
+
build_context=build_context,
|
|
1019
1004
|
code_mounts=code_mounts,
|
|
1020
1005
|
dockerfile=dockerfile,
|
|
1021
1006
|
file_mounts=file_mounts,
|
|
1022
1007
|
launch_parameters=launch_parameters,
|
|
1023
1008
|
metadata=metadata,
|
|
1009
|
+
named_build_contexts=named_build_contexts,
|
|
1024
1010
|
secrets=secrets,
|
|
1025
1011
|
services=services,
|
|
1026
1012
|
system_setup_commands=system_setup_commands,
|
|
@@ -1306,7 +1292,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
1306
1292
|
file_mounts: Optional[Dict[str, str]] | Omit = omit,
|
|
1307
1293
|
launch_parameters: Optional[LaunchParameters] | Omit = omit,
|
|
1308
1294
|
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
1309
|
-
named_build_contexts: Optional[Dict[str, blueprint_preview_params.NamedBuildContexts]] | Omit = omit,
|
|
1310
1295
|
secrets: Optional[Dict[str, str]] | Omit = omit,
|
|
1311
1296
|
services: Optional[Iterable[blueprint_preview_params.Service]] | Omit = omit,
|
|
1312
1297
|
system_setup_commands: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -1348,11 +1333,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
1348
1333
|
|
|
1349
1334
|
metadata: (Optional) User defined metadata for the Blueprint.
|
|
1350
1335
|
|
|
1351
|
-
named_build_contexts: (Optional) Map of named build contexts to attach to the Blueprint build, where
|
|
1352
|
-
the keys are the name used when referencing the contexts in a Dockerfile. See
|
|
1353
|
-
Docker buildx additional contexts for details:
|
|
1354
|
-
https://docs.docker.com/reference/cli/docker/buildx/build/#build-context
|
|
1355
|
-
|
|
1356
1336
|
secrets: (Optional) Map of mount IDs/environment variable names to secret names. Secrets
|
|
1357
1337
|
will be available to commands during the build. Secrets are NOT stored in the
|
|
1358
1338
|
blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret
|
|
@@ -1388,7 +1368,6 @@ class AsyncBlueprintsResource(AsyncAPIResource):
|
|
|
1388
1368
|
"file_mounts": file_mounts,
|
|
1389
1369
|
"launch_parameters": launch_parameters,
|
|
1390
1370
|
"metadata": metadata,
|
|
1391
|
-
"named_build_contexts": named_build_contexts,
|
|
1392
1371
|
"secrets": secrets,
|
|
1393
1372
|
"services": services,
|
|
1394
1373
|
"system_setup_commands": system_setup_commands,
|
|
@@ -217,7 +217,7 @@ class DevboxesResource(SyncAPIResource):
|
|
|
217
217
|
successfully built Blueprint with the given name. Only one of (Snapshot ID,
|
|
218
218
|
Blueprint ID, Blueprint name) should be specified.
|
|
219
219
|
|
|
220
|
-
code_mounts: A list of code mounts to be included in the Devbox.
|
|
220
|
+
code_mounts: A list of code mounts to be included in the Devbox. Use mounts instead.
|
|
221
221
|
|
|
222
222
|
entrypoint: (Optional) When specified, the Devbox will run this script as its main
|
|
223
223
|
executable. The devbox lifecycle will be bound to entrypoint, shutting down when
|
|
@@ -225,13 +225,13 @@ class DevboxesResource(SyncAPIResource):
|
|
|
225
225
|
|
|
226
226
|
environment_variables: (Optional) Environment variables used to configure your Devbox.
|
|
227
227
|
|
|
228
|
-
file_mounts:
|
|
228
|
+
file_mounts: Map of paths and file contents to write before setup. Use mounts instead.
|
|
229
229
|
|
|
230
230
|
launch_parameters: Parameters to configure the resources and launch time behavior of the Devbox.
|
|
231
231
|
|
|
232
232
|
metadata: User defined metadata to attach to the devbox for organization.
|
|
233
233
|
|
|
234
|
-
mounts: A list of
|
|
234
|
+
mounts: A list of mounts to be included in the Devbox.
|
|
235
235
|
|
|
236
236
|
name: (Optional) A user specified name to give the Devbox.
|
|
237
237
|
|
|
@@ -1755,7 +1755,7 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
1755
1755
|
successfully built Blueprint with the given name. Only one of (Snapshot ID,
|
|
1756
1756
|
Blueprint ID, Blueprint name) should be specified.
|
|
1757
1757
|
|
|
1758
|
-
code_mounts: A list of code mounts to be included in the Devbox.
|
|
1758
|
+
code_mounts: A list of code mounts to be included in the Devbox. Use mounts instead.
|
|
1759
1759
|
|
|
1760
1760
|
entrypoint: (Optional) When specified, the Devbox will run this script as its main
|
|
1761
1761
|
executable. The devbox lifecycle will be bound to entrypoint, shutting down when
|
|
@@ -1763,13 +1763,13 @@ class AsyncDevboxesResource(AsyncAPIResource):
|
|
|
1763
1763
|
|
|
1764
1764
|
environment_variables: (Optional) Environment variables used to configure your Devbox.
|
|
1765
1765
|
|
|
1766
|
-
file_mounts:
|
|
1766
|
+
file_mounts: Map of paths and file contents to write before setup. Use mounts instead.
|
|
1767
1767
|
|
|
1768
1768
|
launch_parameters: Parameters to configure the resources and launch time behavior of the Devbox.
|
|
1769
1769
|
|
|
1770
1770
|
metadata: User defined metadata to attach to the devbox for organization.
|
|
1771
1771
|
|
|
1772
|
-
mounts: A list of
|
|
1772
|
+
mounts: A list of mounts to be included in the Devbox.
|
|
1773
1773
|
|
|
1774
1774
|
name: (Optional) A user specified name to give the Devbox.
|
|
1775
1775
|
|
|
@@ -30,7 +30,7 @@ from .scorers import (
|
|
|
30
30
|
ScorersResourceWithStreamingResponse,
|
|
31
31
|
AsyncScorersResourceWithStreamingResponse,
|
|
32
32
|
)
|
|
33
|
-
from ..._types import
|
|
33
|
+
from ..._types import Body, Omit, Query, Headers, NotGiven, SequenceNotStr, omit, not_given
|
|
34
34
|
from ..._utils import maybe_transform, async_maybe_transform
|
|
35
35
|
from ..._compat import cached_property
|
|
36
36
|
from ..._resource import SyncAPIResource, AsyncAPIResource
|
|
@@ -457,17 +457,17 @@ class ScenariosResource(SyncAPIResource):
|
|
|
457
457
|
self,
|
|
458
458
|
*,
|
|
459
459
|
scenario_id: str,
|
|
460
|
-
benchmark_run_id: Optional[str] |
|
|
461
|
-
metadata: Optional[Dict[str, str]] |
|
|
462
|
-
run_name: Optional[str] |
|
|
463
|
-
run_profile: Optional[scenario_start_run_params.RunProfile] |
|
|
460
|
+
benchmark_run_id: Optional[str] | Omit = omit,
|
|
461
|
+
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
462
|
+
run_name: Optional[str] | Omit = omit,
|
|
463
|
+
run_profile: Optional[scenario_start_run_params.RunProfile] | Omit = omit,
|
|
464
464
|
polling_config: PollingConfig | None = None,
|
|
465
465
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
466
466
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
467
467
|
extra_headers: Headers | None = None,
|
|
468
468
|
extra_query: Query | None = None,
|
|
469
469
|
extra_body: Body | None = None,
|
|
470
|
-
timeout: float | httpx.Timeout | None | NotGiven =
|
|
470
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
471
471
|
idempotency_key: str | None = None,
|
|
472
472
|
) -> ScenarioRunView:
|
|
473
473
|
"""Start a new ScenarioRun and wait for its environment to be ready.
|
|
@@ -913,11 +913,18 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
913
913
|
async def start_run_and_await_env_ready(
|
|
914
914
|
self,
|
|
915
915
|
scenario_id: str,
|
|
916
|
-
benchmark_run_id: Optional[str] |
|
|
917
|
-
metadata: Optional[Dict[str, str]] |
|
|
918
|
-
run_name: Optional[str] |
|
|
919
|
-
run_profile: Optional[scenario_start_run_params.RunProfile] |
|
|
916
|
+
benchmark_run_id: Optional[str] | Omit = omit,
|
|
917
|
+
metadata: Optional[Dict[str, str]] | Omit = omit,
|
|
918
|
+
run_name: Optional[str] | Omit = omit,
|
|
919
|
+
run_profile: Optional[scenario_start_run_params.RunProfile] | Omit = omit,
|
|
920
920
|
polling_config: PollingConfig | None = None,
|
|
921
|
+
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
922
|
+
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
923
|
+
extra_headers: Headers | None = None,
|
|
924
|
+
extra_query: Query | None = None,
|
|
925
|
+
extra_body: Body | None = None,
|
|
926
|
+
timeout: float | httpx.Timeout | None | NotGiven = not_given,
|
|
927
|
+
idempotency_key: str | None = None,
|
|
921
928
|
) -> ScenarioRunView:
|
|
922
929
|
"""Start a new ScenarioRun and wait for its environment to be ready.
|
|
923
930
|
|
|
@@ -941,6 +948,11 @@ class AsyncScenariosResource(AsyncAPIResource):
|
|
|
941
948
|
metadata=metadata,
|
|
942
949
|
run_name=run_name,
|
|
943
950
|
run_profile=run_profile,
|
|
951
|
+
extra_headers=extra_headers,
|
|
952
|
+
extra_query=extra_query,
|
|
953
|
+
extra_body=extra_body,
|
|
954
|
+
timeout=timeout,
|
|
955
|
+
idempotency_key=idempotency_key,
|
|
944
956
|
)
|
|
945
957
|
|
|
946
958
|
await self._client.devboxes.await_running(
|
{runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/__init__.py
RENAMED
|
@@ -5,19 +5,22 @@ Provides both sync (`RunloopSDK`) and async (`AsyncRunloopSDK`) interfaces.
|
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
|
|
8
|
-
from .sync import DevboxOps, RunloopSDK, SnapshotOps, BlueprintOps, StorageObjectOps
|
|
8
|
+
from .sync import DevboxOps, ScorerOps, RunloopSDK, SnapshotOps, BlueprintOps, StorageObjectOps
|
|
9
9
|
from .async_ import (
|
|
10
10
|
AsyncDevboxOps,
|
|
11
|
+
AsyncScorerOps,
|
|
11
12
|
AsyncRunloopSDK,
|
|
12
13
|
AsyncSnapshotOps,
|
|
13
14
|
AsyncBlueprintOps,
|
|
14
15
|
AsyncStorageObjectOps,
|
|
15
16
|
)
|
|
16
|
-
from .devbox import Devbox
|
|
17
|
+
from .devbox import Devbox, NamedShell
|
|
18
|
+
from .scorer import Scorer
|
|
17
19
|
from .snapshot import Snapshot
|
|
18
20
|
from .blueprint import Blueprint
|
|
19
21
|
from .execution import Execution
|
|
20
|
-
from .async_devbox import AsyncDevbox
|
|
22
|
+
from .async_devbox import AsyncDevbox, AsyncNamedShell
|
|
23
|
+
from .async_scorer import AsyncScorer
|
|
21
24
|
from .async_snapshot import AsyncSnapshot
|
|
22
25
|
from .storage_object import StorageObject
|
|
23
26
|
from .async_blueprint import AsyncBlueprint
|
|
@@ -35,6 +38,8 @@ __all__ = [
|
|
|
35
38
|
"AsyncDevboxOps",
|
|
36
39
|
"BlueprintOps",
|
|
37
40
|
"AsyncBlueprintOps",
|
|
41
|
+
"ScorerOps",
|
|
42
|
+
"AsyncScorerOps",
|
|
38
43
|
"SnapshotOps",
|
|
39
44
|
"AsyncSnapshotOps",
|
|
40
45
|
"StorageObjectOps",
|
|
@@ -48,8 +53,12 @@ __all__ = [
|
|
|
48
53
|
"AsyncExecutionResult",
|
|
49
54
|
"Blueprint",
|
|
50
55
|
"AsyncBlueprint",
|
|
56
|
+
"Scorer",
|
|
57
|
+
"AsyncScorer",
|
|
51
58
|
"Snapshot",
|
|
52
59
|
"AsyncSnapshot",
|
|
53
60
|
"StorageObject",
|
|
54
61
|
"AsyncStorageObject",
|
|
62
|
+
"NamedShell",
|
|
63
|
+
"AsyncNamedShell",
|
|
55
64
|
]
|
{runloop_api_client-0.68.0 → runloop_api_client-1.0.0}/src/runloop_api_client/sdk/_helpers.py
RENAMED
|
@@ -39,11 +39,11 @@ T = TypeVar("T")
|
|
|
39
39
|
def filter_params(params: Mapping[str, Any], type_filter: Type[T]) -> T:
|
|
40
40
|
"""Filter params dict to only include keys defined in the given TypedDict type.
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
42
|
+
:param params: Dictionary or TypedDict of parameters to filter
|
|
43
|
+
:type params: Mapping[str, Any]
|
|
44
|
+
:param type_filter: TypedDict class to filter against
|
|
45
|
+
:type type_filter: Type[T]
|
|
46
|
+
:return: Filtered dictionary matching the TypedDict structure
|
|
47
|
+
:rtype: T
|
|
48
48
|
"""
|
|
49
49
|
return {k: v for k, v in params.items() if k in type_filter.__annotations__} # type: ignore[return-value]
|