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.
Files changed (123) hide show
  1. scale_gp_beta-0.1.0a3/.release-please-manifest.json +3 -0
  2. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/CHANGELOG.md +32 -0
  3. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/CONTRIBUTING.md +1 -1
  4. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/LICENSE +1 -1
  5. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/PKG-INFO +121 -27
  6. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/README.md +118 -24
  7. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/SECURITY.md +4 -4
  8. scale_gp_beta-0.1.0a3/api.md +111 -0
  9. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/mypy.ini +1 -1
  10. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/pyproject.toml +7 -7
  11. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/release-please-config.json +1 -1
  12. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/__init__.py +2 -2
  13. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_base_client.py +9 -3
  14. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_client.py +1 -1
  15. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_files.py +1 -1
  16. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_response.py +6 -4
  17. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_types.py +1 -1
  18. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_logs.py +2 -2
  19. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_version.py +2 -2
  20. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/models.py +24 -2
  21. {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
  22. {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
  23. scale_gp_beta-0.1.0a3/src/sgp_dev/lib/.keep +4 -0
  24. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/chat/test_completions.py +2 -2
  25. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/files/test_content.py +1 -1
  26. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_completions.py +2 -2
  27. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_files.py +3 -3
  28. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_inference.py +2 -2
  29. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_models.py +3 -3
  30. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_question_sets.py +3 -3
  31. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/test_questions.py +3 -3
  32. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/conftest.py +2 -2
  33. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_client.py +26 -26
  34. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_deepcopy.py +1 -1
  35. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_extract_files.py +2 -2
  36. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_files.py +1 -1
  37. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_models.py +3 -3
  38. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_qs.py +1 -1
  39. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_required_args.py +1 -1
  40. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_response.py +7 -7
  41. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_streaming.py +2 -2
  42. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_transform.py +4 -4
  43. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_utils/test_proxy.py +1 -1
  44. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/test_utils/test_typing.py +1 -1
  45. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/utils.py +4 -4
  46. scale_gp_beta-0.1.0a2/.release-please-manifest.json +0 -3
  47. scale_gp_beta-0.1.0a2/api.md +0 -111
  48. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/.gitignore +0 -0
  49. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/bin/check-release-environment +0 -0
  50. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/bin/publish-pypi +0 -0
  51. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/examples/.keep +0 -0
  52. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/noxfile.py +0 -0
  53. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/requirements-dev.lock +0 -0
  54. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/requirements.lock +0 -0
  55. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/src/scale_gp/lib/.keep +0 -0
  56. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_compat.py +0 -0
  57. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_constants.py +0 -0
  58. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_exceptions.py +0 -0
  59. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_models.py +0 -0
  60. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_qs.py +0 -0
  61. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_resource.py +0 -0
  62. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_streaming.py +0 -0
  63. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/__init__.py +0 -0
  64. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_proxy.py +0 -0
  65. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_reflection.py +0 -0
  66. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_streams.py +0 -0
  67. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_sync.py +0 -0
  68. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_transform.py +0 -0
  69. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_typing.py +0 -0
  70. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/_utils/_utils.py +0 -0
  71. {scale_gp_beta-0.1.0a2/src/sgp_dev → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/lib/.keep +0 -0
  72. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/pagination.py +0 -0
  73. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/py.typed +0 -0
  74. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/__init__.py +0 -0
  75. {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
  76. {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
  77. {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
  78. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/completions.py +0 -0
  79. {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
  80. {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
  81. {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
  82. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/inference.py +0 -0
  83. {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
  84. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/resources/questions.py +0 -0
  85. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/__init__.py +0 -0
  86. {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
  87. {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
  88. {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
  89. {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
  90. {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
  91. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/completion.py +0 -0
  92. {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
  93. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/file.py +0 -0
  94. {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
  95. {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
  96. {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
  97. {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
  98. {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
  99. {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
  100. {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
  101. {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
  102. {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
  103. {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
  104. {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
  105. {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
  106. {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
  107. {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
  108. {scale_gp_beta-0.1.0a2/src/scale_gp → scale_gp_beta-0.1.0a3/src/scale_gp_beta}/types/question.py +0 -0
  109. {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
  110. {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
  111. {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
  112. {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
  113. {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
  114. {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
  115. {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
  116. {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
  117. {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
  118. {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
  119. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/__init__.py +0 -0
  120. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/__init__.py +0 -0
  121. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/chat/__init__.py +0 -0
  122. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/api_resources/files/__init__.py +0 -0
  123. {scale_gp_beta-0.1.0a2 → scale_gp_beta-0.1.0a3}/tests/sample_file.txt +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.3"
3
+ }
@@ -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/scale_gp/lib/` and `examples/` directories.
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 SGP Client
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.0a2
4
- Summary: The official Python library for the SGPClient API
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: SGP Client <anish.agrawal@scale.com>
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
- # SGP Client Python API library
33
+ # Scale GP Python API library
34
34
 
35
35
  [![PyPI version](https://img.shields.io/pypi/v/scale-gp-beta.svg)](https://pypi.org/project/scale-gp-beta/)
36
36
 
37
- The SGP Client Python library provides convenient access to the SGP Client REST API from any Python 3.8+
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.stainlessapi.com/).
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 scale_gp import SGPClient
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 scale_gp import AsyncSGPClient
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 scale_gp import SGPClient
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 scale_gp import AsyncSGPClient
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 `scale_gp.APIConnectionError` is raised.
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 `scale_gp.APIStatusError` is raised, containing `status_code` and `response` properties.
257
+ response), a subclass of `scale_gp_beta.APIStatusError` is raised, containing `status_code` and `response` properties.
164
258
 
165
- All errors inherit from `scale_gp.APIError`.
259
+ All errors inherit from `scale_gp_beta.APIError`.
166
260
 
167
261
  ```python
168
- import scale_gp
169
- from scale_gp import SGPClient
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 scale_gp.APIConnectionError as e:
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 scale_gp.RateLimitError as e:
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 scale_gp.APIStatusError as e:
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 scale_gp import SGPClient
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 scale_gp import SGPClient
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 scale_gp import SGPClient
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/scale_gp/_response.py) object.
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/scale_gp/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
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 scale_gp import SGPClient, DefaultHttpxClient
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 scale_gp import SGPClient
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 scale_gp
431
- print(scale_gp.__version__)
524
+ import scale_gp_beta
525
+ print(scale_gp_beta.__version__)
432
526
  ```
433
527
 
434
528
  ## Requirements
@@ -1,12 +1,12 @@
1
- # SGP Client Python API library
1
+ # Scale GP Python API library
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/scale-gp-beta.svg)](https://pypi.org/project/scale-gp-beta/)
4
4
 
5
- The SGP Client Python library provides convenient access to the SGP Client REST API from any Python 3.8+
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.stainlessapi.com/).
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 scale_gp import SGPClient
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 scale_gp import AsyncSGPClient
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 scale_gp import SGPClient
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 scale_gp import AsyncSGPClient
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 `scale_gp.APIConnectionError` is raised.
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 `scale_gp.APIStatusError` is raised, containing `status_code` and `response` properties.
225
+ response), a subclass of `scale_gp_beta.APIStatusError` is raised, containing `status_code` and `response` properties.
132
226
 
133
- All errors inherit from `scale_gp.APIError`.
227
+ All errors inherit from `scale_gp_beta.APIError`.
134
228
 
135
229
  ```python
136
- import scale_gp
137
- from scale_gp import SGPClient
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 scale_gp.APIConnectionError as e:
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 scale_gp.RateLimitError as e:
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 scale_gp.APIStatusError as e:
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 scale_gp import SGPClient
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 scale_gp import SGPClient
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 scale_gp import SGPClient
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/scale_gp/_response.py) object.
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/scale_gp/_response.py) with the same structure, the only difference being `await`able methods for reading the response content.
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 scale_gp import SGPClient, DefaultHttpxClient
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 scale_gp import SGPClient
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 scale_gp
399
- print(scale_gp.__version__)
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://stainlessapi.com). Stainless takes security seriously, and encourages you to report any security vulnerability promptly so that appropriate action can be taken.
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@stainlessapi.com.
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 SGP Client please follow the respective company's security reporting guidelines.
19
+ or products provided by Scale GP please follow the respective company's security reporting guidelines.
20
20
 
21
- ### SGP Client Terms and Policies
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