scale-gp-beta 0.1.0a37__tar.gz → 0.1.0a39__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 (219) hide show
  1. scale_gp_beta-0.1.0a39/.release-please-manifest.json +3 -0
  2. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/CHANGELOG.md +28 -0
  3. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/PKG-INFO +2 -1
  4. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/api.md +2 -1
  5. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/pyproject.toml +2 -1
  6. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_models.py +29 -12
  7. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_version.py +1 -1
  8. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/utils.py +3 -1
  9. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/files.py +83 -2
  10. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/__init__.py +2 -0
  11. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_task.py +18 -0
  12. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_task_param.py +18 -0
  13. scale_gp_beta-0.1.0a39/src/scale_gp_beta/types/file_import_from_cloud_params.py +27 -0
  14. scale_gp_beta-0.1.0a39/src/scale_gp_beta/types/file_import_from_cloud_response.py +35 -0
  15. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/question.py +2 -2
  16. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/question_create_params.py +2 -2
  17. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_files.py +109 -1
  18. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_questions.py +2 -2
  19. scale_gp_beta-0.1.0a39/tests/lib/tracing/integrations/__init__.py +0 -0
  20. scale_gp_beta-0.1.0a39/tests/lib/tracing/integrations/openai/__init__.py +0 -0
  21. scale_gp_beta-0.1.0a39/tests/lib/tracing/integrations/openai/test_utils.py +248 -0
  22. scale_gp_beta-0.1.0a37/.release-please-manifest.json +0 -3
  23. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/.gitignore +0 -0
  24. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/CONTRIBUTING.md +0 -0
  25. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/LICENSE +0 -0
  26. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/README.md +0 -0
  27. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/SECURITY.md +0 -0
  28. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/bin/check-release-environment +0 -0
  29. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/bin/publish-pypi +0 -0
  30. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/examples/.keep +0 -0
  31. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/examples/tracing/0_primitives_fibonacci.py +0 -0
  32. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/examples/tracing/1_explicit_use_case.py +0 -0
  33. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/examples/tracing/2_direct_upload.py +0 -0
  34. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/examples/tracing/3_openai_agent_tracing.py +0 -0
  35. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/noxfile.py +0 -0
  36. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/release-please-config.json +0 -0
  37. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/requirements-dev.lock +0 -0
  38. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/requirements.lock +0 -0
  39. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp/lib/.keep +0 -0
  40. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/__init__.py +0 -0
  41. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_base_client.py +0 -0
  42. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_client.py +0 -0
  43. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_compat.py +0 -0
  44. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_constants.py +0 -0
  45. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_exceptions.py +0 -0
  46. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_files.py +0 -0
  47. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_qs.py +0 -0
  48. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_resource.py +0 -0
  49. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_response.py +0 -0
  50. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_streaming.py +0 -0
  51. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_types.py +0 -0
  52. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/__init__.py +0 -0
  53. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_compat.py +0 -0
  54. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_datetime_parse.py +0 -0
  55. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_logs.py +0 -0
  56. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_proxy.py +0 -0
  57. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_reflection.py +0 -0
  58. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_resources_proxy.py +0 -0
  59. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_streams.py +0 -0
  60. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_sync.py +0 -0
  61. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_transform.py +0 -0
  62. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_typing.py +0 -0
  63. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_utils.py +0 -0
  64. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/.keep +0 -0
  65. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/CONTRIBUTING.MD +0 -0
  66. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/__init__.py +0 -0
  67. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/exceptions.py +0 -0
  68. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/__init__.py +0 -0
  69. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/__init__.py +0 -0
  70. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/openai_span_type_map.py +0 -0
  71. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/openai_tracing_sgp_processor.py +0 -0
  72. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/scope.py +0 -0
  73. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/span.py +0 -0
  74. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/trace.py +0 -0
  75. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/trace_exporter.py +0 -0
  76. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/trace_queue_manager.py +0 -0
  77. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/tracing.py +0 -0
  78. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/types.py +0 -0
  79. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/util.py +0 -0
  80. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/pagination.py +0 -0
  81. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/py.typed +0 -0
  82. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/__init__.py +0 -0
  83. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/__init__.py +0 -0
  84. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/chat.py +0 -0
  85. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/completions.py +0 -0
  86. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/completions.py +0 -0
  87. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/credentials.py +0 -0
  88. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/dataset_items.py +0 -0
  89. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/datasets.py +0 -0
  90. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/evaluation_items.py +0 -0
  91. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/evaluations.py +0 -0
  92. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/__init__.py +0 -0
  93. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/content.py +0 -0
  94. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/inference.py +0 -0
  95. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/models.py +0 -0
  96. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/questions.py +0 -0
  97. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/responses.py +0 -0
  98. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/span_assessments.py +0 -0
  99. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/spans.py +0 -0
  100. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/approval_status.py +0 -0
  101. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/assessment_type.py +0 -0
  102. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/__init__.py +0 -0
  103. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/chat_completion.py +0 -0
  104. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/chat_completion_chunk.py +0 -0
  105. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_create_params.py +0 -0
  106. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_create_response.py +0 -0
  107. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_models_params.py +0 -0
  108. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_models_response.py +0 -0
  109. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/model_definition.py +0 -0
  110. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/completion.py +0 -0
  111. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/completion_create_params.py +0 -0
  112. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/component.py +0 -0
  113. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/component_param.py +0 -0
  114. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/container.py +0 -0
  115. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/container_param.py +0 -0
  116. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential.py +0 -0
  117. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_create_params.py +0 -0
  118. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_delete_response.py +0 -0
  119. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_list_params.py +0 -0
  120. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_secret.py +0 -0
  121. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_update_params.py +0 -0
  122. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset.py +0 -0
  123. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_create_params.py +0 -0
  124. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_delete_response.py +0 -0
  125. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item.py +0 -0
  126. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_batch_create_params.py +0 -0
  127. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_batch_create_response.py +0 -0
  128. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_delete_response.py +0 -0
  129. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_list_params.py +0 -0
  130. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_retrieve_params.py +0 -0
  131. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_update_params.py +0 -0
  132. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_list_params.py +0 -0
  133. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_retrieve_params.py +0 -0
  134. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_update_params.py +0 -0
  135. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation.py +0 -0
  136. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_create_params.py +0 -0
  137. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_item.py +0 -0
  138. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_item_list_params.py +0 -0
  139. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_item_retrieve_params.py +0 -0
  140. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_list_params.py +0 -0
  141. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_retrieve_params.py +0 -0
  142. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_update_params.py +0 -0
  143. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file.py +0 -0
  144. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_create_params.py +0 -0
  145. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_delete_response.py +0 -0
  146. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_list_params.py +0 -0
  147. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_update_params.py +0 -0
  148. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/files/__init__.py +0 -0
  149. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_create_params.py +0 -0
  150. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_create_response.py +0 -0
  151. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_model.py +0 -0
  152. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_response.py +0 -0
  153. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_response_chunk.py +0 -0
  154. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/item_locator.py +0 -0
  155. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/item_locator_template.py +0 -0
  156. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_create_params.py +0 -0
  157. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_delete_response.py +0 -0
  158. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_list_params.py +0 -0
  159. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_update_params.py +0 -0
  160. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/question_list_params.py +0 -0
  161. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/response.py +0 -0
  162. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/response_create_params.py +0 -0
  163. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/response_create_response.py +0 -0
  164. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/shared/__init__.py +0 -0
  165. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/shared/identity.py +0 -0
  166. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span.py +0 -0
  167. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment.py +0 -0
  168. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_create_params.py +0 -0
  169. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_delete_response.py +0 -0
  170. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_list_params.py +0 -0
  171. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_update_params.py +0 -0
  172. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_batch_params.py +0 -0
  173. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_batch_response.py +0 -0
  174. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_create_params.py +0 -0
  175. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_search_params.py +0 -0
  176. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_status.py +0 -0
  177. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_type.py +0 -0
  178. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_update_params.py +0 -0
  179. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_upsert_batch_params.py +0 -0
  180. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_upsert_batch_response.py +0 -0
  181. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/src/sgp_dev/lib/.keep +0 -0
  182. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/__init__.py +0 -0
  183. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/__init__.py +0 -0
  184. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/chat/__init__.py +0 -0
  185. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/chat/test_completions.py +0 -0
  186. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/files/__init__.py +0 -0
  187. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/files/test_content.py +0 -0
  188. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_completions.py +0 -0
  189. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_credentials.py +0 -0
  190. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_dataset_items.py +0 -0
  191. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_datasets.py +0 -0
  192. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_evaluation_items.py +0 -0
  193. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_evaluations.py +0 -0
  194. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_inference.py +0 -0
  195. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_models.py +0 -0
  196. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_responses.py +0 -0
  197. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_span_assessments.py +0 -0
  198. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_spans.py +0 -0
  199. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/conftest.py +0 -0
  200. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_span.py +0 -0
  201. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_trace.py +0 -0
  202. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_trace_exporter.py +0 -0
  203. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_trace_queue_manager.py +0 -0
  204. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_tracing.py +0 -0
  205. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/sample_file.txt +0 -0
  206. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_client.py +0 -0
  207. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_deepcopy.py +0 -0
  208. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_extract_files.py +0 -0
  209. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_files.py +0 -0
  210. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_models.py +0 -0
  211. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_qs.py +0 -0
  212. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_required_args.py +0 -0
  213. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_response.py +0 -0
  214. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_streaming.py +0 -0
  215. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_transform.py +0 -0
  216. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_utils/test_datetime_parse.py +0 -0
  217. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_utils/test_proxy.py +0 -0
  218. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/test_utils/test_typing.py +0 -0
  219. {scale_gp_beta-0.1.0a37 → scale_gp_beta-0.1.0a39}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.39"
