scale-gp-beta 0.1.0a2__tar.gz → 0.1.0a3__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.
- scale_gp_beta-0.1.0a3/.release-please-manifest.json +3 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/CHANGELOG.md +32 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/CONTRIBUTING.md +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/LICENSE +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/PKG-INFO +121 -27
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/README.md +118 -24
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/SECURITY.md +4 -4
- scale_gp_beta-0.1.0a3/api.md +111 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/mypy.ini +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/pyproject.toml +7 -7
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/release-please-config.json +1 -1
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/__init__.py +2 -2
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_base_client.py +9 -3
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_client.py +1 -1
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_files.py +1 -1
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_response.py +6 -4
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_types.py +1 -1
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_logs.py +2 -2
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_version.py +2 -2
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/models.py +24 -2
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/inference_model.py +3 -3
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/model_list_params.py +14 -1
- scale_gp_beta-0.1.0a3/src/sgp_dev/lib/.keep +4 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/chat/test_completions.py +2 -2
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/files/test_content.py +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_completions.py +2 -2
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_files.py +3 -3
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_inference.py +2 -2
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_models.py +3 -3
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_question_sets.py +3 -3
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_questions.py +3 -3
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/conftest.py +2 -2
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_client.py +26 -26
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_deepcopy.py +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_extract_files.py +2 -2
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_files.py +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_models.py +3 -3
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_qs.py +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_required_args.py +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_response.py +7 -7
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_streaming.py +2 -2
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_transform.py +4 -4
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_utils/test_proxy.py +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_utils/test_typing.py +1 -1
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/utils.py +4 -4
- scale_gp_beta-0.1.0a2/.release-please-manifest.json +0 -3
- scale_gp_beta-0.1.0a2/api.md +0 -111
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/.gitignore +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/bin/check-release-environment +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/bin/publish-pypi +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/examples/.keep +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/noxfile.py +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/requirements-dev.lock +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/requirements.lock +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/src/scale_gp/lib/.keep +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_compat.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_constants.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_exceptions.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_models.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_qs.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_resource.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_streaming.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_proxy.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_reflection.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_streams.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_sync.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_transform.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_typing.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_utils.py +0 -0
- {scale_gp_beta-0.1.0a2/src/sgp_dev → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/lib/.keep +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/pagination.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/py.typed +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/chat/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/chat/chat.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/chat/completions.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/completions.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/files/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/files/content.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/files/files.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/inference.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/question_sets.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/questions.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/chat/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/chat/chat_completion.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/chat/chat_completion_chunk.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/chat/completion_create_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/chat/completion_create_response.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/completion.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/completion_create_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/file.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/file_create_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/file_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/file_list.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/file_list_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/file_update_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/files/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/inference_create_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/inference_create_response.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/inference_model_list.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/inference_response.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/inference_response_chunk.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/model_create_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/model_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/model_update_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_create_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_list.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_list_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_set.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_set_create_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_set_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_set_list.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_set_list_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_set_retrieve_params.py +0 -0
- {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question_set_update_params.py +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/chat/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/files/__init__.py +0 -0
- {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/sample_file.txt +0 -0
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.3 (2025-02-27)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.1.0-alpha.2...v0.1.0-alpha.3](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.2...v0.1.0-alpha.3)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([#38](https://github.com/scaleapi/sgp-python-beta/issues/38)) ([2b937be](https://github.com/scaleapi/sgp-python-beta/commit/2b937be5ad88ee52c14549dea80b075dae953848))
|
|
10
|
+
* **api:** api update ([#41](https://github.com/scaleapi/sgp-python-beta/issues/41)) ([8c13bc8](https://github.com/scaleapi/sgp-python-beta/commit/8c13bc821acf116e0f4831ec6512f99563f9c17a))
|
|
11
|
+
* **api:** manual updates ([#45](https://github.com/scaleapi/sgp-python-beta/issues/45)) ([47f0b21](https://github.com/scaleapi/sgp-python-beta/commit/47f0b21f78173cda0ed957d9e64cbaf39a79befd))
|
|
12
|
+
* **api:** manual updates ([#46](https://github.com/scaleapi/sgp-python-beta/issues/46)) ([d722b15](https://github.com/scaleapi/sgp-python-beta/commit/d722b157c62561666ede72aa2a3ede32753a6fe7))
|
|
13
|
+
* **api:** manual updates ([#48](https://github.com/scaleapi/sgp-python-beta/issues/48)) ([373c6e3](https://github.com/scaleapi/sgp-python-beta/commit/373c6e31bb8d3729e7b5617082c9f6d9ede7ea82))
|
|
14
|
+
* **api:** manual updates ([#56](https://github.com/scaleapi/sgp-python-beta/issues/56)) ([7ce79e6](https://github.com/scaleapi/sgp-python-beta/commit/7ce79e6545ccd1cb49dcc7ef880b5fc059ae149a))
|
|
15
|
+
* **client:** allow passing `NotGiven` for body ([#42](https://github.com/scaleapi/sgp-python-beta/issues/42)) ([b2e3024](https://github.com/scaleapi/sgp-python-beta/commit/b2e3024c1ed0ed05f18e300cd58b0cf99658e1fd))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* **client:** mark some request bodies as optional ([b2e3024](https://github.com/scaleapi/sgp-python-beta/commit/b2e3024c1ed0ed05f18e300cd58b0cf99658e1fd))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Chores
|
|
24
|
+
|
|
25
|
+
* **internal:** codegen related update ([#40](https://github.com/scaleapi/sgp-python-beta/issues/40)) ([c9f4be1](https://github.com/scaleapi/sgp-python-beta/commit/c9f4be1c9d5688926ba1b4033cbcac66950a950f))
|
|
26
|
+
* **internal:** fix devcontainers setup ([#43](https://github.com/scaleapi/sgp-python-beta/issues/43)) ([0752322](https://github.com/scaleapi/sgp-python-beta/commit/07523229582db759392ab96d8309e467a803f48b))
|
|
27
|
+
* **internal:** properly set __pydantic_private__ ([#44](https://github.com/scaleapi/sgp-python-beta/issues/44)) ([a539736](https://github.com/scaleapi/sgp-python-beta/commit/a539736da3a00608372e6fbbdc518bae9df7eb1d))
|
|
28
|
+
* remove custom code ([b3b0db0](https://github.com/scaleapi/sgp-python-beta/commit/b3b0db07483635cdb552d42f4068ce01531c0d8f))
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Documentation
|
|
32
|
+
|
|
33
|
+
* mention it is a beta client ([e8aea2a](https://github.com/scaleapi/sgp-python-beta/commit/e8aea2a70b60cb181ba5ade2c810960564e0cc84))
|
|
34
|
+
|
|
3
35
|
## 0.1.0-alpha.2 (2025-02-13)
|
|
4
36
|
|
|
5
37
|
Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)
|
|
@@ -37,7 +37,7 @@ $ pip install -r requirements-dev.lock
|
|
|
37
37
|
|
|
38
38
|
Most of the SDK is generated code. Modifications to code will be persisted between generations, but may
|
|
39
39
|
result in merge conflicts between manual patches and changes from the generator. The generator will never
|
|
40
|
-
modify the contents of the `src/
|
|
40
|
+
modify the contents of the `src/scale_gp_beta/lib/` and `examples/` directories.
|
|
41
41
|
|
|
42
42
|
## Adding and running examples
|
|
43
43
|
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright 2025
|
|
189
|
+
Copyright 2025 Scale GP
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: scale-gp-beta
|
|
3
|
-
Version: 0.1.
|
|
4
|
-
Summary: The official Python library for the
|
|
3
|
+
Version: 0.1.0a3
|
|
4
|
+
Summary: The official Python library for the Scale GP API
|
|
5
5
|
Project-URL: Homepage, https://github.com/scaleapi/sgp-python-beta
|
|
6
6
|
Project-URL: Repository, https://github.com/scaleapi/sgp-python-beta
|
|
7
|
-
Author-email:
|
|
7
|
+
Author-email: Scale GP <anish.agrawal@scale.com>
|
|
8
8
|
License-Expression: Apache-2.0
|
|
9
9
|
License-File: LICENSE
|
|
10
10
|
Classifier: Intended Audience :: Developers
|
|
@@ -30,15 +30,15 @@ Requires-Dist: sniffio
|
|
|
30
30
|
Requires-Dist: typing-extensions<5,>=4.10
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
|
|
33
|
-
#
|
|
33
|
+
# Scale GP Python API library
|
|
34
34
|
|
|
35
35
|
[](https://pypi.org/project/scale-gp-beta/)
|
|
36
36
|
|
|
37
|
-
The
|
|
37
|
+
The Scale GP Python library provides convenient access to the Scale GP REST API from any Python 3.8+
|
|
38
38
|
application. The library includes type definitions for all request params and response fields,
|
|
39
39
|
and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
|
|
40
40
|
|
|
41
|
-
It is generated with [Stainless](https://www.
|
|
41
|
+
It is generated with [Stainless](https://www.stainless.com/).
|
|
42
42
|
|
|
43
43
|
## Documentation
|
|
44
44
|
|
|
@@ -57,7 +57,7 @@ The full API of this library can be found in [api.md](https://github.com/scaleap
|
|
|
57
57
|
|
|
58
58
|
```python
|
|
59
59
|
import os
|
|
60
|
-
from
|
|
60
|
+
from scale_gp_beta import SGPClient
|
|
61
61
|
|
|
62
62
|
client = SGPClient(
|
|
63
63
|
api_key=os.environ.get("SGP_API_KEY"), # This is the default and can be omitted
|
|
@@ -85,7 +85,7 @@ Simply import `AsyncSGPClient` instead of `SGPClient` and use `await` with each
|
|
|
85
85
|
```python
|
|
86
86
|
import os
|
|
87
87
|
import asyncio
|
|
88
|
-
from
|
|
88
|
+
from scale_gp_beta import AsyncSGPClient
|
|
89
89
|
|
|
90
90
|
client = AsyncSGPClient(
|
|
91
91
|
api_key=os.environ.get("SGP_API_KEY"), # This is the default and can be omitted
|
|
@@ -113,7 +113,7 @@ Functionality between the synchronous and asynchronous clients is otherwise iden
|
|
|
113
113
|
We provide support for streaming responses using Server Side Events (SSE).
|
|
114
114
|
|
|
115
115
|
```python
|
|
116
|
-
from
|
|
116
|
+
from scale_gp_beta import SGPClient
|
|
117
117
|
|
|
118
118
|
client = SGPClient(
|
|
119
119
|
account_id="My Account ID",
|
|
@@ -131,7 +131,7 @@ for completion in stream:
|
|
|
131
131
|
The async client uses the exact same interface.
|
|
132
132
|
|
|
133
133
|
```python
|
|
134
|
-
from
|
|
134
|
+
from scale_gp_beta import AsyncSGPClient
|
|
135
135
|
|
|
136
136
|
client = AsyncSGPClient(
|
|
137
137
|
account_id="My Account ID",
|
|
@@ -155,18 +155,112 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ
|
|
|
155
155
|
|
|
156
156
|
Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.
|
|
157
157
|
|
|
158
|
+
## Pagination
|
|
159
|
+
|
|
160
|
+
List methods in the Scale GP API are paginated.
|
|
161
|
+
|
|
162
|
+
This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:
|
|
163
|
+
|
|
164
|
+
```python
|
|
165
|
+
from scale_gp_beta import SGPClient
|
|
166
|
+
|
|
167
|
+
client = SGPClient(
|
|
168
|
+
account_id="My Account ID",
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
all_models = []
|
|
172
|
+
# Automatically fetches more pages as needed.
|
|
173
|
+
for model in client.models.list(
|
|
174
|
+
limit=10,
|
|
175
|
+
):
|
|
176
|
+
# Do something with model here
|
|
177
|
+
all_models.append(model)
|
|
178
|
+
print(all_models)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Or, asynchronously:
|
|
182
|
+
|
|
183
|
+
```python
|
|
184
|
+
import asyncio
|
|
185
|
+
from scale_gp_beta import AsyncSGPClient
|
|
186
|
+
|
|
187
|
+
client = AsyncSGPClient(
|
|
188
|
+
account_id="My Account ID",
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
async def main() -> None:
|
|
193
|
+
all_models = []
|
|
194
|
+
# Iterate through items across all pages, issuing requests as needed.
|
|
195
|
+
async for model in client.models.list(
|
|
196
|
+
limit=10,
|
|
197
|
+
):
|
|
198
|
+
all_models.append(model)
|
|
199
|
+
print(all_models)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
asyncio.run(main())
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:
|
|
206
|
+
|
|
207
|
+
```python
|
|
208
|
+
first_page = await client.models.list(
|
|
209
|
+
limit=10,
|
|
210
|
+
)
|
|
211
|
+
if first_page.has_next_page():
|
|
212
|
+
print(f"will fetch next page using these details: {first_page.next_page_info()}")
|
|
213
|
+
next_page = await first_page.get_next_page()
|
|
214
|
+
print(f"number of items we just fetched: {len(next_page.items)}")
|
|
215
|
+
|
|
216
|
+
# Remove `await` for non-async usage.
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Or just work directly with the returned data:
|
|
220
|
+
|
|
221
|
+
```python
|
|
222
|
+
first_page = await client.models.list(
|
|
223
|
+
limit=10,
|
|
224
|
+
)
|
|
225
|
+
|
|
226
|
+
print(f"next page cursor: {first_page.starting_after}") # => "next page cursor: ..."
|
|
227
|
+
for model in first_page.items:
|
|
228
|
+
print(model.id)
|
|
229
|
+
|
|
230
|
+
# Remove `await` for non-async usage.
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
## File uploads
|
|
234
|
+
|
|
235
|
+
Request parameters that correspond to file uploads can be passed as `bytes`, a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.
|
|
236
|
+
|
|
237
|
+
```python
|
|
238
|
+
from pathlib import Path
|
|
239
|
+
from scale_gp_beta import SGPClient
|
|
240
|
+
|
|
241
|
+
client = SGPClient(
|
|
242
|
+
account_id="My Account ID",
|
|
243
|
+
)
|
|
244
|
+
|
|
245
|
+
client.files.create(
|
|
246
|
+
file=Path("/path/to/file"),
|
|
247
|
+
)
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
The async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.
|
|
251
|
+
|
|
158
252
|
## Handling errors
|
|
159
253
|
|
|
160
|
-
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `
|
|
254
|
+
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `scale_gp_beta.APIConnectionError` is raised.
|
|
161
255
|
|
|
162
256
|
When the API returns a non-success status code (that is, 4xx or 5xx
|
|
163
|
-
response), a subclass of `
|
|
257
|
+
response), a subclass of `scale_gp_beta.APIStatusError` is raised, containing `status_code` and `response` properties.
|
|
164
258
|
|
|
165
|
-
All errors inherit from `
|
|
259
|
+
All errors inherit from `scale_gp_beta.APIError`.
|
|
166
260
|
|
|
167
261
|
```python
|
|
168
|
-
import
|
|
169
|
-
from
|
|
262
|
+
import scale_gp_beta
|
|
263
|
+
from scale_gp_beta import SGPClient
|
|
170
264
|
|
|
171
265
|
client = SGPClient(
|
|
172
266
|
account_id="My Account ID",
|
|
@@ -177,12 +271,12 @@ try:
|
|
|
177
271
|
messages=[{"foo": "bar"}],
|
|
178
272
|
model="model",
|
|
179
273
|
)
|
|
180
|
-
except
|
|
274
|
+
except scale_gp_beta.APIConnectionError as e:
|
|
181
275
|
print("The server could not be reached")
|
|
182
276
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
|
183
|
-
except
|
|
277
|
+
except scale_gp_beta.RateLimitError as e:
|
|
184
278
|
print("A 429 status code was received; we should back off a bit.")
|
|
185
|
-
except
|
|
279
|
+
except scale_gp_beta.APIStatusError as e:
|
|
186
280
|
print("Another non-200-range status code was received")
|
|
187
281
|
print(e.status_code)
|
|
188
282
|
print(e.response)
|
|
@@ -210,7 +304,7 @@ Connection errors (for example, due to a network connectivity problem), 408 Requ
|
|
|
210
304
|
You can use the `max_retries` option to configure or disable retry settings:
|
|
211
305
|
|
|
212
306
|
```python
|
|
213
|
-
from
|
|
307
|
+
from scale_gp_beta import SGPClient
|
|
214
308
|
|
|
215
309
|
# Configure the default for all requests:
|
|
216
310
|
client = SGPClient(
|
|
@@ -232,7 +326,7 @@ By default requests time out after 1 minute. You can configure this with a `time
|
|
|
232
326
|
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:
|
|
233
327
|
|
|
234
328
|
```python
|
|
235
|
-
from
|
|
329
|
+
from scale_gp_beta import SGPClient
|
|
236
330
|
|
|
237
331
|
# Configure the default for all requests:
|
|
238
332
|
client = SGPClient(
|
|
@@ -289,7 +383,7 @@ if response.my_field is None:
|
|
|
289
383
|
The "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,
|
|
290
384
|
|
|
291
385
|
```py
|
|
292
|
-
from
|
|
386
|
+
from scale_gp_beta import SGPClient
|
|
293
387
|
|
|
294
388
|
client = SGPClient(
|
|
295
389
|
account_id="My Account ID",
|
|
@@ -306,9 +400,9 @@ completion = response.parse() # get the object that `chat.completions.create()`
|
|
|
306
400
|
print(completion)
|
|
307
401
|
```
|
|
308
402
|
|
|
309
|
-
These methods return an [`APIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/
|
|
403
|
+
These methods return an [`APIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/scale_gp_beta/_response.py) object.
|
|
310
404
|
|
|
311
|
-
The async client returns an [`AsyncAPIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/
|
|
405
|
+
The async client returns an [`AsyncAPIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/scale_gp_beta/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
|
|
312
406
|
|
|
313
407
|
#### `.with_streaming_response`
|
|
314
408
|
|
|
@@ -373,7 +467,7 @@ You can directly override the [httpx client](https://www.python-httpx.org/api/#c
|
|
|
373
467
|
|
|
374
468
|
```python
|
|
375
469
|
import httpx
|
|
376
|
-
from
|
|
470
|
+
from scale_gp_beta import SGPClient, DefaultHttpxClient
|
|
377
471
|
|
|
378
472
|
client = SGPClient(
|
|
379
473
|
# Or use the `SGP_CLIENT_BASE_URL` env var
|
|
@@ -397,7 +491,7 @@ client.with_options(http_client=DefaultHttpxClient(...))
|
|
|
397
491
|
By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.
|
|
398
492
|
|
|
399
493
|
```py
|
|
400
|
-
from
|
|
494
|
+
from scale_gp_beta import SGPClient
|
|
401
495
|
|
|
402
496
|
with SGPClient(
|
|
403
497
|
account_id="My Account ID",
|
|
@@ -427,8 +521,8 @@ If you've upgraded to the latest version but aren't seeing any new features you
|
|
|
427
521
|
You can determine the version that is being used at runtime with:
|
|
428
522
|
|
|
429
523
|
```py
|
|
430
|
-
import
|
|
431
|
-
print(
|
|
524
|
+
import scale_gp_beta
|
|
525
|
+
print(scale_gp_beta.__version__)
|
|
432
526
|
```
|
|
433
527
|
|
|
434
528
|
## Requirements
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Scale GP Python API library
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/scale-gp-beta/)
|
|
4
4
|
|
|
5
|
-
The
|
|
5
|
+
The Scale GP Python library provides convenient access to the Scale GP REST API from any Python 3.8+
|
|
6
6
|
application. The library includes type definitions for all request params and response fields,
|
|
7
7
|
and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
|
|
8
8
|
|
|
9
|
-
It is generated with [Stainless](https://www.
|
|
9
|
+
It is generated with [Stainless](https://www.stainless.com/).
|
|
10
10
|
|
|
11
11
|
## Documentation
|
|
12
12
|
|
|
@@ -25,7 +25,7 @@ The full API of this library can be found in [api.md](api.md).
|
|
|
25
25
|
|
|
26
26
|
```python
|
|
27
27
|
import os
|
|
28
|
-
from
|
|
28
|
+
from scale_gp_beta import SGPClient
|
|
29
29
|
|
|
30
30
|
client = SGPClient(
|
|
31
31
|
api_key=os.environ.get("SGP_API_KEY"), # This is the default and can be omitted
|
|
@@ -53,7 +53,7 @@ Simply import `AsyncSGPClient` instead of `SGPClient` and use `await` with each
|
|
|
53
53
|
```python
|
|
54
54
|
import os
|
|
55
55
|
import asyncio
|
|
56
|
-
from
|
|
56
|
+
from scale_gp_beta import AsyncSGPClient
|
|
57
57
|
|
|
58
58
|
client = AsyncSGPClient(
|
|
59
59
|
api_key=os.environ.get("SGP_API_KEY"), # This is the default and can be omitted
|
|
@@ -81,7 +81,7 @@ Functionality between the synchronous and asynchronous clients is otherwise iden
|
|
|
81
81
|
We provide support for streaming responses using Server Side Events (SSE).
|
|
82
82
|
|
|
83
83
|
```python
|
|
84
|
-
from
|
|
84
|
+
from scale_gp_beta import SGPClient
|
|
85
85
|
|
|
86
86
|
client = SGPClient(
|
|
87
87
|
account_id="My Account ID",
|
|
@@ -99,7 +99,7 @@ for completion in stream:
|
|
|
99
99
|
The async client uses the exact same interface.
|
|
100
100
|
|
|
101
101
|
```python
|
|
102
|
-
from
|
|
102
|
+
from scale_gp_beta import AsyncSGPClient
|
|
103
103
|
|
|
104
104
|
client = AsyncSGPClient(
|
|
105
105
|
account_id="My Account ID",
|
|
@@ -123,18 +123,112 @@ Nested request parameters are [TypedDicts](https://docs.python.org/3/library/typ
|
|
|
123
123
|
|
|
124
124
|
Typed requests and responses provide autocomplete and documentation within your editor. If you would like to see type errors in VS Code to help catch bugs earlier, set `python.analysis.typeCheckingMode` to `basic`.
|
|
125
125
|
|
|
126
|
+
## Pagination
|
|
127
|
+
|
|
128
|
+
List methods in the Scale GP API are paginated.
|
|
129
|
+
|
|
130
|
+
This library provides auto-paginating iterators with each list response, so you do not have to request successive pages manually:
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
from scale_gp_beta import SGPClient
|
|
134
|
+
|
|
135
|
+
client = SGPClient(
|
|
136
|
+
account_id="My Account ID",
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
all_models = []
|
|
140
|
+
# Automatically fetches more pages as needed.
|
|
141
|
+
for model in client.models.list(
|
|
142
|
+
limit=10,
|
|
143
|
+
):
|
|
144
|
+
# Do something with model here
|
|
145
|
+
all_models.append(model)
|
|
146
|
+
print(all_models)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Or, asynchronously:
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
import asyncio
|
|
153
|
+
from scale_gp_beta import AsyncSGPClient
|
|
154
|
+
|
|
155
|
+
client = AsyncSGPClient(
|
|
156
|
+
account_id="My Account ID",
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
async def main() -> None:
|
|
161
|
+
all_models = []
|
|
162
|
+
# Iterate through items across all pages, issuing requests as needed.
|
|
163
|
+
async for model in client.models.list(
|
|
164
|
+
limit=10,
|
|
165
|
+
):
|
|
166
|
+
all_models.append(model)
|
|
167
|
+
print(all_models)
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
asyncio.run(main())
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:
|
|
174
|
+
|
|
175
|
+
```python
|
|
176
|
+
first_page = await client.models.list(
|
|
177
|
+
limit=10,
|
|
178
|
+
)
|
|
179
|
+
if first_page.has_next_page():
|
|
180
|
+
print(f"will fetch next page using these details: {first_page.next_page_info()}")
|
|
181
|
+
next_page = await first_page.get_next_page()
|
|
182
|
+
print(f"number of items we just fetched: {len(next_page.items)}")
|
|
183
|
+
|
|
184
|
+
# Remove `await` for non-async usage.
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Or just work directly with the returned data:
|
|
188
|
+
|
|
189
|
+
```python
|
|
190
|
+
first_page = await client.models.list(
|
|
191
|
+
limit=10,
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
print(f"next page cursor: {first_page.starting_after}") # => "next page cursor: ..."
|
|
195
|
+
for model in first_page.items:
|
|
196
|
+
print(model.id)
|
|
197
|
+
|
|
198
|
+
# Remove `await` for non-async usage.
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## File uploads
|
|
202
|
+
|
|
203
|
+
Request parameters that correspond to file uploads can be passed as `bytes`, a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance or a tuple of `(filename, contents, media type)`.
|
|
204
|
+
|
|
205
|
+
```python
|
|
206
|
+
from pathlib import Path
|
|
207
|
+
from scale_gp_beta import SGPClient
|
|
208
|
+
|
|
209
|
+
client = SGPClient(
|
|
210
|
+
account_id="My Account ID",
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
client.files.create(
|
|
214
|
+
file=Path("/path/to/file"),
|
|
215
|
+
)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
The async client uses the exact same interface. If you pass a [`PathLike`](https://docs.python.org/3/library/os.html#os.PathLike) instance, the file contents will be read asynchronously automatically.
|
|
219
|
+
|
|
126
220
|
## Handling errors
|
|
127
221
|
|
|
128
|
-
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `
|
|
222
|
+
When the library is unable to connect to the API (for example, due to network connection problems or a timeout), a subclass of `scale_gp_beta.APIConnectionError` is raised.
|
|
129
223
|
|
|
130
224
|
When the API returns a non-success status code (that is, 4xx or 5xx
|
|
131
|
-
response), a subclass of `
|
|
225
|
+
response), a subclass of `scale_gp_beta.APIStatusError` is raised, containing `status_code` and `response` properties.
|
|
132
226
|
|
|
133
|
-
All errors inherit from `
|
|
227
|
+
All errors inherit from `scale_gp_beta.APIError`.
|
|
134
228
|
|
|
135
229
|
```python
|
|
136
|
-
import
|
|
137
|
-
from
|
|
230
|
+
import scale_gp_beta
|
|
231
|
+
from scale_gp_beta import SGPClient
|
|
138
232
|
|
|
139
233
|
client = SGPClient(
|
|
140
234
|
account_id="My Account ID",
|
|
@@ -145,12 +239,12 @@ try:
|
|
|
145
239
|
messages=[{"foo": "bar"}],
|
|
146
240
|
model="model",
|
|
147
241
|
)
|
|
148
|
-
except
|
|
242
|
+
except scale_gp_beta.APIConnectionError as e:
|
|
149
243
|
print("The server could not be reached")
|
|
150
244
|
print(e.__cause__) # an underlying Exception, likely raised within httpx.
|
|
151
|
-
except
|
|
245
|
+
except scale_gp_beta.RateLimitError as e:
|
|
152
246
|
print("A 429 status code was received; we should back off a bit.")
|
|
153
|
-
except
|
|
247
|
+
except scale_gp_beta.APIStatusError as e:
|
|
154
248
|
print("Another non-200-range status code was received")
|
|
155
249
|
print(e.status_code)
|
|
156
250
|
print(e.response)
|
|
@@ -178,7 +272,7 @@ Connection errors (for example, due to a network connectivity problem), 408 Requ
|
|
|
178
272
|
You can use the `max_retries` option to configure or disable retry settings:
|
|
179
273
|
|
|
180
274
|
```python
|
|
181
|
-
from
|
|
275
|
+
from scale_gp_beta import SGPClient
|
|
182
276
|
|
|
183
277
|
# Configure the default for all requests:
|
|
184
278
|
client = SGPClient(
|
|
@@ -200,7 +294,7 @@ By default requests time out after 1 minute. You can configure this with a `time
|
|
|
200
294
|
which accepts a float or an [`httpx.Timeout`](https://www.python-httpx.org/advanced/#fine-tuning-the-configuration) object:
|
|
201
295
|
|
|
202
296
|
```python
|
|
203
|
-
from
|
|
297
|
+
from scale_gp_beta import SGPClient
|
|
204
298
|
|
|
205
299
|
# Configure the default for all requests:
|
|
206
300
|
client = SGPClient(
|
|
@@ -257,7 +351,7 @@ if response.my_field is None:
|
|
|
257
351
|
The "raw" Response object can be accessed by prefixing `.with_raw_response.` to any HTTP method call, e.g.,
|
|
258
352
|
|
|
259
353
|
```py
|
|
260
|
-
from
|
|
354
|
+
from scale_gp_beta import SGPClient
|
|
261
355
|
|
|
262
356
|
client = SGPClient(
|
|
263
357
|
account_id="My Account ID",
|
|
@@ -274,9 +368,9 @@ completion = response.parse() # get the object that `chat.completions.create()`
|
|
|
274
368
|
print(completion)
|
|
275
369
|
```
|
|
276
370
|
|
|
277
|
-
These methods return an [`APIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/
|
|
371
|
+
These methods return an [`APIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/scale_gp_beta/_response.py) object.
|
|
278
372
|
|
|
279
|
-
The async client returns an [`AsyncAPIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/
|
|
373
|
+
The async client returns an [`AsyncAPIResponse`](https://github.com/scaleapi/sgp-python-beta/tree/main/src/scale_gp_beta/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
|
|
280
374
|
|
|
281
375
|
#### `.with_streaming_response`
|
|
282
376
|
|
|
@@ -341,7 +435,7 @@ You can directly override the [httpx client](https://www.python-httpx.org/api/#c
|
|
|
341
435
|
|
|
342
436
|
```python
|
|
343
437
|
import httpx
|
|
344
|
-
from
|
|
438
|
+
from scale_gp_beta import SGPClient, DefaultHttpxClient
|
|
345
439
|
|
|
346
440
|
client = SGPClient(
|
|
347
441
|
# Or use the `SGP_CLIENT_BASE_URL` env var
|
|
@@ -365,7 +459,7 @@ client.with_options(http_client=DefaultHttpxClient(...))
|
|
|
365
459
|
By default the library closes underlying HTTP connections whenever the client is [garbage collected](https://docs.python.org/3/reference/datamodel.html#object.__del__). You can manually close the client using the `.close()` method if desired, or with a context manager that closes when exiting.
|
|
366
460
|
|
|
367
461
|
```py
|
|
368
|
-
from
|
|
462
|
+
from scale_gp_beta import SGPClient
|
|
369
463
|
|
|
370
464
|
with SGPClient(
|
|
371
465
|
account_id="My Account ID",
|
|
@@ -395,8 +489,8 @@ If you've upgraded to the latest version but aren't seeing any new features you
|
|
|
395
489
|
You can determine the version that is being used at runtime with:
|
|
396
490
|
|
|
397
491
|
```py
|
|
398
|
-
import
|
|
399
|
-
print(
|
|
492
|
+
import scale_gp_beta
|
|
493
|
+
print(scale_gp_beta.__version__)
|
|
400
494
|
```
|
|
401
495
|
|
|
402
496
|
## Requirements
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
## Reporting Security Issues
|
|
4
4
|
|
|
5
|
-
This SDK is generated by [Stainless Software Inc](http://
|
|
5
|
+
This SDK is generated by [Stainless Software Inc](http://stainless.com). Stainless takes security seriously, and encourages you to report any security vulnerability promptly so that appropriate action can be taken.
|
|
6
6
|
|
|
7
|
-
To report a security issue, please contact the Stainless team at security@
|
|
7
|
+
To report a security issue, please contact the Stainless team at security@stainless.com.
|
|
8
8
|
|
|
9
9
|
## Responsible Disclosure
|
|
10
10
|
|
|
@@ -16,9 +16,9 @@ before making any information public.
|
|
|
16
16
|
## Reporting Non-SDK Related Security Issues
|
|
17
17
|
|
|
18
18
|
If you encounter security issues that are not directly related to SDKs but pertain to the services
|
|
19
|
-
or products provided by
|
|
19
|
+
or products provided by Scale GP please follow the respective company's security reporting guidelines.
|
|
20
20
|
|
|
21
|
-
###
|
|
21
|
+
### Scale GP Terms and Policies
|
|
22
22
|
|
|
23
23
|
Please contact anish.agrawal@scale.com for any questions or concerns regarding security of our services.
|
|
24
24
|
|