scale-gp-beta 0.1.0a35__tar.gz → 0.1.0a36__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 (215) hide show
  1. scale_gp_beta-0.1.0a36/.release-please-manifest.json +3 -0
  2. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/CHANGELOG.md +27 -0
  3. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/PKG-INFO +2 -2
  4. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/SECURITY.md +1 -1
  5. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/pyproject.toml +2 -2
  6. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_streaming.py +4 -6
  7. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_version.py +1 -1
  8. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/datasets.py +99 -3
  9. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_item.py +3 -1
  10. scale_gp_beta-0.1.0a36/src/scale_gp_beta/types/dataset_update_params.py +27 -0
  11. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation.py +40 -1
  12. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_item.py +2 -0
  13. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_task.py +3 -0
  14. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_task_param.py +3 -0
  15. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/file.py +2 -0
  16. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/question.py +6 -0
  17. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/question_create_params.py +6 -0
  18. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_datasets.py +94 -10
  19. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_questions.py +10 -2
  20. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_client.py +212 -170
  21. scale_gp_beta-0.1.0a35/.release-please-manifest.json +0 -3
  22. scale_gp_beta-0.1.0a35/src/scale_gp_beta/types/dataset_update_params.py +0 -18
  23. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/.gitignore +0 -0
  24. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/CONTRIBUTING.md +0 -0
  25. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/LICENSE +0 -0
  26. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/README.md +0 -0
  27. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/api.md +0 -0
  28. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/bin/check-release-environment +0 -0
  29. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/bin/publish-pypi +0 -0
  30. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/examples/.keep +0 -0
  31. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/examples/tracing/0_primitives_fibonacci.py +0 -0
  32. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/examples/tracing/1_explicit_use_case.py +0 -0
  33. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/examples/tracing/2_direct_upload.py +0 -0
  34. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/examples/tracing/3_openai_agent_tracing.py +0 -0
  35. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/noxfile.py +0 -0
  36. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/release-please-config.json +0 -0
  37. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/requirements-dev.lock +0 -0
  38. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/requirements.lock +0 -0
  39. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp/lib/.keep +0 -0
  40. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/__init__.py +0 -0
  41. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_base_client.py +0 -0
  42. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_client.py +0 -0
  43. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_compat.py +0 -0
  44. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_constants.py +0 -0
  45. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_exceptions.py +0 -0
  46. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_files.py +0 -0
  47. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_models.py +0 -0
  48. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_qs.py +0 -0
  49. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_resource.py +0 -0
  50. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_response.py +0 -0
  51. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_types.py +0 -0
  52. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/__init__.py +0 -0
  53. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_compat.py +0 -0
  54. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_datetime_parse.py +0 -0
  55. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_logs.py +0 -0
  56. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_proxy.py +0 -0
  57. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_reflection.py +0 -0
  58. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_resources_proxy.py +0 -0
  59. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_streams.py +0 -0
  60. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_sync.py +0 -0
  61. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_transform.py +0 -0
  62. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_typing.py +0 -0
  63. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/_utils/_utils.py +0 -0
  64. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/.keep +0 -0
  65. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/CONTRIBUTING.MD +0 -0
  66. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/__init__.py +0 -0
  67. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/exceptions.py +0 -0
  68. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/integrations/__init__.py +0 -0
  69. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/integrations/openai/__init__.py +0 -0
  70. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/integrations/openai/openai_span_type_map.py +0 -0
  71. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/integrations/openai/openai_tracing_sgp_processor.py +0 -0
  72. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/integrations/openai/utils.py +0 -0
  73. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/scope.py +0 -0
  74. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/span.py +0 -0
  75. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/trace.py +0 -0
  76. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/trace_exporter.py +0 -0
  77. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/trace_queue_manager.py +0 -0
  78. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/tracing.py +0 -0
  79. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/types.py +0 -0
  80. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/lib/tracing/util.py +0 -0
  81. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/pagination.py +0 -0
  82. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/py.typed +0 -0
  83. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/__init__.py +0 -0
  84. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/chat/__init__.py +0 -0
  85. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/chat/chat.py +0 -0
  86. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/chat/completions.py +0 -0
  87. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/completions.py +0 -0
  88. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/credentials.py +0 -0
  89. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/dataset_items.py +0 -0
  90. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/evaluation_items.py +0 -0
  91. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/evaluations.py +0 -0
  92. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/files/__init__.py +0 -0
  93. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/files/content.py +0 -0
  94. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/files/files.py +0 -0
  95. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/inference.py +0 -0
  96. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/models.py +0 -0
  97. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/questions.py +0 -0
  98. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/responses.py +0 -0
  99. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/span_assessments.py +0 -0
  100. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/resources/spans.py +0 -0
  101. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/__init__.py +0 -0
  102. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/approval_status.py +0 -0
  103. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/assessment_type.py +0 -0
  104. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/__init__.py +0 -0
  105. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/chat_completion.py +0 -0
  106. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/chat_completion_chunk.py +0 -0
  107. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/completion_create_params.py +0 -0
  108. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/completion_create_response.py +0 -0
  109. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/completion_models_params.py +0 -0
  110. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/completion_models_response.py +0 -0
  111. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/chat/model_definition.py +0 -0
  112. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/completion.py +0 -0
  113. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/completion_create_params.py +0 -0
  114. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/component.py +0 -0
  115. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/component_param.py +0 -0
  116. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/container.py +0 -0
  117. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/container_param.py +0 -0
  118. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/credential.py +0 -0
  119. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/credential_create_params.py +0 -0
  120. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/credential_delete_response.py +0 -0
  121. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/credential_list_params.py +0 -0
  122. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/credential_secret.py +0 -0
  123. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/credential_update_params.py +0 -0
  124. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset.py +0 -0
  125. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_create_params.py +0 -0
  126. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_delete_response.py +0 -0
  127. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_item_batch_create_params.py +0 -0
  128. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_item_batch_create_response.py +0 -0
  129. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_item_delete_response.py +0 -0
  130. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_item_list_params.py +0 -0
  131. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_item_retrieve_params.py +0 -0
  132. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_item_update_params.py +0 -0
  133. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_list_params.py +0 -0
  134. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/dataset_retrieve_params.py +0 -0
  135. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_create_params.py +0 -0
  136. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_item_list_params.py +0 -0
  137. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_item_retrieve_params.py +0 -0
  138. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_list_params.py +0 -0
  139. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_retrieve_params.py +0 -0
  140. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/evaluation_update_params.py +0 -0
  141. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/file_create_params.py +0 -0
  142. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/file_delete_response.py +0 -0
  143. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/file_list_params.py +0 -0
  144. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/file_update_params.py +0 -0
  145. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/files/__init__.py +0 -0
  146. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/inference_create_params.py +0 -0
  147. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/inference_create_response.py +0 -0
  148. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/inference_model.py +0 -0
  149. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/inference_response.py +0 -0
  150. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/inference_response_chunk.py +0 -0
  151. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/item_locator.py +0 -0
  152. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/item_locator_template.py +0 -0
  153. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/model_create_params.py +0 -0
  154. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/model_delete_response.py +0 -0
  155. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/model_list_params.py +0 -0
  156. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/model_update_params.py +0 -0
  157. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/question_list_params.py +0 -0
  158. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/response.py +0 -0
  159. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/response_create_params.py +0 -0
  160. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/response_create_response.py +0 -0
  161. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/shared/__init__.py +0 -0
  162. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/shared/identity.py +0 -0
  163. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span.py +0 -0
  164. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_assessment.py +0 -0
  165. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_assessment_create_params.py +0 -0
  166. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_assessment_delete_response.py +0 -0
  167. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_assessment_list_params.py +0 -0
  168. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_assessment_update_params.py +0 -0
  169. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_batch_params.py +0 -0
  170. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_batch_response.py +0 -0
  171. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_create_params.py +0 -0
  172. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_search_params.py +0 -0
  173. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_status.py +0 -0
  174. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_type.py +0 -0
  175. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_update_params.py +0 -0
  176. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_upsert_batch_params.py +0 -0
  177. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/scale_gp_beta/types/span_upsert_batch_response.py +0 -0
  178. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/src/sgp_dev/lib/.keep +0 -0
  179. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/__init__.py +0 -0
  180. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/__init__.py +0 -0
  181. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/chat/__init__.py +0 -0
  182. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/chat/test_completions.py +0 -0
  183. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/files/__init__.py +0 -0
  184. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/files/test_content.py +0 -0
  185. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_completions.py +0 -0
  186. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_credentials.py +0 -0
  187. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_dataset_items.py +0 -0
  188. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_evaluation_items.py +0 -0
  189. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_evaluations.py +0 -0
  190. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_files.py +0 -0
  191. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_inference.py +0 -0
  192. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_models.py +0 -0
  193. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_responses.py +0 -0
  194. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_span_assessments.py +0 -0
  195. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/api_resources/test_spans.py +0 -0
  196. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/conftest.py +0 -0
  197. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/lib/tracing/test_span.py +0 -0
  198. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/lib/tracing/test_trace.py +0 -0
  199. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/lib/tracing/test_trace_exporter.py +0 -0
  200. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/lib/tracing/test_trace_queue_manager.py +0 -0
  201. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/lib/tracing/test_tracing.py +0 -0
  202. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/sample_file.txt +0 -0
  203. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_deepcopy.py +0 -0
  204. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_extract_files.py +0 -0
  205. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_files.py +0 -0
  206. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_models.py +0 -0
  207. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_qs.py +0 -0
  208. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_required_args.py +0 -0
  209. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_response.py +0 -0
  210. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_streaming.py +0 -0
  211. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_transform.py +0 -0
  212. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_utils/test_datetime_parse.py +0 -0
  213. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_utils/test_proxy.py +0 -0
  214. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/test_utils/test_typing.py +0 -0
  215. {scale_gp_beta-0.1.0a35 → scale_gp_beta-0.1.0a36}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.36"
