runloop-api-client 0.1.0a9__tar.gz → 0.1.0a11__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.1.0a11/.release-please-manifest.json +3 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/CHANGELOG.md +32 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/PKG-INFO +12 -12
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/README.md +11 -11
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/api.md +9 -3
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/pyproject.toml +8 -6
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/requirements-dev.lock +2 -2
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_base_client.py +29 -42
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_compat.py +12 -17
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_files.py +4 -8
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_response.py +9 -8
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_types.py +3 -6
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_proxy.py +1 -2
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_reflection.py +1 -1
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_utils.py +6 -12
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_version.py +1 -1
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/devboxes/devboxes.py +142 -9
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/__init__.py +4 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_build_parameters.py +6 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_create_params.py +6 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_preview_params.py +6 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devbox_create_params.py +20 -4
- runloop_api_client-0.1.0a11/src/runloop_api_client/types/devbox_read_file_contents_params.py +12 -0
- runloop_api_client-0.1.0a11/src/runloop_api_client/types/devbox_read_file_contents_response.py +7 -0
- runloop_api_client-0.1.0a11/src/runloop_api_client/types/devbox_read_file_params.py +12 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devbox_view.py +2 -5
- runloop_api_client-0.1.0a11/src/runloop_api_client/types/devbox_write_file_params.py +15 -0
- runloop_api_client-0.1.0a11/src/runloop_api_client/types/resource_size.py +7 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/test_blueprints.py +4 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/test_devboxes.py +152 -18
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_client.py +58 -10
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_deepcopy.py +1 -2
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_response.py +4 -8
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_utils/test_typing.py +5 -10
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/utils.py +7 -3
- runloop_api_client-0.1.0a9/.release-please-manifest.json +0 -3
- runloop_api_client-0.1.0a9/src/runloop_api_client/types/resource_size.py +0 -7
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/.gitignore +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/CONTRIBUTING.md +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/LICENSE +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/SECURITY.md +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/bin/check-release-environment +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/bin/publish-pypi +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/examples/.keep +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/mypy.ini +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/noxfile.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/release-please-config.json +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/requirements.lock +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop/lib/.keep +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_client.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_constants.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_exceptions.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_models.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_qs.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_resource.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_streaming.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_logs.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_streams.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_sync.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_transform.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_utils/_typing.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/lib/.keep +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/py.typed +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/blueprints.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/devboxes/logs.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/functions/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/functions/functions.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/functions/invocations.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/projects/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/projects/logs.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/resources/projects/projects.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_build_log.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_build_logs_list_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_list_params.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_list_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_preview_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/blueprint_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/code_mount_parameters.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/code_mount_parameters_param.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devbox_execute_sync_params.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devbox_execution_detail_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devbox_list_params.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devbox_list_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devboxes/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/devboxes/devbox_logs_list_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/function_invoke_async_params.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/function_invoke_sync_params.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/function_list_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/functions/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/functions/function_invocation_list_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/functions/invocation_list_params.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/project_list_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/projects/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/shared/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/shared/function_invocation_execution_detail_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/types/shared/project_logs_view.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/devboxes/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/devboxes/test_logs.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/functions/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/functions/test_invocations.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/projects/__init__.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/projects/test_logs.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/test_functions.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/api_resources/test_projects.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/conftest.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/sample_file.txt +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_extract_files.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_files.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_models.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_qs.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_required_args.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_streaming.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_transform.py +0 -0
- {runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/tests/test_utils/test_proxy.py +0 -0
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.11 (2024-08-07)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.1.0-alpha.10...v0.1.0-alpha.11](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.10...v0.1.0-alpha.11)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** OpenAPI spec update via Stainless API ([#66](https://github.com/runloopai/api-client-python/issues/66)) ([291eddb](https://github.com/runloopai/api-client-python/commit/291eddbf05d2e12d882f8d53baac9617149a1e34))
|
|
10
|
+
* **api:** OpenAPI spec update via Stainless API ([#68](https://github.com/runloopai/api-client-python/issues/68)) ([91913d6](https://github.com/runloopai/api-client-python/commit/91913d6fc7582204fbfa37bf780ea287c0940e97))
|
|
11
|
+
* **api:** OpenAPI spec update via Stainless API ([#69](https://github.com/runloopai/api-client-python/issues/69)) ([f82c51c](https://github.com/runloopai/api-client-python/commit/f82c51cc8d5a5b8588d0b8e98cae7bcbf06d4f09))
|
|
12
|
+
* **api:** OpenAPI spec update via Stainless API ([#70](https://github.com/runloopai/api-client-python/issues/70)) ([b0ffcf0](https://github.com/runloopai/api-client-python/commit/b0ffcf0031ac84240728907ee722ed3e21de3735))
|
|
13
|
+
* **api:** OpenAPI spec update via Stainless API ([#75](https://github.com/runloopai/api-client-python/issues/75)) ([213734e](https://github.com/runloopai/api-client-python/commit/213734e474bce92394eea0aea69132d95850f3c8))
|
|
14
|
+
* **api:** OpenAPI spec update via Stainless API ([#76](https://github.com/runloopai/api-client-python/issues/76)) ([d6370bc](https://github.com/runloopai/api-client-python/commit/d6370bce09d23275d632e1b265f6207a189fedc7))
|
|
15
|
+
* **api:** OpenAPI spec update via Stainless API ([#79](https://github.com/runloopai/api-client-python/issues/79)) ([23d4705](https://github.com/runloopai/api-client-python/commit/23d470542689d3d227ddff7c11464f6a1849003b))
|
|
16
|
+
* **client:** add `retry_count` to raw response class ([#73](https://github.com/runloopai/api-client-python/issues/73)) ([e17fb03](https://github.com/runloopai/api-client-python/commit/e17fb0352e692b04df6f67d98a67182a13cd95ee))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Chores
|
|
20
|
+
|
|
21
|
+
* **internal:** bump pyright ([#72](https://github.com/runloopai/api-client-python/issues/72)) ([3fcd1bf](https://github.com/runloopai/api-client-python/commit/3fcd1bf654826a81efea4f3b67fc85a124141d41))
|
|
22
|
+
* **internal:** bump ruff version ([#77](https://github.com/runloopai/api-client-python/issues/77)) ([240971d](https://github.com/runloopai/api-client-python/commit/240971d1eac9b67a3e85369b0617fc9821e048b3))
|
|
23
|
+
* **internal:** test updates ([#74](https://github.com/runloopai/api-client-python/issues/74)) ([cac724a](https://github.com/runloopai/api-client-python/commit/cac724a5db2acdecc40a9775dcde49b9f8f9a277))
|
|
24
|
+
* **internal:** update pydantic compat helper function ([#78](https://github.com/runloopai/api-client-python/issues/78)) ([3befea7](https://github.com/runloopai/api-client-python/commit/3befea7ec40892a6f6455d81eb87d8c4ab8a7629))
|
|
25
|
+
* **internal:** use `TypeAlias` marker for type assignments ([#71](https://github.com/runloopai/api-client-python/issues/71)) ([4de0849](https://github.com/runloopai/api-client-python/commit/4de08497452923cfa328aadfd6626286b3248d17))
|
|
26
|
+
|
|
27
|
+
## 0.1.0-alpha.10 (2024-08-02)
|
|
28
|
+
|
|
29
|
+
Full Changelog: [v0.1.0-alpha.9...v0.1.0-alpha.10](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.9...v0.1.0-alpha.10)
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* **api:** update via SDK Studio ([#63](https://github.com/runloopai/api-client-python/issues/63)) ([d2aefd1](https://github.com/runloopai/api-client-python/commit/d2aefd19566d6a90121cfd6b4a188a538b496d98))
|
|
34
|
+
|
|
3
35
|
## 0.1.0-alpha.9 (2024-08-01)
|
|
4
36
|
|
|
5
37
|
Full Changelog: [v0.1.0-alpha.8...v0.1.0-alpha.9](https://github.com/runloopai/api-client-python/compare/v0.1.0-alpha.8...v0.1.0-alpha.9)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: runloop_api_client
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0a11
|
|
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
|
|
@@ -66,8 +66,8 @@ client = Runloop(
|
|
|
66
66
|
bearer_token=os.environ.get("RUNLOOP_API_KEY"),
|
|
67
67
|
)
|
|
68
68
|
|
|
69
|
-
|
|
70
|
-
print(
|
|
69
|
+
devbox_view = client.devboxes.create()
|
|
70
|
+
print(devbox_view.id)
|
|
71
71
|
```
|
|
72
72
|
|
|
73
73
|
While you can provide a `bearer_token` keyword argument,
|
|
@@ -91,8 +91,8 @@ client = AsyncRunloop(
|
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
async def main() -> None:
|
|
94
|
-
|
|
95
|
-
print(
|
|
94
|
+
devbox_view = await client.devboxes.create()
|
|
95
|
+
print(devbox_view.id)
|
|
96
96
|
|
|
97
97
|
|
|
98
98
|
asyncio.run(main())
|
|
@@ -125,7 +125,7 @@ from runloop_api_client import Runloop
|
|
|
125
125
|
client = Runloop()
|
|
126
126
|
|
|
127
127
|
try:
|
|
128
|
-
client.
|
|
128
|
+
client.devboxes.create()
|
|
129
129
|
except runloop_api_client.APIConnectionError as e:
|
|
130
130
|
print("The server could not be reached")
|
|
131
131
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
|
@@ -168,7 +168,7 @@ client = Runloop(
|
|
|
168
168
|
)
|
|
169
169
|
|
|
170
170
|
# Or, configure per-request:
|
|
171
|
-
client.with_options(max_retries=5).
|
|
171
|
+
client.with_options(max_retries=5).devboxes.create()
|
|
172
172
|
```
|
|
173
173
|
|
|
174
174
|
### Timeouts
|
|
@@ -191,7 +191,7 @@ client = Runloop(
|
|
|
191
191
|
)
|
|
192
192
|
|
|
193
193
|
# Override per-request:
|
|
194
|
-
client.with_options(timeout=5.0).
|
|
194
|
+
client.with_options(timeout=5.0).devboxes.create()
|
|
195
195
|
```
|
|
196
196
|
|
|
197
197
|
On timeout, an `APITimeoutError` is thrown.
|
|
@@ -230,11 +230,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
|
230
230
|
from runloop_api_client import Runloop
|
|
231
231
|
|
|
232
232
|
client = Runloop()
|
|
233
|
-
response = client.
|
|
233
|
+
response = client.devboxes.with_raw_response.create()
|
|
234
234
|
print(response.headers.get('X-My-Header'))
|
|
235
235
|
|
|
236
|
-
|
|
237
|
-
print(
|
|
236
|
+
devbox = response.parse() # get the object that `devboxes.create()` would have returned
|
|
237
|
+
print(devbox.id)
|
|
238
238
|
```
|
|
239
239
|
|
|
240
240
|
These methods return an [`APIResponse`](https://github.com/runloopai/api-client-python/tree/main/src/runloop_api_client/_response.py) object.
|
|
@@ -248,7 +248,7 @@ The above interface eagerly reads the full response body when you make the reque
|
|
|
248
248
|
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
|
|
249
249
|
|
|
250
250
|
```python
|
|
251
|
-
with client.
|
|
251
|
+
with client.devboxes.with_streaming_response.create() as response:
|
|
252
252
|
print(response.headers.get("X-My-Header"))
|
|
253
253
|
|
|
254
254
|
for line in response.iter_lines():
|
|
@@ -32,8 +32,8 @@ client = Runloop(
|
|
|
32
32
|
bearer_token=os.environ.get("RUNLOOP_API_KEY"),
|
|
33
33
|
)
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
print(
|
|
35
|
+
devbox_view = client.devboxes.create()
|
|
36
|
+
print(devbox_view.id)
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
While you can provide a `bearer_token` keyword argument,
|
|
@@ -57,8 +57,8 @@ client = AsyncRunloop(
|
|
|
57
57
|
|
|
58
58
|
|
|
59
59
|
async def main() -> None:
|
|
60
|
-
|
|
61
|
-
print(
|
|
60
|
+
devbox_view = await client.devboxes.create()
|
|
61
|
+
print(devbox_view.id)
|
|
62
62
|
|
|
63
63
|
|
|
64
64
|
asyncio.run(main())
|
|
@@ -91,7 +91,7 @@ from runloop_api_client import Runloop
|
|
|
91
91
|
client = Runloop()
|
|
92
92
|
|
|
93
93
|
try:
|
|
94
|
-
client.
|
|
94
|
+
client.devboxes.create()
|
|
95
95
|
except runloop_api_client.APIConnectionError as e:
|
|
96
96
|
print("The server could not be reached")
|
|
97
97
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
|
@@ -134,7 +134,7 @@ client = Runloop(
|
|
|
134
134
|
)
|
|
135
135
|
|
|
136
136
|
# Or, configure per-request:
|
|
137
|
-
client.with_options(max_retries=5).
|
|
137
|
+
client.with_options(max_retries=5).devboxes.create()
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
### Timeouts
|
|
@@ -157,7 +157,7 @@ client = Runloop(
|
|
|
157
157
|
)
|
|
158
158
|
|
|
159
159
|
# Override per-request:
|
|
160
|
-
client.with_options(timeout=5.0).
|
|
160
|
+
client.with_options(timeout=5.0).devboxes.create()
|
|
161
161
|
```
|
|
162
162
|
|
|
163
163
|
On timeout, an `APITimeoutError` is thrown.
|
|
@@ -196,11 +196,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
|
|
|
196
196
|
from runloop_api_client import Runloop
|
|
197
197
|
|
|
198
198
|
client = Runloop()
|
|
199
|
-
response = client.
|
|
199
|
+
response = client.devboxes.with_raw_response.create()
|
|
200
200
|
print(response.headers.get('X-My-Header'))
|
|
201
201
|
|
|
202
|
-
|
|
203
|
-
print(
|
|
202
|
+
devbox = response.parse() # get the object that `devboxes.create()` would have returned
|
|
203
|
+
print(devbox.id)
|
|
204
204
|
```
|
|
205
205
|
|
|
206
206
|
These methods return an [`APIResponse`](https://github.com/runloopai/api-client-python/tree/main/src/runloop_api_client/_response.py) object.
|
|
@@ -214,7 +214,7 @@ The above interface eagerly reads the full response body when you make the reque
|
|
|
214
214
|
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
|
|
215
215
|
|
|
216
216
|
```python
|
|
217
|
-
with client.
|
|
217
|
+
with client.devboxes.with_streaming_response.create() as response:
|
|
218
218
|
print(response.headers.get("X-My-Header"))
|
|
219
219
|
|
|
220
220
|
for line in response.iter_lines():
|
|
@@ -48,7 +48,12 @@ from runloop_api_client.types import CodeMountParameters
|
|
|
48
48
|
Types:
|
|
49
49
|
|
|
50
50
|
```python
|
|
51
|
-
from runloop_api_client.types import
|
|
51
|
+
from runloop_api_client.types import (
|
|
52
|
+
DevboxExecutionDetailView,
|
|
53
|
+
DevboxListView,
|
|
54
|
+
DevboxView,
|
|
55
|
+
DevboxReadFileContentsResponse,
|
|
56
|
+
)
|
|
52
57
|
```
|
|
53
58
|
|
|
54
59
|
Methods:
|
|
@@ -57,9 +62,10 @@ Methods:
|
|
|
57
62
|
- <code title="get /v1/devboxes/{id}">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">retrieve</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
|
|
58
63
|
- <code title="get /v1/devboxes">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">list</a>(\*\*<a href="src/runloop_api_client/types/devbox_list_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_list_view.py">DevboxListView</a></code>
|
|
59
64
|
- <code title="post /v1/devboxes/{id}/execute_sync">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">execute_sync</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_execute_sync_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
|
|
60
|
-
- <code title="post /v1/devboxes/{id}/read_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file</a>(id) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
|
|
65
|
+
- <code title="post /v1/devboxes/{id}/read_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_read_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
|
|
66
|
+
- <code title="post /v1/devboxes/{id}/read_file_contents">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">read_file_contents</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_read_file_contents_params.py">params</a>) -> str</code>
|
|
61
67
|
- <code title="post /v1/devboxes/{id}/shutdown">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">shutdown</a>(id) -> <a href="./src/runloop_api_client/types/devbox_view.py">DevboxView</a></code>
|
|
62
|
-
- <code title="post /v1/devboxes/{id}/write_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file</a>(id) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
|
|
68
|
+
- <code title="post /v1/devboxes/{id}/write_file">client.devboxes.<a href="./src/runloop_api_client/resources/devboxes/devboxes.py">write_file</a>(id, \*\*<a href="src/runloop_api_client/types/devbox_write_file_params.py">params</a>) -> <a href="./src/runloop_api_client/types/devbox_execution_detail_view.py">DevboxExecutionDetailView</a></code>
|
|
63
69
|
|
|
64
70
|
## Logs
|
|
65
71
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "runloop_api_client"
|
|
3
|
-
version = "0.1.0-alpha.
|
|
3
|
+
version = "0.1.0-alpha.11"
|
|
4
4
|
description = "The official Python library for the runloop API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "MIT"
|
|
@@ -77,8 +77,8 @@ format = { chain = [
|
|
|
77
77
|
"check:ruff",
|
|
78
78
|
"typecheck",
|
|
79
79
|
]}
|
|
80
|
-
"check:ruff" = "ruff ."
|
|
81
|
-
"fix:ruff" = "ruff --fix ."
|
|
80
|
+
"check:ruff" = "ruff check ."
|
|
81
|
+
"fix:ruff" = "ruff check --fix ."
|
|
82
82
|
|
|
83
83
|
typecheck = { chain = [
|
|
84
84
|
"typecheck:pyright",
|
|
@@ -162,6 +162,11 @@ reportPrivateUsage = false
|
|
|
162
162
|
line-length = 120
|
|
163
163
|
output-format = "grouped"
|
|
164
164
|
target-version = "py37"
|
|
165
|
+
|
|
166
|
+
[tool.ruff.format]
|
|
167
|
+
docstring-code-format = true
|
|
168
|
+
|
|
169
|
+
[tool.ruff.lint]
|
|
165
170
|
select = [
|
|
166
171
|
# isort
|
|
167
172
|
"I",
|
|
@@ -192,9 +197,6 @@ unfixable = [
|
|
|
192
197
|
]
|
|
193
198
|
ignore-init-module-imports = true
|
|
194
199
|
|
|
195
|
-
[tool.ruff.format]
|
|
196
|
-
docstring-code-format = true
|
|
197
|
-
|
|
198
200
|
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
199
201
|
"functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead"
|
|
200
202
|
|
|
@@ -70,7 +70,7 @@ pydantic-core==2.18.2
|
|
|
70
70
|
# via pydantic
|
|
71
71
|
pygments==2.18.0
|
|
72
72
|
# via rich
|
|
73
|
-
pyright==1.1.
|
|
73
|
+
pyright==1.1.374
|
|
74
74
|
pytest==7.1.1
|
|
75
75
|
# via pytest-asyncio
|
|
76
76
|
pytest-asyncio==0.21.1
|
|
@@ -80,7 +80,7 @@ pytz==2023.3.post1
|
|
|
80
80
|
# via dirty-equals
|
|
81
81
|
respx==0.20.2
|
|
82
82
|
rich==13.7.1
|
|
83
|
-
ruff==0.
|
|
83
|
+
ruff==0.5.6
|
|
84
84
|
setuptools==68.2.2
|
|
85
85
|
# via nodeenv
|
|
86
86
|
six==1.16.0
|
{runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_base_client.py
RENAMED
|
@@ -124,16 +124,14 @@ class PageInfo:
|
|
|
124
124
|
self,
|
|
125
125
|
*,
|
|
126
126
|
url: URL,
|
|
127
|
-
) -> None:
|
|
128
|
-
...
|
|
127
|
+
) -> None: ...
|
|
129
128
|
|
|
130
129
|
@overload
|
|
131
130
|
def __init__(
|
|
132
131
|
self,
|
|
133
132
|
*,
|
|
134
133
|
params: Query,
|
|
135
|
-
) -> None:
|
|
136
|
-
...
|
|
134
|
+
) -> None: ...
|
|
137
135
|
|
|
138
136
|
def __init__(
|
|
139
137
|
self,
|
|
@@ -166,8 +164,7 @@ class BasePage(GenericModel, Generic[_T]):
|
|
|
166
164
|
return False
|
|
167
165
|
return self.next_page_info() is not None
|
|
168
166
|
|
|
169
|
-
def next_page_info(self) -> Optional[PageInfo]:
|
|
170
|
-
...
|
|
167
|
+
def next_page_info(self) -> Optional[PageInfo]: ...
|
|
171
168
|
|
|
172
169
|
def _get_page_items(self) -> Iterable[_T]: # type: ignore[empty-body]
|
|
173
170
|
...
|
|
@@ -903,8 +900,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
903
900
|
*,
|
|
904
901
|
stream: Literal[True],
|
|
905
902
|
stream_cls: Type[_StreamT],
|
|
906
|
-
) -> _StreamT:
|
|
907
|
-
...
|
|
903
|
+
) -> _StreamT: ...
|
|
908
904
|
|
|
909
905
|
@overload
|
|
910
906
|
def request(
|
|
@@ -914,8 +910,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
914
910
|
remaining_retries: Optional[int] = None,
|
|
915
911
|
*,
|
|
916
912
|
stream: Literal[False] = False,
|
|
917
|
-
) -> ResponseT:
|
|
918
|
-
...
|
|
913
|
+
) -> ResponseT: ...
|
|
919
914
|
|
|
920
915
|
@overload
|
|
921
916
|
def request(
|
|
@@ -926,8 +921,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
926
921
|
*,
|
|
927
922
|
stream: bool = False,
|
|
928
923
|
stream_cls: Type[_StreamT] | None = None,
|
|
929
|
-
) -> ResponseT | _StreamT:
|
|
930
|
-
...
|
|
924
|
+
) -> ResponseT | _StreamT: ...
|
|
931
925
|
|
|
932
926
|
def request(
|
|
933
927
|
self,
|
|
@@ -1049,6 +1043,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1049
1043
|
response=response,
|
|
1050
1044
|
stream=stream,
|
|
1051
1045
|
stream_cls=stream_cls,
|
|
1046
|
+
retries_taken=options.get_max_retries(self.max_retries) - retries,
|
|
1052
1047
|
)
|
|
1053
1048
|
|
|
1054
1049
|
def _retry_request(
|
|
@@ -1090,6 +1085,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1090
1085
|
response: httpx.Response,
|
|
1091
1086
|
stream: bool,
|
|
1092
1087
|
stream_cls: type[Stream[Any]] | type[AsyncStream[Any]] | None,
|
|
1088
|
+
retries_taken: int = 0,
|
|
1093
1089
|
) -> ResponseT:
|
|
1094
1090
|
origin = get_origin(cast_to) or cast_to
|
|
1095
1091
|
|
|
@@ -1107,6 +1103,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1107
1103
|
stream=stream,
|
|
1108
1104
|
stream_cls=stream_cls,
|
|
1109
1105
|
options=options,
|
|
1106
|
+
retries_taken=retries_taken,
|
|
1110
1107
|
),
|
|
1111
1108
|
)
|
|
1112
1109
|
|
|
@@ -1120,6 +1117,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1120
1117
|
stream=stream,
|
|
1121
1118
|
stream_cls=stream_cls,
|
|
1122
1119
|
options=options,
|
|
1120
|
+
retries_taken=retries_taken,
|
|
1123
1121
|
)
|
|
1124
1122
|
if bool(response.request.headers.get(RAW_RESPONSE_HEADER)):
|
|
1125
1123
|
return cast(ResponseT, api_response)
|
|
@@ -1152,8 +1150,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1152
1150
|
cast_to: Type[ResponseT],
|
|
1153
1151
|
options: RequestOptions = {},
|
|
1154
1152
|
stream: Literal[False] = False,
|
|
1155
|
-
) -> ResponseT:
|
|
1156
|
-
...
|
|
1153
|
+
) -> ResponseT: ...
|
|
1157
1154
|
|
|
1158
1155
|
@overload
|
|
1159
1156
|
def get(
|
|
@@ -1164,8 +1161,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1164
1161
|
options: RequestOptions = {},
|
|
1165
1162
|
stream: Literal[True],
|
|
1166
1163
|
stream_cls: type[_StreamT],
|
|
1167
|
-
) -> _StreamT:
|
|
1168
|
-
...
|
|
1164
|
+
) -> _StreamT: ...
|
|
1169
1165
|
|
|
1170
1166
|
@overload
|
|
1171
1167
|
def get(
|
|
@@ -1176,8 +1172,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1176
1172
|
options: RequestOptions = {},
|
|
1177
1173
|
stream: bool,
|
|
1178
1174
|
stream_cls: type[_StreamT] | None = None,
|
|
1179
|
-
) -> ResponseT | _StreamT:
|
|
1180
|
-
...
|
|
1175
|
+
) -> ResponseT | _StreamT: ...
|
|
1181
1176
|
|
|
1182
1177
|
def get(
|
|
1183
1178
|
self,
|
|
@@ -1203,8 +1198,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1203
1198
|
options: RequestOptions = {},
|
|
1204
1199
|
files: RequestFiles | None = None,
|
|
1205
1200
|
stream: Literal[False] = False,
|
|
1206
|
-
) -> ResponseT:
|
|
1207
|
-
...
|
|
1201
|
+
) -> ResponseT: ...
|
|
1208
1202
|
|
|
1209
1203
|
@overload
|
|
1210
1204
|
def post(
|
|
@@ -1217,8 +1211,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1217
1211
|
files: RequestFiles | None = None,
|
|
1218
1212
|
stream: Literal[True],
|
|
1219
1213
|
stream_cls: type[_StreamT],
|
|
1220
|
-
) -> _StreamT:
|
|
1221
|
-
...
|
|
1214
|
+
) -> _StreamT: ...
|
|
1222
1215
|
|
|
1223
1216
|
@overload
|
|
1224
1217
|
def post(
|
|
@@ -1231,8 +1224,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1231
1224
|
files: RequestFiles | None = None,
|
|
1232
1225
|
stream: bool,
|
|
1233
1226
|
stream_cls: type[_StreamT] | None = None,
|
|
1234
|
-
) -> ResponseT | _StreamT:
|
|
1235
|
-
...
|
|
1227
|
+
) -> ResponseT | _StreamT: ...
|
|
1236
1228
|
|
|
1237
1229
|
def post(
|
|
1238
1230
|
self,
|
|
@@ -1465,8 +1457,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1465
1457
|
*,
|
|
1466
1458
|
stream: Literal[False] = False,
|
|
1467
1459
|
remaining_retries: Optional[int] = None,
|
|
1468
|
-
) -> ResponseT:
|
|
1469
|
-
...
|
|
1460
|
+
) -> ResponseT: ...
|
|
1470
1461
|
|
|
1471
1462
|
@overload
|
|
1472
1463
|
async def request(
|
|
@@ -1477,8 +1468,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1477
1468
|
stream: Literal[True],
|
|
1478
1469
|
stream_cls: type[_AsyncStreamT],
|
|
1479
1470
|
remaining_retries: Optional[int] = None,
|
|
1480
|
-
) -> _AsyncStreamT:
|
|
1481
|
-
...
|
|
1471
|
+
) -> _AsyncStreamT: ...
|
|
1482
1472
|
|
|
1483
1473
|
@overload
|
|
1484
1474
|
async def request(
|
|
@@ -1489,8 +1479,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1489
1479
|
stream: bool,
|
|
1490
1480
|
stream_cls: type[_AsyncStreamT] | None = None,
|
|
1491
1481
|
remaining_retries: Optional[int] = None,
|
|
1492
|
-
) -> ResponseT | _AsyncStreamT:
|
|
1493
|
-
...
|
|
1482
|
+
) -> ResponseT | _AsyncStreamT: ...
|
|
1494
1483
|
|
|
1495
1484
|
async def request(
|
|
1496
1485
|
self,
|
|
@@ -1610,6 +1599,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1610
1599
|
response=response,
|
|
1611
1600
|
stream=stream,
|
|
1612
1601
|
stream_cls=stream_cls,
|
|
1602
|
+
retries_taken=options.get_max_retries(self.max_retries) - retries,
|
|
1613
1603
|
)
|
|
1614
1604
|
|
|
1615
1605
|
async def _retry_request(
|
|
@@ -1649,6 +1639,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1649
1639
|
response: httpx.Response,
|
|
1650
1640
|
stream: bool,
|
|
1651
1641
|
stream_cls: type[Stream[Any]] | type[AsyncStream[Any]] | None,
|
|
1642
|
+
retries_taken: int = 0,
|
|
1652
1643
|
) -> ResponseT:
|
|
1653
1644
|
origin = get_origin(cast_to) or cast_to
|
|
1654
1645
|
|
|
@@ -1666,6 +1657,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1666
1657
|
stream=stream,
|
|
1667
1658
|
stream_cls=stream_cls,
|
|
1668
1659
|
options=options,
|
|
1660
|
+
retries_taken=retries_taken,
|
|
1669
1661
|
),
|
|
1670
1662
|
)
|
|
1671
1663
|
|
|
@@ -1679,6 +1671,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1679
1671
|
stream=stream,
|
|
1680
1672
|
stream_cls=stream_cls,
|
|
1681
1673
|
options=options,
|
|
1674
|
+
retries_taken=retries_taken,
|
|
1682
1675
|
)
|
|
1683
1676
|
if bool(response.request.headers.get(RAW_RESPONSE_HEADER)):
|
|
1684
1677
|
return cast(ResponseT, api_response)
|
|
@@ -1701,8 +1694,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1701
1694
|
cast_to: Type[ResponseT],
|
|
1702
1695
|
options: RequestOptions = {},
|
|
1703
1696
|
stream: Literal[False] = False,
|
|
1704
|
-
) -> ResponseT:
|
|
1705
|
-
...
|
|
1697
|
+
) -> ResponseT: ...
|
|
1706
1698
|
|
|
1707
1699
|
@overload
|
|
1708
1700
|
async def get(
|
|
@@ -1713,8 +1705,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1713
1705
|
options: RequestOptions = {},
|
|
1714
1706
|
stream: Literal[True],
|
|
1715
1707
|
stream_cls: type[_AsyncStreamT],
|
|
1716
|
-
) -> _AsyncStreamT:
|
|
1717
|
-
...
|
|
1708
|
+
) -> _AsyncStreamT: ...
|
|
1718
1709
|
|
|
1719
1710
|
@overload
|
|
1720
1711
|
async def get(
|
|
@@ -1725,8 +1716,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1725
1716
|
options: RequestOptions = {},
|
|
1726
1717
|
stream: bool,
|
|
1727
1718
|
stream_cls: type[_AsyncStreamT] | None = None,
|
|
1728
|
-
) -> ResponseT | _AsyncStreamT:
|
|
1729
|
-
...
|
|
1719
|
+
) -> ResponseT | _AsyncStreamT: ...
|
|
1730
1720
|
|
|
1731
1721
|
async def get(
|
|
1732
1722
|
self,
|
|
@@ -1750,8 +1740,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1750
1740
|
files: RequestFiles | None = None,
|
|
1751
1741
|
options: RequestOptions = {},
|
|
1752
1742
|
stream: Literal[False] = False,
|
|
1753
|
-
) -> ResponseT:
|
|
1754
|
-
...
|
|
1743
|
+
) -> ResponseT: ...
|
|
1755
1744
|
|
|
1756
1745
|
@overload
|
|
1757
1746
|
async def post(
|
|
@@ -1764,8 +1753,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1764
1753
|
options: RequestOptions = {},
|
|
1765
1754
|
stream: Literal[True],
|
|
1766
1755
|
stream_cls: type[_AsyncStreamT],
|
|
1767
|
-
) -> _AsyncStreamT:
|
|
1768
|
-
...
|
|
1756
|
+
) -> _AsyncStreamT: ...
|
|
1769
1757
|
|
|
1770
1758
|
@overload
|
|
1771
1759
|
async def post(
|
|
@@ -1778,8 +1766,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1778
1766
|
options: RequestOptions = {},
|
|
1779
1767
|
stream: bool,
|
|
1780
1768
|
stream_cls: type[_AsyncStreamT] | None = None,
|
|
1781
|
-
) -> ResponseT | _AsyncStreamT:
|
|
1782
|
-
...
|
|
1769
|
+
) -> ResponseT | _AsyncStreamT: ...
|
|
1783
1770
|
|
|
1784
1771
|
async def post(
|
|
1785
1772
|
self,
|
{runloop_api_client-0.1.0a9 → runloop_api_client-0.1.0a11}/src/runloop_api_client/_compat.py
RENAMED
|
@@ -7,7 +7,7 @@ from typing_extensions import Self
|
|
|
7
7
|
import pydantic
|
|
8
8
|
from pydantic.fields import FieldInfo
|
|
9
9
|
|
|
10
|
-
from ._types import StrBytesIntFloat
|
|
10
|
+
from ._types import IncEx, StrBytesIntFloat
|
|
11
11
|
|
|
12
12
|
_T = TypeVar("_T")
|
|
13
13
|
_ModelT = TypeVar("_ModelT", bound=pydantic.BaseModel)
|
|
@@ -133,17 +133,20 @@ def model_json(model: pydantic.BaseModel, *, indent: int | None = None) -> str:
|
|
|
133
133
|
def model_dump(
|
|
134
134
|
model: pydantic.BaseModel,
|
|
135
135
|
*,
|
|
136
|
+
exclude: IncEx = None,
|
|
136
137
|
exclude_unset: bool = False,
|
|
137
138
|
exclude_defaults: bool = False,
|
|
138
139
|
) -> dict[str, Any]:
|
|
139
140
|
if PYDANTIC_V2:
|
|
140
141
|
return model.model_dump(
|
|
142
|
+
exclude=exclude,
|
|
141
143
|
exclude_unset=exclude_unset,
|
|
142
144
|
exclude_defaults=exclude_defaults,
|
|
143
145
|
)
|
|
144
146
|
return cast(
|
|
145
147
|
"dict[str, Any]",
|
|
146
148
|
model.dict( # pyright: ignore[reportDeprecated, reportUnnecessaryCast]
|
|
149
|
+
exclude=exclude,
|
|
147
150
|
exclude_unset=exclude_unset,
|
|
148
151
|
exclude_defaults=exclude_defaults,
|
|
149
152
|
),
|
|
@@ -159,22 +162,19 @@ def model_parse(model: type[_ModelT], data: Any) -> _ModelT:
|
|
|
159
162
|
# generic models
|
|
160
163
|
if TYPE_CHECKING:
|
|
161
164
|
|
|
162
|
-
class GenericModel(pydantic.BaseModel):
|
|
163
|
-
...
|
|
165
|
+
class GenericModel(pydantic.BaseModel): ...
|
|
164
166
|
|
|
165
167
|
else:
|
|
166
168
|
if PYDANTIC_V2:
|
|
167
169
|
# there no longer needs to be a distinction in v2 but
|
|
168
170
|
# we still have to create our own subclass to avoid
|
|
169
171
|
# inconsistent MRO ordering errors
|
|
170
|
-
class GenericModel(pydantic.BaseModel):
|
|
171
|
-
...
|
|
172
|
+
class GenericModel(pydantic.BaseModel): ...
|
|
172
173
|
|
|
173
174
|
else:
|
|
174
175
|
import pydantic.generics
|
|
175
176
|
|
|
176
|
-
class GenericModel(pydantic.generics.GenericModel, pydantic.BaseModel):
|
|
177
|
-
...
|
|
177
|
+
class GenericModel(pydantic.generics.GenericModel, pydantic.BaseModel): ...
|
|
178
178
|
|
|
179
179
|
|
|
180
180
|
# cached properties
|
|
@@ -193,26 +193,21 @@ if TYPE_CHECKING:
|
|
|
193
193
|
func: Callable[[Any], _T]
|
|
194
194
|
attrname: str | None
|
|
195
195
|
|
|
196
|
-
def __init__(self, func: Callable[[Any], _T]) -> None:
|
|
197
|
-
...
|
|
196
|
+
def __init__(self, func: Callable[[Any], _T]) -> None: ...
|
|
198
197
|
|
|
199
198
|
@overload
|
|
200
|
-
def __get__(self, instance: None, owner: type[Any] | None = None) -> Self:
|
|
201
|
-
...
|
|
199
|
+
def __get__(self, instance: None, owner: type[Any] | None = None) -> Self: ...
|
|
202
200
|
|
|
203
201
|
@overload
|
|
204
|
-
def __get__(self, instance: object, owner: type[Any] | None = None) -> _T:
|
|
205
|
-
...
|
|
202
|
+
def __get__(self, instance: object, owner: type[Any] | None = None) -> _T: ...
|
|
206
203
|
|
|
207
204
|
def __get__(self, instance: object, owner: type[Any] | None = None) -> _T | Self:
|
|
208
205
|
raise NotImplementedError()
|
|
209
206
|
|
|
210
|
-
def __set_name__(self, owner: type[Any], name: str) -> None:
|
|
211
|
-
...
|
|
207
|
+
def __set_name__(self, owner: type[Any], name: str) -> None: ...
|
|
212
208
|
|
|
213
209
|
# __set__ is not defined at runtime, but @cached_property is designed to be settable
|
|
214
|
-
def __set__(self, instance: object, value: _T) -> None:
|
|
215
|
-
...
|
|
210
|
+
def __set__(self, instance: object, value: _T) -> None: ...
|
|
216
211
|
else:
|
|
217
212
|
try:
|
|
218
213
|
from functools import cached_property as cached_property
|
|
@@ -39,13 +39,11 @@ def assert_is_file_content(obj: object, *, key: str | None = None) -> None:
|
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
@overload
|
|
42
|
-
def to_httpx_files(files: None) -> None:
|
|
43
|
-
...
|
|
42
|
+
def to_httpx_files(files: None) -> None: ...
|
|
44
43
|
|
|
45
44
|
|
|
46
45
|
@overload
|
|
47
|
-
def to_httpx_files(files: RequestFiles) -> HttpxRequestFiles:
|
|
48
|
-
...
|
|
46
|
+
def to_httpx_files(files: RequestFiles) -> HttpxRequestFiles: ...
|
|
49
47
|
|
|
50
48
|
|
|
51
49
|
def to_httpx_files(files: RequestFiles | None) -> HttpxRequestFiles | None:
|
|
@@ -83,13 +81,11 @@ def _read_file_content(file: FileContent) -> HttpxFileContent:
|
|
|
83
81
|
|
|
84
82
|
|
|
85
83
|
@overload
|
|
86
|
-
async def async_to_httpx_files(files: None) -> None:
|
|
87
|
-
...
|
|
84
|
+
async def async_to_httpx_files(files: None) -> None: ...
|
|
88
85
|
|
|
89
86
|
|
|
90
87
|
@overload
|
|
91
|
-
async def async_to_httpx_files(files: RequestFiles) -> HttpxRequestFiles:
|
|
92
|
-
...
|
|
88
|
+
async def async_to_httpx_files(files: RequestFiles) -> HttpxRequestFiles: ...
|
|
93
89
|
|
|
94
90
|
|
|
95
91
|
async def async_to_httpx_files(files: RequestFiles | None) -> HttpxRequestFiles | None:
|