3
+ }
@@ -1,5 +1,33 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.39 (2025-11-21)
4
+
5
+ Full Changelog: [v0.1.0-alpha.38...v0.1.0-alpha.39](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.38...v0.1.0-alpha.39)
6
+
7
+ ### Bug Fixes
8
+
9
+ * **tracing:** handle non-dict JSON in parse_input_output ([377f7b5](https://github.com/scaleapi/sgp-python-beta/commit/377f7b5b8c355f7a691f1a067edea504fa92c141))
10
+
11
+
12
+ ### Chores
13
+
14
+ * **internal:** codegen related update ([a92ffed](https://github.com/scaleapi/sgp-python-beta/commit/a92ffed83d81cbb83ee34640c290e66ffb42cb6c))
15
+
16
+ ## 0.1.0-alpha.38 (2025-11-21)
17
+
18
+ Full Changelog: [v0.1.0-alpha.37...v0.1.0-alpha.38](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.37...v0.1.0-alpha.38)
19
+
20
+ ### Features
21
+
22
+ * **api:** api update ([b1d4b0b](https://github.com/scaleapi/sgp-python-beta/commit/b1d4b0beaf03b77e40149cd07cb33828b530e4b5))
23
+ * **api:** api update ([29b8944](https://github.com/scaleapi/sgp-python-beta/commit/29b89443e5022f2981e10544f86a78d0cd3a737e))
24
+ * **api:** manual updates ([227aa78](https://github.com/scaleapi/sgp-python-beta/commit/227aa78a5ea1b6ed4f0b85dcc76a578c933b8c3c))
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * **compat:** update signatures of `model_dump` and `model_dump_json` for Pydantic v1 ([f86a9e9](https://github.com/scaleapi/sgp-python-beta/commit/f86a9e998f20a76c28eea3c8cc67c63d9408ac5e))
30
+
3
31
  ## 0.1.0-alpha.37 (2025-11-10)
4
32
 
5
33
  Full Changelog: [v0.1.0-alpha.36...v0.1.0-alpha.37](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.36...v0.1.0-alpha.37)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: scale-gp-beta
3
- Version: 0.1.0a37
3
+ Version: 0.1.0a39
4
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
@@ -18,6 +18,7 @@ Classifier: Programming Language :: Python :: 3.10
18
18
  Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
21
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
22
23
  Classifier: Typing :: Typed
23
24
  Requires-Python: >=3.9
@@ -80,7 +80,7 @@ Methods:
80
80
  Types:
81
81
 
82
82
  ```python
83
- from scale_gp_beta.types import File, FileDeleteResponse
83
+ from scale_gp_beta.types import File, FileDeleteResponse, FileImportFromCloudResponse
84
84
  ```
85
85
 
86
86
  Methods:
@@ -90,6 +90,7 @@ Methods:
90
90
  - <code title="patch /v5/files/{file_id}">client.files.<a href="./src/scale_gp_beta/resources/files/files.py">update</a>(file_id, \*\*<a href="src/scale_gp_beta/types/file_update_params.py">params</a>) -> <a href="./src/scale_gp_beta/types/file.py">File</a></code>
91
91
  - <code title="get /v5/files">client.files.<a href="./src/scale_gp_beta/resources/files/files.py">list</a>(\*\*<a href="src/scale_gp_beta/types/file_list_params.py">params</a>) -> <a href="./src/scale_gp_beta/types/file.py">SyncCursorPage[File]</a></code>
92
92
  - <code title="delete /v5/files/{file_id}">client.files.<a href="./src/scale_gp_beta/resources/files/files.py">delete</a>(file_id) -> <a href="./src/scale_gp_beta/types/file_delete_response.py">FileDeleteResponse</a></code>
93
+ - <code title="post /v5/files/cloud_imports">client.files.<a href="./src/scale_gp_beta/resources/files/files.py">import_from_cloud</a>(\*\*<a href="src/scale_gp_beta/types/file_import_from_cloud_params.py">params</a>) -> <a href="./src/scale_gp_beta/types/file_import_from_cloud_response.py">FileImportFromCloudResponse</a></code>
93
94
 
94
95
  ## Content
95
96
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "scale-gp-beta"
3
- version = "0.1.0-alpha.37"
3
+ version = "0.1.0-alpha.39"
4
4
  description = "The official Python library for the Scale GP API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -24,6 +24,7 @@ classifiers = [
24
24
  "Programming Language :: Python :: 3.11",
25
25
  "Programming Language :: Python :: 3.12",
26
26
  "Programming Language :: Python :: 3.13",
27
+ "Programming Language :: Python :: 3.14",
27
28
  "Operating System :: OS Independent",
28
29
  "Operating System :: POSIX",
29
30
  "Operating System :: MacOS",
@@ -257,15 +257,16 @@ class BaseModel(pydantic.BaseModel):
257
257
  mode: Literal["json", "python"] | str = "python",
258
258
  include: IncEx | None = None,
259
259
  exclude: IncEx | None = None,
260
+ context: Any | None = None,
260
261
  by_alias: bool | None = None,
261
262
  exclude_unset: bool = False,
262
263
  exclude_defaults: bool = False,
263
264
  exclude_none: bool = False,
265
+ exclude_computed_fields: bool = False,
264
266
  round_trip: bool = False,
265
267
  warnings: bool | Literal["none", "warn", "error"] = True,
266
- context: dict[str, Any] | None = None,
267
- serialize_as_any: bool = False,
268
268
  fallback: Callable[[Any], Any] | None = None,
269
+ serialize_as_any: bool = False,
269
270
  ) -> dict[str, Any]:
270
271
  """Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump
271
272
 
@@ -273,16 +274,24 @@ class BaseModel(pydantic.BaseModel):
273
274
 
274
275
  Args:
275
276
  mode: The mode in which `to_python` should run.
276
- If mode is 'json', the dictionary will only contain JSON serializable types.
277
- If mode is 'python', the dictionary may contain any Python objects.
278
- include: A list of fields to include in the output.
279
- exclude: A list of fields to exclude from the output.
277
+ If mode is 'json', the output will only contain JSON serializable types.
278
+ If mode is 'python', the output may contain non-JSON-serializable Python objects.
279
+ include: A set of fields to include in the output.
280
+ exclude: A set of fields to exclude from the output.
281
+ context: Additional context to pass to the serializer.
280
282
  by_alias: Whether to use the field's alias in the dictionary key if defined.
281
- exclude_unset: Whether to exclude fields that are unset or None from the output.
282
- exclude_defaults: Whether to exclude fields that are set to their default value from the output.
283
- exclude_none: Whether to exclude fields that have a value of `None` from the output.
284
- round_trip: Whether to enable serialization and deserialization round-trip support.
285
- warnings: Whether to log warnings when invalid fields are encountered.
283
+ exclude_unset: Whether to exclude fields that have not been explicitly set.
284
+ exclude_defaults: Whether to exclude fields that are set to their default value.
285
+ exclude_none: Whether to exclude fields that have a value of `None`.
286
+ exclude_computed_fields: Whether to exclude computed fields.
287
+ While this can be useful for round-tripping, it is usually recommended to use the dedicated
288
+ `round_trip` parameter instead.
289
+ round_trip: If True, dumped values should be valid as input for non-idempotent types such as Json[T].
290
+ warnings: How to handle serialization errors. False/"none" ignores them, True/"warn" logs errors,
291
+ "error" raises a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError].
292
+ fallback: A function to call when an unknown value is encountered. If not provided,
293
+ a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError] error is raised.
294
+ serialize_as_any: Whether to serialize fields with duck-typing serialization behavior.
286
295
 
287
296
  Returns:
288
297
  A dictionary representation of the model.
@@ -299,6 +308,8 @@ class BaseModel(pydantic.BaseModel):
299
308
  raise ValueError("serialize_as_any is only supported in Pydantic v2")
300
309
  if fallback is not None:
301
310
  raise ValueError("fallback is only supported in Pydantic v2")
311
+ if exclude_computed_fields != False:
312
+ raise ValueError("exclude_computed_fields is only supported in Pydantic v2")
302
313
  dumped = super().dict( # pyright: ignore[reportDeprecated]
303
314
  include=include,
304
315
  exclude=exclude,
@@ -315,15 +326,17 @@ class BaseModel(pydantic.BaseModel):
315
326
  self,
316
327
  *,
317
328
  indent: int | None = None,
329
+ ensure_ascii: bool = False,
318
330
  include: IncEx | None = None,
319
331
  exclude: IncEx | None = None,
332
+ context: Any | None = None,
320
333
  by_alias: bool | None = None,
321
334
  exclude_unset: bool = False,
322
335
  exclude_defaults: bool = False,
323
336
  exclude_none: bool = False,
337
+ exclude_computed_fields: bool = False,
324
338
  round_trip: bool = False,
325
339
  warnings: bool | Literal["none", "warn", "error"] = True,
326
- context: dict[str, Any] | None = None,
327
340
  fallback: Callable[[Any], Any] | None = None,
328
341
  serialize_as_any: bool = False,
329
342
  ) -> str:
@@ -355,6 +368,10 @@ class BaseModel(pydantic.BaseModel):
355
368
  raise ValueError("serialize_as_any is only supported in Pydantic v2")
356
369
  if fallback is not None:
357
370
  raise ValueError("fallback is only supported in Pydantic v2")
371
+ if ensure_ascii != False:
372
+ raise ValueError("ensure_ascii is only supported in Pydantic v2")
373
+ if exclude_computed_fields != False:
374
+ raise ValueError("exclude_computed_fields is only supported in Pydantic v2")
358
375
  return super().json( # type: ignore[reportDeprecated]
359
376
  indent=indent,
360
377
  include=include,
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "scale_gp_beta"
4
- __version__ = "0.1.0-alpha.37" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.39" # x-release-please-version
@@ -62,7 +62,9 @@ def parse_input_output(openai_span: "OpenAISpan", key: str) -> Dict[str, Any]:
62
62
 
63
63
  if isinstance(value, str):
64
64
  try:
65
- return json.loads(value)
65
+ value = json.loads(value)
66
+ if isinstance(value, dict):
67
+ return value
66
68
  except (json.JSONDecodeError, TypeError):
67
69
  return {key: value}
68
70
  return {key: value}
@@ -2,12 +2,12 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
- from typing import Dict, Mapping, cast
5
+ from typing import Dict, Mapping, Iterable, cast
6
6
  from typing_extensions import Literal
7
7
 
8
8
  import httpx
9
9
 
10
- from ...types import file_list_params, file_create_params, file_update_params
10
+ from ...types import file_list_params, file_create_params, file_update_params, file_import_from_cloud_params
11
11
  from .content import (
12
12
  ContentResource,
13
13
  AsyncContentResource,
@@ -30,6 +30,7 @@ from ...pagination import SyncCursorPage, AsyncCursorPage
30
30
  from ...types.file import File
31
31
  from ..._base_client import AsyncPaginator, make_request_options
32
32
  from ...types.file_delete_response import FileDeleteResponse
33
+ from ...types.file_import_from_cloud_response import FileImportFromCloudResponse
33
34
 
34
35
  __all__ = ["FilesResource", "AsyncFilesResource"]
35
36
 
@@ -249,6 +250,40 @@ class FilesResource(SyncAPIResource):
249
250
  cast_to=FileDeleteResponse,
250
251
  )
251
252
 
253
+ def import_from_cloud(
254
+ self,
255
+ *,
256
+ files: Iterable[file_import_from_cloud_params.File],
257
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
258
+ # The extra values given here take precedence over values defined on the client or passed to this method.
259
+ extra_headers: Headers | None = None,
260
+ extra_query: Query | None = None,
261
+ extra_body: Body | None = None,
262
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
263
+ ) -> FileImportFromCloudResponse:
264
+ """
265
+ Import files from existing blob storage in cloud (batch operation)
266
+
267
+ Args:
268
+ files: List of files to import from cloud storage
269
+
270
+ extra_headers: Send extra headers
271
+
272
+ extra_query: Add additional query parameters to the request
273
+
274
+ extra_body: Add additional JSON properties to the request
275
+
276
+ timeout: Override the client-level default timeout for this request, in seconds
277
+ """
278
+ return self._post(
279
+ "/v5/files/cloud_imports",
280
+ body=maybe_transform({"files": files}, file_import_from_cloud_params.FileImportFromCloudParams),
281
+ options=make_request_options(
282
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
283
+ ),
284
+ cast_to=FileImportFromCloudResponse,
285
+ )
286
+
252
287
 
253
288
  class AsyncFilesResource(AsyncAPIResource):
254
289
  @cached_property
@@ -465,6 +500,40 @@ class AsyncFilesResource(AsyncAPIResource):
465
500
  cast_to=FileDeleteResponse,
466
501
  )
467
502
 
503
+ async def import_from_cloud(
504
+ self,
505
+ *,
506
+ files: Iterable[file_import_from_cloud_params.File],
507
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
508
+ # The extra values given here take precedence over values defined on the client or passed to this method.
509
+ extra_headers: Headers | None = None,
510
+ extra_query: Query | None = None,
511
+ extra_body: Body | None = None,
512
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
513
+ ) -> FileImportFromCloudResponse:
514
+ """
515
+ Import files from existing blob storage in cloud (batch operation)
516
+
517
+ Args:
518
+ files: List of files to import from cloud storage
519
+
520
+ extra_headers: Send extra headers
521
+
522
+ extra_query: Add additional query parameters to the request
523
+
524
+ extra_body: Add additional JSON properties to the request
525
+
526
+ timeout: Override the client-level default timeout for this request, in seconds
527
+ """
528
+ return await self._post(
529
+ "/v5/files/cloud_imports",
530
+ body=await async_maybe_transform({"files": files}, file_import_from_cloud_params.FileImportFromCloudParams),
531
+ options=make_request_options(
532
+ extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
533
+ ),
534
+ cast_to=FileImportFromCloudResponse,
535
+ )
536
+
468
537
 
469
538
  class FilesResourceWithRawResponse:
470
539
  def __init__(self, files: FilesResource) -> None:
@@ -485,6 +554,9 @@ class FilesResourceWithRawResponse:
485
554
  self.delete = to_raw_response_wrapper(
486
555
  files.delete,
487
556
  )
557
+ self.import_from_cloud = to_raw_response_wrapper(
558
+ files.import_from_cloud,
559
+ )
488
560
 
489
561
  @cached_property
490
562
  def content(self) -> ContentResourceWithRawResponse:
@@ -510,6 +582,9 @@ class AsyncFilesResourceWithRawResponse:
510
582
  self.delete = async_to_raw_response_wrapper(
511
583
  files.delete,
512
584
  )
585
+ self.import_from_cloud = async_to_raw_response_wrapper(
586
+ files.import_from_cloud,
587
+ )
513
588
 
514
589
  @cached_property
515
590
  def content(self) -> AsyncContentResourceWithRawResponse:
@@ -535,6 +610,9 @@ class FilesResourceWithStreamingResponse:
535
610
  self.delete = to_streamed_response_wrapper(
536
611
  files.delete,
537
612
  )
613
+ self.import_from_cloud = to_streamed_response_wrapper(
614
+ files.import_from_cloud,
615
+ )
538
616
 
539
617
  @cached_property
540
618
  def content(self) -> ContentResourceWithStreamingResponse:
@@ -560,6 +638,9 @@ class AsyncFilesResourceWithStreamingResponse:
560
638
  self.delete = async_to_streamed_response_wrapper(
561
639
  files.delete,
562
640
  )
641
+ self.import_from_cloud = async_to_streamed_response_wrapper(
642
+ files.import_from_cloud,
643
+ )
563
644
 
564
645
  @cached_property
565
646
  def content(self) -> AsyncContentResourceWithStreamingResponse:
@@ -73,9 +73,11 @@ from .evaluation_item_list_params import EvaluationItemListParams as EvaluationI
73
73
  from .span_assessment_list_params import SpanAssessmentListParams as SpanAssessmentListParams
74
74
  from .dataset_item_delete_response import DatasetItemDeleteResponse as DatasetItemDeleteResponse
75
75
  from .dataset_item_retrieve_params import DatasetItemRetrieveParams as DatasetItemRetrieveParams
76
+ from .file_import_from_cloud_params import FileImportFromCloudParams as FileImportFromCloudParams
76
77
  from .span_assessment_create_params import SpanAssessmentCreateParams as SpanAssessmentCreateParams
77
78
  from .span_assessment_update_params import SpanAssessmentUpdateParams as SpanAssessmentUpdateParams
78
79
  from .evaluation_item_retrieve_params import EvaluationItemRetrieveParams as EvaluationItemRetrieveParams
80
+ from .file_import_from_cloud_response import FileImportFromCloudResponse as FileImportFromCloudResponse
79
81
  from .span_assessment_delete_response import SpanAssessmentDeleteResponse as SpanAssessmentDeleteResponse
80
82
  from .dataset_item_batch_create_params import DatasetItemBatchCreateParams as DatasetItemBatchCreateParams
81
83
  from .dataset_item_batch_create_response import DatasetItemBatchCreateResponse as DatasetItemBatchCreateResponse
@@ -26,6 +26,8 @@ __all__ = [
26
26
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverrides",
27
27
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesInitialState",
28
28
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesPartialTrace",
29
+ "AgentexOutputEvaluationTask",
30
+ "AgentexOutputEvaluationTaskConfiguration",
29
31
  "MetricEvaluationTask",
30
32
  "MetricEvaluationTaskConfiguration",
31
33
  "MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator",
@@ -254,6 +256,21 @@ class ApplicationVariantV1EvaluationTask(BaseModel):
254
256
  task_type: Optional[Literal["application_variant"]] = None
255
257
 
256
258
 
259
+ class AgentexOutputEvaluationTaskConfiguration(BaseModel):
260
+ agentex_agent_id: str
261
+
262
+ input_column: str
263
+
264
+
265
+ class AgentexOutputEvaluationTask(BaseModel):
266
+ configuration: AgentexOutputEvaluationTaskConfiguration
267
+
268
+ alias: Optional[str] = None
269
+ """Alias to title the results column. Defaults to the `agentex_output`"""
270
+
271
+ task_type: Optional[Literal["agentex_output"]] = None
272
+
273
+
257
274
  class MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator(BaseModel):
258
275
  candidate: str
259
276
 
@@ -596,6 +613,7 @@ EvaluationTask: TypeAlias = Annotated[
596
613
  ChatCompletionEvaluationTask,
597
614
  GenericInferenceEvaluationTask,
598
615
  ApplicationVariantV1EvaluationTask,
616
+ AgentexOutputEvaluationTask,
599
617
  MetricEvaluationTask,
600
618
  AutoEvaluationQuestionTask,
601
619
  AutoEvaluationGuidedDecodingEvaluationTask,
@@ -23,6 +23,8 @@ __all__ = [
23
23
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverrides",
24
24
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesInitialState",
25
25
  "ApplicationVariantV1EvaluationTaskConfigurationOverridesAgenticApplicationOverridesPartialTrace",
26
+ "AgentexOutputEvaluationTask",
27
+ "AgentexOutputEvaluationTaskConfiguration",
26
28
  "MetricEvaluationTask",
27
29
  "MetricEvaluationTaskConfiguration",
28
30
  "MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator",
@@ -246,6 +248,21 @@ class ApplicationVariantV1EvaluationTask(TypedDict, total=False):
246
248
  task_type: Literal["application_variant"]
247
249
 
248
250
 
251
+ class AgentexOutputEvaluationTaskConfiguration(TypedDict, total=False):
252
+ agentex_agent_id: Required[str]
253
+
254
+ input_column: Required[str]
255
+
256
+
257
+ class AgentexOutputEvaluationTask(TypedDict, total=False):
258
+ configuration: Required[AgentexOutputEvaluationTaskConfiguration]
259
+
260
+ alias: str
261
+ """Alias to title the results column. Defaults to the `agentex_output`"""
262
+
263
+ task_type: Literal["agentex_output"]
264
+
265
+
249
266
  class MetricEvaluationTaskConfigurationBleuScorerConfigWithItemLocator(TypedDict, total=False):
250
267
  candidate: Required[str]
251
268
 
@@ -594,6 +611,7 @@ EvaluationTaskParam: TypeAlias = Union[
594
611
  ChatCompletionEvaluationTask,
595
612
  GenericInferenceEvaluationTask,
596
613
  ApplicationVariantV1EvaluationTask,
614
+ AgentexOutputEvaluationTask,
597
615
  MetricEvaluationTask,
598
616
  AutoEvaluationQuestionTask,
599
617
  AutoEvaluationGuidedDecodingEvaluationTask,
@@ -0,0 +1,27 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import Iterable
6
+ from typing_extensions import Required, TypedDict
7
+
8
+ __all__ = ["FileImportFromCloudParams", "File"]
9
+
10
+
11
+ class FileImportFromCloudParams(TypedDict, total=False):
12
+ files: Required[Iterable[File]]
13
+ """List of files to import from cloud storage"""
14
+
15
+
16
+ class File(TypedDict, total=False):
17
+ container: Required[str]
18
+ """The cloud storage container/bucket name"""
19
+
20
+ file_type: Required[str]
21
+ """The MIME type of the file"""
22
+
23
+ filename: Required[str]
24
+ """The name of the file"""
25
+
26
+ filepath: Required[str]
27
+ """The path to the file within the container"""
@@ -0,0 +1,35 @@
1
+ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ from typing import List, Union, Optional
4
+ from typing_extensions import Literal, TypeAlias
5
+
6
+ from .file import File
7
+ from .._models import BaseModel
8
+
9
+ __all__ = ["FileImportFromCloudResponse", "Result", "ResultFile", "ResultFile_FailedFile"]
10
+
11
+
12
+ class ResultFile_FailedFile(BaseModel):
13
+ filename: str
14
+ """The original filename from the request"""
15
+
16
+ mime_type: str
17
+ """The original MIME type from the request"""
18
+
19
+ object: Optional[Literal["failed_file"]] = None
20
+
21
+
22
+ ResultFile: TypeAlias = Union[File, ResultFile_FailedFile]
23
+
24
+
25
+ class Result(BaseModel):
26
+ file: ResultFile
27
+ """The file object (full File for success, minimal \\__FailedFile for failures)"""
28
+
29
+ status: Literal["SUCCESS", "FAILED_FILE_DOES_NOT_EXIST", "FAILED_INVALID_PERMISSIONS", "FAILED_UNKNOWN_ERROR"]
30
+ """The status of the upload attempt"""
31
+
32
+
33
+ class FileImportFromCloudResponse(BaseModel):
34
+ results: List[Result]
35
+ """Results for each file import attempt"""
@@ -194,8 +194,8 @@ class FormQuestion(BaseModel):
194
194
 
195
195
 
196
196
  class TimestampQuestionConfiguration(BaseModel):
197
- allow_multi_timestamps: Optional[bool] = None
198
- """Whether to allow multiple media timestamps"""
197
+ multi: Optional[bool] = None
198
+ """Whether to allow multiple timestamps"""
199
199
 
200
200
 
201
201
  class TimestampQuestion(BaseModel):
@@ -152,8 +152,8 @@ class TimestampQuestionRequest(TypedDict, total=False):
152
152
 
153
153
 
154
154
  class TimestampQuestionRequestConfiguration(TypedDict, total=False):
155
- allow_multi_timestamps: bool
156
- """Whether to allow multiple media timestamps"""
155
+ multi: bool
156
+ """Whether to allow multiple timestamps"""
157
157
 
158
158
 
159
159
  QuestionCreateParams: TypeAlias = Union[
@@ -9,7 +9,11 @@ import pytest
9
9
 
10
10
  from tests.utils import assert_matches_type
11
11
  from scale_gp_beta import SGPClient, AsyncSGPClient
12
- from scale_gp_beta.types import File, FileDeleteResponse
12
+ from scale_gp_beta.types import (
13
+ File,
14
+ FileDeleteResponse,
15
+ FileImportFromCloudResponse,
16
+ )
13
17
  from scale_gp_beta.pagination import SyncCursorPage, AsyncCursorPage
14
18
 
15
19
  base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
@@ -207,6 +211,58 @@ class TestFiles:
207
211
  "",
208
212
  )
209
213
 
214
+ @parametrize
215
+ def test_method_import_from_cloud(self, client: SGPClient) -> None:
216
+ file = client.files.import_from_cloud(
217
+ files=[
218
+ {
219
+ "container": "container",
220
+ "file_type": "file_type",
221
+ "filename": "filename",
222
+ "filepath": "filepath",
223
+ }
224
+ ],
225
+ )
226
+ assert_matches_type(FileImportFromCloudResponse, file, path=["response"])
227
+
228
+ @parametrize
229
+ def test_raw_response_import_from_cloud(self, client: SGPClient) -> None:
230
+ response = client.files.with_raw_response.import_from_cloud(
231
+ files=[
232
+ {
233
+ "container": "container",
234
+ "file_type": "file_type",
235
+ "filename": "filename",
236
+ "filepath": "filepath",
237
+ }
238
+ ],
239
+ )
240
+
241
+ assert response.is_closed is True
242
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
243
+ file = response.parse()
244
+ assert_matches_type(FileImportFromCloudResponse, file, path=["response"])
245
+
246
+ @parametrize
247
+ def test_streaming_response_import_from_cloud(self, client: SGPClient) -> None:
248
+ with client.files.with_streaming_response.import_from_cloud(
249
+ files=[
250
+ {
251
+ "container": "container",
252
+ "file_type": "file_type",
253
+ "filename": "filename",
254
+ "filepath": "filepath",
255
+ }
256
+ ],
257
+ ) as response:
258
+ assert not response.is_closed
259
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
260
+
261
+ file = response.parse()
262
+ assert_matches_type(FileImportFromCloudResponse, file, path=["response"])
263
+
264
+ assert cast(Any, response.is_closed) is True
265
+
210
266
 
211
267
  class TestAsyncFiles:
212
268
  parametrize = pytest.mark.parametrize(
@@ -401,3 +457,55 @@ class TestAsyncFiles:
401
457
  await async_client.files.with_raw_response.delete(
402
458
  "",
403
459
  )
460
+
461
+ @parametrize
462
+ async def test_method_import_from_cloud(self, async_client: AsyncSGPClient) -> None:
463
+ file = await async_client.files.import_from_cloud(
464
+ files=[
465
+ {
466
+ "container": "container",
467
+ "file_type": "file_type",
468
+ "filename": "filename",
469
+ "filepath": "filepath",
470
+ }
471
+ ],
472
+ )
473
+ assert_matches_type(FileImportFromCloudResponse, file, path=["response"])
474
+
475
+ @parametrize
476
+ async def test_raw_response_import_from_cloud(self, async_client: AsyncSGPClient) -> None:
477
+ response = await async_client.files.with_raw_response.import_from_cloud(
478
+ files=[
479
+ {
480
+ "container": "container",
481
+ "file_type": "file_type",
482
+ "filename": "filename",
483
+ "filepath": "filepath",
484
+ }
485
+ ],
486
+ )
487
+
488
+ assert response.is_closed is True
489
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
490
+ file = await response.parse()
491
+ assert_matches_type(FileImportFromCloudResponse, file, path=["response"])
492
+
493
+ @parametrize
494
+ async def test_streaming_response_import_from_cloud(self, async_client: AsyncSGPClient) -> None:
495
+ async with async_client.files.with_streaming_response.import_from_cloud(
496
+ files=[
497
+ {
498
+ "container": "container",
499
+ "file_type": "file_type",
500
+ "filename": "filename",
501
+ "filepath": "filepath",
502
+ }
503
+ ],
504
+ ) as response:
505
+ assert not response.is_closed
506
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
507
+
508
+ file = await response.parse()
509
+ assert_matches_type(FileImportFromCloudResponse, file, path=["response"])
510
+
511
+ assert cast(Any, response.is_closed) is True