3
+ }
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.36 (2025-10-31)
4
+
5
+ Full Changelog: [v0.1.0-alpha.35...v0.1.0-alpha.36](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.35...v0.1.0-alpha.36)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([76132f3](https://github.com/scaleapi/sgp-python-beta/commit/76132f3014a1bb76c6fbc361eeb22b70e5ba2c8e))
10
+ * **api:** api update ([d49fc07](https://github.com/scaleapi/sgp-python-beta/commit/d49fc0725a798935a158e948b6bec9957ad70735))
11
+ * **api:** api update ([159f86b](https://github.com/scaleapi/sgp-python-beta/commit/159f86bc297c0d5f2c0274130cb80eafb42dcbcb))
12
+ * **api:** api update ([45b625d](https://github.com/scaleapi/sgp-python-beta/commit/45b625d2fa05372e691ce1104aa2ad57e35f7298))
13
+ * **api:** api update ([5f5f260](https://github.com/scaleapi/sgp-python-beta/commit/5f5f2600c93e4139e0a4166161760926726e8db9))
14
+ * **api:** api update ([82f6432](https://github.com/scaleapi/sgp-python-beta/commit/82f6432e0fc15b49b1af61b68e5c532128cb17db))
15
+ * **api:** api update ([f6f38a1](https://github.com/scaleapi/sgp-python-beta/commit/f6f38a1d672cbf164e274e4bb4c0b7edba40ba2f))
16
+ * **api:** api update ([a21c810](https://github.com/scaleapi/sgp-python-beta/commit/a21c810df306cd18556db68c75b11121a746fa2b))
17
+ * **api:** api update ([f4348cc](https://github.com/scaleapi/sgp-python-beta/commit/f4348cc051044d9eee0bcd0355265a8f563e9f2d))
18
+ * **api:** manual updates ([4c36350](https://github.com/scaleapi/sgp-python-beta/commit/4c363507e9eba1e4d04ef2e274cb07020ce0160d))
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * **client:** close streams without requiring full consumption ([d0d9d1d](https://github.com/scaleapi/sgp-python-beta/commit/d0d9d1d1539f006f6b8dd358657bae7639086c52))
24
+
25
+
26
+ ### Chores
27
+
28
+ * **internal/tests:** avoid race condition with implicit client cleanup ([8dcca91](https://github.com/scaleapi/sgp-python-beta/commit/8dcca913c6a8413a9bf49d0594452e998911054a))
29
+
3
30
  ## 0.1.0-alpha.35 (2025-10-21)
4
31
 
5
32
  Full Changelog: [v0.1.0-alpha.34...v0.1.0-alpha.35](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.34...v0.1.0-alpha.35)
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: scale-gp-beta
3
- Version: 0.1.0a35
3
+ Version: 0.1.0a36
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
7
- Author-email: Scale GP <anish.agrawal@scale.com>
7
+ Author-email: Scale GP <erich.woo@scale.com>
8
8
  License: Apache-2.0
9
9
  Classifier: Intended Audience :: Developers
10
10
  Classifier: License :: OSI Approved :: Apache Software License
@@ -20,7 +20,7 @@ or products provided by Scale GP, please follow the respective company's securit
20
20
 
21
21
  ### Scale GP Terms and Policies
22
22
 
23
- Please contact anish.agrawal@scale.com for any questions or concerns regarding the security of our services.
23
+ Please contact erich.woo@scale.com for any questions or concerns regarding the security of our services.
24
24
 
25
25
  ---
26
26
 
@@ -1,11 +1,11 @@
1
1
  [project]
2
2
  name = "scale-gp-beta"
3
- version = "0.1.0-alpha.35"
3
+ version = "0.1.0-alpha.36"
4
4
  description = "The official Python library for the Scale GP API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
7
7
  authors = [
8
- { name = "Scale GP", email = "anish.agrawal@scale.com" },
8
+ { name = "Scale GP", email = "erich.woo@scale.com" },
9
9
  ]
10
10
  dependencies = [
11
11
  "httpx>=0.23.0, <1",
@@ -57,9 +57,8 @@ class Stream(Generic[_T]):
57
57
  for sse in iterator:
58
58
  yield process_data(data=sse.json(), cast_to=cast_to, response=response)
59
59
 
60
- # Ensure the entire stream is consumed
61
- for _sse in iterator:
62
- ...
60
+ # As we might not fully consume the response stream, we need to close it explicitly
61
+ response.close()
63
62
 
64
63
  def __enter__(self) -> Self:
65
64
  return self
@@ -121,9 +120,8 @@ class AsyncStream(Generic[_T]):
121
120
  async for sse in iterator:
122
121
  yield process_data(data=sse.json(), cast_to=cast_to, response=response)
123
122
 
124
- # Ensure the entire stream is consumed
125
- async for _sse in iterator:
126
- ...
123
+ # As we might not fully consume the response stream, we need to close it explicitly
124
+ await response.aclose()
127
125
 
128
126
  async def __aenter__(self) -> Self:
129
127
  return self
@@ -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.35" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.36" # x-release-please-version
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  from typing import Dict, Iterable
6
- from typing_extensions import Literal
6
+ from typing_extensions import Literal, overload
7
7
 
8
8
  import httpx
9
9
 
@@ -133,6 +133,7 @@ class DatasetsResource(SyncAPIResource):
133
133
  cast_to=Dataset,
134
134
  )
135
135
 
136
+ @overload
136
137
  def update(
137
138
  self,
138
139
  dataset_id: str,
@@ -148,7 +149,7 @@ class DatasetsResource(SyncAPIResource):
148
149
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
149
150
  ) -> Dataset:
150
151
  """
151
- Update Dataset
152
+ Update or Restore Dataset
152
153
 
153
154
  Args:
154
155
  tags: The tags associated with the entity
@@ -161,6 +162,52 @@ class DatasetsResource(SyncAPIResource):
161
162
 
162
163
  timeout: Override the client-level default timeout for this request, in seconds
163
164
  """
165
+ ...
166
+
167
+ @overload
168
+ def update(
169
+ self,
170
+ dataset_id: str,
171
+ *,
172
+ restore: Literal[True],
173
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
174
+ # The extra values given here take precedence over values defined on the client or passed to this method.
175
+ extra_headers: Headers | None = None,
176
+ extra_query: Query | None = None,
177
+ extra_body: Body | None = None,
178
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
179
+ ) -> Dataset:
180
+ """
181
+ Update or Restore Dataset
182
+
183
+ Args:
184
+ restore: Set to true to restore the entity from the database.
185
+
186
+ extra_headers: Send extra headers
187
+
188
+ extra_query: Add additional query parameters to the request
189
+
190
+ extra_body: Add additional JSON properties to the request
191
+
192
+ timeout: Override the client-level default timeout for this request, in seconds
193
+ """
194
+ ...
195
+
196
+ def update(
197
+ self,
198
+ dataset_id: str,
199
+ *,
200
+ description: str | Omit = omit,
201
+ name: str | Omit = omit,
202
+ tags: SequenceNotStr[str] | Omit = omit,
203
+ restore: Literal[True] | Omit = omit,
204
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
205
+ # The extra values given here take precedence over values defined on the client or passed to this method.
206
+ extra_headers: Headers | None = None,
207
+ extra_query: Query | None = None,
208
+ extra_body: Body | None = None,
209
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
210
+ ) -> Dataset:
164
211
  if not dataset_id:
165
212
  raise ValueError(f"Expected a non-empty value for `dataset_id` but received {dataset_id!r}")
166
213
  return self._patch(
@@ -170,6 +217,7 @@ class DatasetsResource(SyncAPIResource):
170
217
  "description": description,
171
218
  "name": name,
172
219
  "tags": tags,
220
+ "restore": restore,
173
221
  },
174
222
  dataset_update_params.DatasetUpdateParams,
175
223
  ),
@@ -373,6 +421,7 @@ class AsyncDatasetsResource(AsyncAPIResource):
373
421
  cast_to=Dataset,
374
422
  )
375
423
 
424
+ @overload
376
425
  async def update(
377
426
  self,
378
427
  dataset_id: str,
@@ -388,7 +437,7 @@ class AsyncDatasetsResource(AsyncAPIResource):
388
437
  timeout: float | httpx.Timeout | None | NotGiven = not_given,
389
438
  ) -> Dataset:
390
439
  """
391
- Update Dataset
440
+ Update or Restore Dataset
392
441
 
393
442
  Args:
394
443
  tags: The tags associated with the entity
@@ -401,6 +450,52 @@ class AsyncDatasetsResource(AsyncAPIResource):
401
450
 
402
451
  timeout: Override the client-level default timeout for this request, in seconds
403
452
  """
453
+ ...
454
+
455
+ @overload
456
+ async def update(
457
+ self,
458
+ dataset_id: str,
459
+ *,
460
+ restore: Literal[True],
461
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
462
+ # The extra values given here take precedence over values defined on the client or passed to this method.
463
+ extra_headers: Headers | None = None,
464
+ extra_query: Query | None = None,
465
+ extra_body: Body | None = None,
466
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
467
+ ) -> Dataset:
468
+ """
469
+ Update or Restore Dataset
470
+
471
+ Args:
472
+ restore: Set to true to restore the entity from the database.
473
+
474
+ extra_headers: Send extra headers
475
+
476
+ extra_query: Add additional query parameters to the request
477
+
478
+ extra_body: Add additional JSON properties to the request
479
+
480
+ timeout: Override the client-level default timeout for this request, in seconds
481
+ """
482
+ ...
483
+
484
+ async def update(
485
+ self,
486
+ dataset_id: str,
487
+ *,
488
+ description: str | Omit = omit,
489
+ name: str | Omit = omit,
490
+ tags: SequenceNotStr[str] | Omit = omit,
491
+ restore: Literal[True] | Omit = omit,
492
+ # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
493
+ # The extra values given here take precedence over values defined on the client or passed to this method.
494
+ extra_headers: Headers | None = None,
495
+ extra_query: Query | None = None,
496
+ extra_body: Body | None = None,
497
+ timeout: float | httpx.Timeout | None | NotGiven = not_given,
498
+ ) -> Dataset:
404
499
  if not dataset_id:
405
500
  raise ValueError(f"Expected a non-empty value for `dataset_id` but received {dataset_id!r}")
406
501
  return await self._patch(
@@ -410,6 +505,7 @@ class AsyncDatasetsResource(AsyncAPIResource):
410
505
  "description": description,
411
506
  "name": name,
412
507
  "tags": tags,
508
+ "restore": restore,
413
509
  },
414
510
  dataset_update_params.DatasetUpdateParams,
415
511
  ),
@@ -1,6 +1,6 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
- from typing import Optional
3
+ from typing import Dict, Optional
4
4
  from datetime import datetime
5
5
  from typing_extensions import Literal
6
6
 
@@ -28,4 +28,6 @@ class DatasetItem(BaseModel):
28
28
 
29
29
  dataset_id: Optional[str] = None
30
30
 
31
+ files: Optional[Dict[str, str]] = None
32
+
31
33
  object: Optional[Literal["dataset.item"]] = None
@@ -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 Union
6
+ from typing_extensions import Literal, Required, TypeAlias, TypedDict
7
+
8
+ from .._types import SequenceNotStr
9
+
10
+ __all__ = ["DatasetUpdateParams", "PartialDatasetRequestBase", "RestoreRequest"]
11
+
12
+
13
+ class PartialDatasetRequestBase(TypedDict, total=False):
14
+ description: str
15
+
16
+ name: str
17
+
18
+ tags: SequenceNotStr[str]
19
+ """The tags associated with the entity"""
20
+
21
+
22
+ class RestoreRequest(TypedDict, total=False):
23
+ restore: Required[Literal[True]]
24
+ """Set to true to restore the entity from the database."""
25
+
26
+
27
+ DatasetUpdateParams: TypeAlias = Union[PartialDatasetRequestBase, RestoreRequest]
@@ -10,7 +10,43 @@ from .dataset import Dataset
10
10
  from .._models import BaseModel
11
11
  from .shared.identity import Identity
12
12
 
13
- __all__ = ["Evaluation"]
13
+ __all__ = ["Evaluation", "Progress", "ProgressItems", "ProgressItemsFailedItem", "ProgressWorkflows"]
14
+
15
+
16
+ class ProgressItemsFailedItem(BaseModel):
17
+ item_id: str
18
+
19
+ error: Optional[str] = None
20
+
21
+ error_type: Optional[str] = None
22
+
23
+
24
+ class ProgressItems(BaseModel):
25
+ failed: int
26
+
27
+ pending: int
28
+
29
+ successful: int
30
+
31
+ total: int
32
+
33
+ failed_items: Optional[List[ProgressItemsFailedItem]] = None
34
+
35
+
36
+ class ProgressWorkflows(BaseModel):
37
+ completed: int
38
+
39
+ failed: int
40
+
41
+ pending: int
42
+
43
+ total: int
44
+
45
+
46
+ class Progress(BaseModel):
47
+ items: Optional[ProgressItems] = None
48
+
49
+ workflows: Optional[ProgressWorkflows] = None
14
50
 
15
51
 
16
52
  class Evaluation(BaseModel):
@@ -39,6 +75,9 @@ class Evaluation(BaseModel):
39
75
 
40
76
  object: Optional[Literal["evaluation"]] = None
41
77
 
78
+ progress: Optional[Progress] = None
79
+ """Progress of the evaluation's underlying async job"""
80
+
42
81
  status_reason: Optional[str] = None
43
82
  """Reason for evaluation status"""
44
83
 
@@ -28,4 +28,6 @@ class EvaluationItem(BaseModel):
28
28
 
29
29
  dataset_item_version_num: Optional[int] = None
30
30
 
31
+ files: Optional[Dict[str, str]] = None
32
+
31
33
  object: Optional[Literal["evaluation.item"]] = None
@@ -575,6 +575,9 @@ class ContributorEvaluationQuestionTaskConfiguration(BaseModel):
575
575
  queue_id: Optional[str] = None
576
576
  """The contributor annotation queue to include this task in. Defaults to `default`"""
577
577
 
578
+ required: Optional[bool] = None
579
+ """Whether the question is required to be answered"""
580
+
578
581
 
579
582
  class ContributorEvaluationQuestionTask(BaseModel):
580
583
  configuration: ContributorEvaluationQuestionTaskConfiguration
@@ -574,6 +574,9 @@ class ContributorEvaluationQuestionTaskConfiguration(TypedDict, total=False):
574
574
  queue_id: str
575
575
  """The contributor annotation queue to include this task in. Defaults to `default`"""
576
576
 
577
+ required: bool
578
+ """Whether the question is required to be answered"""
579
+
577
580
 
578
581
  class ContributorEvaluationQuestionTask(TypedDict, total=False):
579
582
  configuration: Required[ContributorEvaluationQuestionTaskConfiguration]
@@ -27,6 +27,8 @@ class File(BaseModel):
27
27
 
28
28
  size: int
29
29
 
30
+ duration_seconds: Optional[int] = None
31
+
30
32
  object: Optional[Literal["file"]] = None
31
33
 
32
34
  tags: Optional[Dict[str, builtins.object]] = None
@@ -27,6 +27,12 @@ class CategoricalQuestionConfiguration(BaseModel):
27
27
  choices: List[str]
28
28
  """Categorical answer choices (must contain at least one entry)"""
29
29
 
30
+ dropdown: Optional[bool] = None
31
+ """Whether the question is displayed as a dropdown in the UI."""
32
+
33
+ multi: Optional[bool] = None
34
+ """Whether the question allows multiple answers."""
35
+
30
36
 
31
37
  class CategoricalQuestion(BaseModel):
32
38
  id: str
@@ -37,6 +37,12 @@ class CategoricalQuestionRequestConfiguration(TypedDict, total=False):
37
37
  choices: Required[SequenceNotStr[str]]
38
38
  """Categorical answer choices (must contain at least one entry)"""
39
39
 
40
+ dropdown: bool
41
+ """Whether the question is displayed as a dropdown in the UI."""
42
+
43
+ multi: bool
44
+ """Whether the question allows multiple answers."""
45
+
40
46
 
41
47
  class RatingQuestionRequest(TypedDict, total=False):
42
48
  configuration: Required[RatingQuestionRequestConfiguration]
@@ -112,14 +112,14 @@ class TestDatasets:
112
112
  )
113
113
 
114
114
  @parametrize
115
- def test_method_update(self, client: SGPClient) -> None:
115
+ def test_method_update_overload_1(self, client: SGPClient) -> None:
116
116
  dataset = client.datasets.update(
117
117
  dataset_id="dataset_id",
118
118
  )
119
119
  assert_matches_type(Dataset, dataset, path=["response"])
120
120
 
121
121
  @parametrize
122
- def test_method_update_with_all_params(self, client: SGPClient) -> None:
122
+ def test_method_update_with_all_params_overload_1(self, client: SGPClient) -> None:
123
123
  dataset = client.datasets.update(
124
124
  dataset_id="dataset_id",
125
125
  description="description",
@@ -129,7 +129,7 @@ class TestDatasets:
129
129
  assert_matches_type(Dataset, dataset, path=["response"])
130
130
 
131
131
  @parametrize
132
- def test_raw_response_update(self, client: SGPClient) -> None:
132
+ def test_raw_response_update_overload_1(self, client: SGPClient) -> None:
133
133
  response = client.datasets.with_raw_response.update(
134
134
  dataset_id="dataset_id",
135
135
  )
@@ -140,7 +140,7 @@ class TestDatasets:
140
140
  assert_matches_type(Dataset, dataset, path=["response"])
141
141
 
142
142
  @parametrize
143
- def test_streaming_response_update(self, client: SGPClient) -> None:
143
+ def test_streaming_response_update_overload_1(self, client: SGPClient) -> None:
144
144
  with client.datasets.with_streaming_response.update(
145
145
  dataset_id="dataset_id",
146
146
  ) as response:
@@ -153,12 +153,54 @@ class TestDatasets:
153
153
  assert cast(Any, response.is_closed) is True
154
154
 
155
155
  @parametrize
156
- def test_path_params_update(self, client: SGPClient) -> None:
156
+ def test_path_params_update_overload_1(self, client: SGPClient) -> None:
157
157
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `dataset_id` but received ''"):
158
158
  client.datasets.with_raw_response.update(
159
159
  dataset_id="",
160
160
  )
161
161
 
162
+ @parametrize
163
+ def test_method_update_overload_2(self, client: SGPClient) -> None:
164
+ dataset = client.datasets.update(
165
+ dataset_id="dataset_id",
166
+ restore=True,
167
+ )
168
+ assert_matches_type(Dataset, dataset, path=["response"])
169
+
170
+ @parametrize
171
+ def test_raw_response_update_overload_2(self, client: SGPClient) -> None:
172
+ response = client.datasets.with_raw_response.update(
173
+ dataset_id="dataset_id",
174
+ restore=True,
175
+ )
176
+
177
+ assert response.is_closed is True
178
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
179
+ dataset = response.parse()
180
+ assert_matches_type(Dataset, dataset, path=["response"])
181
+
182
+ @parametrize
183
+ def test_streaming_response_update_overload_2(self, client: SGPClient) -> None:
184
+ with client.datasets.with_streaming_response.update(
185
+ dataset_id="dataset_id",
186
+ restore=True,
187
+ ) as response:
188
+ assert not response.is_closed
189
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
190
+
191
+ dataset = response.parse()
192
+ assert_matches_type(Dataset, dataset, path=["response"])
193
+
194
+ assert cast(Any, response.is_closed) is True
195
+
196
+ @parametrize
197
+ def test_path_params_update_overload_2(self, client: SGPClient) -> None:
198
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `dataset_id` but received ''"):
199
+ client.datasets.with_raw_response.update(
200
+ dataset_id="",
201
+ restore=True,
202
+ )
203
+
162
204
  @parametrize
163
205
  def test_method_list(self, client: SGPClient) -> None:
164
206
  dataset = client.datasets.list()
@@ -332,14 +374,14 @@ class TestAsyncDatasets:
332
374
  )
333
375
 
334
376
  @parametrize
335
- async def test_method_update(self, async_client: AsyncSGPClient) -> None:
377
+ async def test_method_update_overload_1(self, async_client: AsyncSGPClient) -> None:
336
378
  dataset = await async_client.datasets.update(
337
379
  dataset_id="dataset_id",
338
380
  )
339
381
  assert_matches_type(Dataset, dataset, path=["response"])
340
382
 
341
383
  @parametrize
342
- async def test_method_update_with_all_params(self, async_client: AsyncSGPClient) -> None:
384
+ async def test_method_update_with_all_params_overload_1(self, async_client: AsyncSGPClient) -> None:
343
385
  dataset = await async_client.datasets.update(
344
386
  dataset_id="dataset_id",
345
387
  description="description",
@@ -349,9 +391,49 @@ class TestAsyncDatasets:
349
391
  assert_matches_type(Dataset, dataset, path=["response"])
350
392
 
351
393
  @parametrize
352
- async def test_raw_response_update(self, async_client: AsyncSGPClient) -> None:
394
+ async def test_raw_response_update_overload_1(self, async_client: AsyncSGPClient) -> None:
395
+ response = await async_client.datasets.with_raw_response.update(
396
+ dataset_id="dataset_id",
397
+ )
398
+
399
+ assert response.is_closed is True
400
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
401
+ dataset = await response.parse()
402
+ assert_matches_type(Dataset, dataset, path=["response"])
403
+
404
+ @parametrize
405
+ async def test_streaming_response_update_overload_1(self, async_client: AsyncSGPClient) -> None:
406
+ async with async_client.datasets.with_streaming_response.update(
407
+ dataset_id="dataset_id",
408
+ ) as response:
409
+ assert not response.is_closed
410
+ assert response.http_request.headers.get("X-Stainless-Lang") == "python"
411
+
412
+ dataset = await response.parse()
413
+ assert_matches_type(Dataset, dataset, path=["response"])
414
+
415
+ assert cast(Any, response.is_closed) is True
416
+
417
+ @parametrize
418
+ async def test_path_params_update_overload_1(self, async_client: AsyncSGPClient) -> None:
419
+ with pytest.raises(ValueError, match=r"Expected a non-empty value for `dataset_id` but received ''"):
420
+ await async_client.datasets.with_raw_response.update(
421
+ dataset_id="",
422
+ )
423
+
424
+ @parametrize
425
+ async def test_method_update_overload_2(self, async_client: AsyncSGPClient) -> None:
426
+ dataset = await async_client.datasets.update(
427
+ dataset_id="dataset_id",
428
+ restore=True,
429
+ )
430
+ assert_matches_type(Dataset, dataset, path=["response"])
431
+
432
+ @parametrize
433
+ async def test_raw_response_update_overload_2(self, async_client: AsyncSGPClient) -> None:
353
434
  response = await async_client.datasets.with_raw_response.update(
354
435
  dataset_id="dataset_id",
436
+ restore=True,
355
437
  )
356
438
 
357
439
  assert response.is_closed is True
@@ -360,9 +442,10 @@ class TestAsyncDatasets:
360
442
  assert_matches_type(Dataset, dataset, path=["response"])
361
443
 
362
444
  @parametrize
363
- async def test_streaming_response_update(self, async_client: AsyncSGPClient) -> None:
445
+ async def test_streaming_response_update_overload_2(self, async_client: AsyncSGPClient) -> None:
364
446
  async with async_client.datasets.with_streaming_response.update(
365
447
  dataset_id="dataset_id",
448
+ restore=True,
366
449
  ) as response:
367
450
  assert not response.is_closed
368
451
  assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -373,10 +456,11 @@ class TestAsyncDatasets:
373
456
  assert cast(Any, response.is_closed) is True
374
457
 
375
458
  @parametrize
376
- async def test_path_params_update(self, async_client: AsyncSGPClient) -> None:
459
+ async def test_path_params_update_overload_2(self, async_client: AsyncSGPClient) -> None:
377
460
  with pytest.raises(ValueError, match=r"Expected a non-empty value for `dataset_id` but received ''"):
378
461
  await async_client.datasets.with_raw_response.update(
379
462
  dataset_id="",
463
+ restore=True,
380
464
  )
381
465
 
382
466
  @parametrize
@@ -30,7 +30,11 @@ class TestQuestions:
30
30
  @parametrize
31
31
  def test_method_create_with_all_params_overload_1(self, client: SGPClient) -> None:
32
32
  question = client.questions.create(
33
- configuration={"choices": ["string"]},
33
+ configuration={
34
+ "choices": ["string"],
35
+ "dropdown": True,
36
+ "multi": True,
37
+ },
34
38
  name="name",
35
39
  prompt="prompt",
36
40
  question_type="categorical",
@@ -360,7 +364,11 @@ class TestAsyncQuestions:
360
364
  @parametrize
361
365
  async def test_method_create_with_all_params_overload_1(self, async_client: AsyncSGPClient) -> None:
362
366
  question = await async_client.questions.create(
363
- configuration={"choices": ["string"]},
367
+ configuration={
368
+ "choices": ["string"],
369
+ "dropdown": True,
370
+ "multi": True,
371
+ },
364
372
  name="name",
365
373
  prompt="prompt",
366
374
  question_type="categorical",