scale-gp-beta 0.1.0a20__tar.gz → 0.1.0a21__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 (177) hide show
  1. scale_gp_beta-0.1.0a21/.release-please-manifest.json +3 -0
  2. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/CHANGELOG.md +13 -0
  3. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/PKG-INFO +1 -1
  4. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/pyproject.toml +1 -1
  5. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_base_client.py +16 -2
  6. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_version.py +1 -1
  7. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/span.py +8 -2
  8. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/trace.py +22 -0
  9. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/tracing.py +12 -1
  10. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/lib/test_trace_exporter.py +1 -1
  11. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/lib/test_tracing.py +15 -2
  12. scale_gp_beta-0.1.0a20/.release-please-manifest.json +0 -3
  13. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/.gitignore +0 -0
  14. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/CONTRIBUTING.md +0 -0
  15. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/LICENSE +0 -0
  16. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/README.md +0 -0
  17. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/SECURITY.md +0 -0
  18. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/api.md +0 -0
  19. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/bin/check-release-environment +0 -0
  20. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/bin/publish-pypi +0 -0
  21. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/examples/.keep +0 -0
  22. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/examples/tracing/0_primitives_fibonacci.py +0 -0
  23. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/examples/tracing/1_explicit_use_case.py +0 -0
  24. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/examples/tracing/2_direct_upload.py +0 -0
  25. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/mypy.ini +0 -0
  26. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/noxfile.py +0 -0
  27. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/release-please-config.json +0 -0
  28. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/requirements-dev.lock +0 -0
  29. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/requirements.lock +0 -0
  30. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp/lib/.keep +0 -0
  31. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/__init__.py +0 -0
  32. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_client.py +0 -0
  33. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_compat.py +0 -0
  34. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_constants.py +0 -0
  35. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_exceptions.py +0 -0
  36. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_files.py +0 -0
  37. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_models.py +0 -0
  38. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_qs.py +0 -0
  39. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_resource.py +0 -0
  40. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_response.py +0 -0
  41. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_streaming.py +0 -0
  42. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_types.py +0 -0
  43. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/__init__.py +0 -0
  44. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_logs.py +0 -0
  45. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_proxy.py +0 -0
  46. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_reflection.py +0 -0
  47. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_resources_proxy.py +0 -0
  48. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_streams.py +0 -0
  49. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_sync.py +0 -0
  50. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_transform.py +0 -0
  51. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_typing.py +0 -0
  52. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/_utils/_utils.py +0 -0
  53. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/.keep +0 -0
  54. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/__init__.py +0 -0
  55. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/exceptions.py +0 -0
  56. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/scope.py +0 -0
  57. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/trace_exporter.py +0 -0
  58. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/trace_queue_manager.py +0 -0
  59. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/types.py +0 -0
  60. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/lib/tracing/util.py +0 -0
  61. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/pagination.py +0 -0
  62. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/py.typed +0 -0
  63. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/__init__.py +0 -0
  64. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/chat/__init__.py +0 -0
  65. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/chat/chat.py +0 -0
  66. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/chat/completions.py +0 -0
  67. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/completions.py +0 -0
  68. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/dataset_items.py +0 -0
  69. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/datasets.py +0 -0
  70. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/evaluation_items.py +0 -0
  71. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/evaluations.py +0 -0
  72. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/files/__init__.py +0 -0
  73. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/files/content.py +0 -0
  74. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/files/files.py +0 -0
  75. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/inference.py +0 -0
  76. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/models.py +0 -0
  77. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/resources/spans.py +0 -0
  78. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/__init__.py +0 -0
  79. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/__init__.py +0 -0
  80. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/chat_completion.py +0 -0
  81. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/chat_completion_chunk.py +0 -0
  82. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/completion_create_params.py +0 -0
  83. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/completion_create_response.py +0 -0
  84. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/completion_models_params.py +0 -0
  85. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/completion_models_response.py +0 -0
  86. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/chat/model_definition.py +0 -0
  87. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/completion.py +0 -0
  88. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/completion_create_params.py +0 -0
  89. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/component.py +0 -0
  90. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/component_param.py +0 -0
  91. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/container.py +0 -0
  92. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/container_param.py +0 -0
  93. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset.py +0 -0
  94. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_create_params.py +0 -0
  95. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_delete_response.py +0 -0
  96. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_item.py +0 -0
  97. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_item_batch_create_params.py +0 -0
  98. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_item_batch_create_response.py +0 -0
  99. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_item_delete_response.py +0 -0
  100. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_item_list_params.py +0 -0
  101. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_item_retrieve_params.py +0 -0
  102. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_item_update_params.py +0 -0
  103. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_list_params.py +0 -0
  104. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_retrieve_params.py +0 -0
  105. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/dataset_update_params.py +0 -0
  106. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation.py +0 -0
  107. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_create_params.py +0 -0
  108. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_delete_response.py +0 -0
  109. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_item.py +0 -0
  110. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_item_list_params.py +0 -0
  111. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_item_retrieve_params.py +0 -0
  112. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_list_params.py +0 -0
  113. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_retrieve_params.py +0 -0
  114. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_task.py +0 -0
  115. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_task_param.py +0 -0
  116. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/evaluation_update_params.py +0 -0
  117. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/file.py +0 -0
  118. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/file_create_params.py +0 -0
  119. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/file_delete_response.py +0 -0
  120. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/file_list.py +0 -0
  121. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/file_list_params.py +0 -0
  122. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/file_update_params.py +0 -0
  123. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/files/__init__.py +0 -0
  124. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/inference_create_params.py +0 -0
  125. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/inference_create_response.py +0 -0
  126. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/inference_model.py +0 -0
  127. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/inference_model_list.py +0 -0
  128. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/inference_response.py +0 -0
  129. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/inference_response_chunk.py +0 -0
  130. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/item_locator.py +0 -0
  131. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/item_locator_template.py +0 -0
  132. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/model_create_params.py +0 -0
  133. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/model_delete_response.py +0 -0
  134. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/model_list_params.py +0 -0
  135. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/model_update_params.py +0 -0
  136. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span.py +0 -0
  137. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_batch_params.py +0 -0
  138. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_batch_response.py +0 -0
  139. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_create_params.py +0 -0
  140. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_search_params.py +0 -0
  141. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_search_response.py +0 -0
  142. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_update_params.py +0 -0
  143. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_upsert_batch_params.py +0 -0
  144. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/scale_gp_beta/types/span_upsert_batch_response.py +0 -0
  145. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/src/sgp_dev/lib/.keep +0 -0
  146. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/__init__.py +0 -0
  147. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/__init__.py +0 -0
  148. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/chat/__init__.py +0 -0
  149. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/chat/test_completions.py +0 -0
  150. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/files/__init__.py +0 -0
  151. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/files/test_content.py +0 -0
  152. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_completions.py +0 -0
  153. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_dataset_items.py +0 -0
  154. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_datasets.py +0 -0
  155. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_evaluation_items.py +0 -0
  156. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_evaluations.py +0 -0
  157. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_files.py +0 -0
  158. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_inference.py +0 -0
  159. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_models.py +0 -0
  160. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/api_resources/test_spans.py +0 -0
  161. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/conftest.py +0 -0
  162. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/lib/test_span.py +0 -0
  163. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/lib/test_trace.py +0 -0
  164. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/sample_file.txt +0 -0
  165. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_client.py +0 -0
  166. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_deepcopy.py +0 -0
  167. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_extract_files.py +0 -0
  168. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_files.py +0 -0
  169. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_models.py +0 -0
  170. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_qs.py +0 -0
  171. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_required_args.py +0 -0
  172. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_response.py +0 -0
  173. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_streaming.py +0 -0
  174. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_transform.py +0 -0
  175. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_utils/test_proxy.py +0 -0
  176. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/test_utils/test_typing.py +0 -0
  177. {scale_gp_beta-0.1.0a20 → scale_gp_beta-0.1.0a21}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.21"
3
+ }
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.21 (2025-06-13)
4
+
5
+ Full Changelog: [v0.1.0-alpha.20...v0.1.0-alpha.21](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.20...v0.1.0-alpha.21)
6
+
7
+ ### Features
8
+
9
+ * Group id support ([#110](https://github.com/scaleapi/sgp-python-beta/issues/110)) ([d934d91](https://github.com/scaleapi/sgp-python-beta/commit/d934d9136db1210e934e2c34b754200678ea60ca))
10
+
11
+
12
+ ### Bug Fixes
13
+
14
+ * **client:** correctly parse binary response | stream ([f802181](https://github.com/scaleapi/sgp-python-beta/commit/f80218120e7f6780461ee0eac836139241532421))
15
+
3
16
  ## 0.1.0-alpha.20 (2025-06-12)
4
17
 
5
18
  Full Changelog: [v0.1.0-alpha.19...v0.1.0-alpha.20](https://github.com/scaleapi/sgp-python-beta/compare/v0.1.0-alpha.19...v0.1.0-alpha.20)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: scale-gp-beta
3
- Version: 0.1.0a20
3
+ Version: 0.1.0a21
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "scale-gp-beta"
3
- version = "0.1.0-alpha.20"
3
+ version = "0.1.0-alpha.21"
4
4
  description = "The official Python library for the Scale GP API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1071,7 +1071,14 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1071
1071
  ) -> ResponseT:
1072
1072
  origin = get_origin(cast_to) or cast_to
1073
1073
 
1074
- if inspect.isclass(origin) and issubclass(origin, BaseAPIResponse):
1074
+ if (
1075
+ inspect.isclass(origin)
1076
+ and issubclass(origin, BaseAPIResponse)
1077
+ # we only want to actually return the custom BaseAPIResponse class if we're
1078
+ # returning the raw response, or if we're not streaming SSE, as if we're streaming
1079
+ # SSE then `cast_to` doesn't actively reflect the type we need to parse into
1080
+ and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
1081
+ ):
1075
1082
  if not issubclass(origin, APIResponse):
1076
1083
  raise TypeError(f"API Response types must subclass {APIResponse}; Received {origin}")
1077
1084
 
@@ -1574,7 +1581,14 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1574
1581
  ) -> ResponseT:
1575
1582
  origin = get_origin(cast_to) or cast_to
1576
1583
 
1577
- if inspect.isclass(origin) and issubclass(origin, BaseAPIResponse):
1584
+ if (
1585
+ inspect.isclass(origin)
1586
+ and issubclass(origin, BaseAPIResponse)
1587
+ # we only want to actually return the custom BaseAPIResponse class if we're
1588
+ # returning the raw response, or if we're not streaming SSE, as if we're streaming
1589
+ # SSE then `cast_to` doesn't actively reflect the type we need to parse into
1590
+ and (not stream or bool(response.request.headers.get(RAW_RESPONSE_HEADER)))
1591
+ ):
1578
1592
  if not issubclass(origin, AsyncAPIResponse):
1579
1593
  raise TypeError(f"API Response types must subclass {AsyncAPIResponse}; Received {origin}")
1580
1594
 
@@ -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.20" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.21" # x-release-please-version
@@ -53,6 +53,7 @@ class BaseSpan:
53
53
  queue_manager: Optional[TraceQueueManager] = None,
54
54
  span_id: Optional[str] = None,
55
55
  parent_span_id: Optional[str] = None,
56
+ group_id: Optional[str] = None,
56
57
  input: Optional[SpanInputParam] = None,
57
58
  output: Optional[SpanOutputParam] = None,
58
59
  metadata: Optional[SpanMetadataParam] = None,
@@ -60,6 +61,7 @@ class BaseSpan:
60
61
  ):
61
62
  self.name = name
62
63
  self.trace_id = trace_id or "no_trace_id"
64
+ self.group_id = group_id
63
65
  self.span_id: str = span_id or generate_span_id()
64
66
  self.parent_span_id = parent_span_id
65
67
  self.start_time: Optional[str] = None
@@ -124,6 +126,9 @@ class BaseSpan:
124
126
  if self.parent_span_id is not None:
125
127
  request_data["parent_id"] = self.parent_span_id
126
128
 
129
+ if self.group_id is not None:
130
+ request_data["group_id"] = self.group_id
131
+
127
132
  return request_data
128
133
 
129
134
  @override
@@ -134,6 +139,7 @@ class BaseSpan:
134
139
  f"span_id='{self.span_id}', "
135
140
  f"trace_id='{self.trace_id}', "
136
141
  f"parent_span_id='{self.parent_span_id}', "
142
+ f"group_id='{self.group_id}', "
137
143
  f"start_time='{self.start_time}', "
138
144
  f"end_time='{self.end_time}', "
139
145
  f"input='{self.input}', "
@@ -189,12 +195,13 @@ class Span(BaseSpan):
189
195
  queue_manager: TraceQueueManager,
190
196
  span_id: Optional[str] = None,
191
197
  parent_span_id: Optional[str] = None,
198
+ group_id: Optional[str] = None,
192
199
  input: Optional[SpanInputParam] = None,
193
200
  output: Optional[SpanOutputParam] = None,
194
201
  metadata: Optional[SpanMetadataParam] = None,
195
202
  span_type: SpanTypeLiterals = "STANDALONE",
196
203
  ):
197
- super().__init__(name, trace_id, queue_manager, span_id, parent_span_id, input, output, metadata, span_type)
204
+ super().__init__(name, trace_id, queue_manager, span_id, parent_span_id, group_id, input, output, metadata, span_type)
198
205
  self._queue_manager: TraceQueueManager = queue_manager
199
206
  self.trace_id: str = trace_id
200
207
 
@@ -206,7 +213,6 @@ class Span(BaseSpan):
206
213
  The background worker batches and sends asynchronously.
207
214
  :param blocking:
208
215
  """
209
- # TODO: implement flush() for trace
210
216
  if blocking:
211
217
  self._queue_manager.export_now(self)
212
218
  else:
@@ -27,6 +27,12 @@ class BaseTrace:
27
27
  def end(self) -> None:
28
28
  pass
29
29
 
30
+ def flush(self, blocking: bool = True) -> None:
31
+ pass
32
+
33
+ def group_id(self) -> Optional[str]:
34
+ return None
35
+
30
36
  def __enter__(self) -> "BaseTrace":
31
37
  self.start()
32
38
  return self
@@ -55,6 +61,7 @@ class NoOpTrace(BaseTrace):
55
61
  queue_manager: Optional[TraceQueueManager] = None,
56
62
  trace_id: Optional[str] = None,
57
63
  span_id: Optional[str] = None,
64
+ group_id: Optional[str] = None,
58
65
  span_type: SpanTypeLiterals = "TRACER",
59
66
  input: Optional[SpanInputParam] = None,
60
67
  output: Optional[SpanOutputParam] = None,
@@ -66,6 +73,7 @@ class NoOpTrace(BaseTrace):
66
73
  name=name,
67
74
  span_id=span_id,
68
75
  trace_id=self.trace_id,
76
+ group_id=group_id,
69
77
  queue_manager=queue_manager,
70
78
  metadata=metadata,
71
79
  span_type=span_type,
@@ -90,6 +98,10 @@ class NoOpTrace(BaseTrace):
90
98
  def end(self) -> None:
91
99
  self.root_span.end()
92
100
 
101
+ @override
102
+ def group_id(self) -> Optional[str]:
103
+ return self.root_span.group_id
104
+
93
105
 
94
106
  class Trace(BaseTrace):
95
107
  def __init__(
@@ -98,6 +110,7 @@ class Trace(BaseTrace):
98
110
  queue_manager: TraceQueueManager,
99
111
  trace_id: Optional[str] = None,
100
112
  span_id: Optional[str] = None,
113
+ group_id: Optional[str] = None,
101
114
  span_type: SpanTypeLiterals = "TRACER",
102
115
  input: Optional[SpanInputParam] = None,
103
116
  output: Optional[SpanOutputParam] = None,
@@ -110,6 +123,7 @@ class Trace(BaseTrace):
110
123
  name=name,
111
124
  span_id=span_id,
112
125
  trace_id=self.trace_id,
126
+ group_id=group_id,
113
127
  queue_manager=queue_manager,
114
128
  metadata=metadata,
115
129
  span_type=span_type,
@@ -145,6 +159,14 @@ class Trace(BaseTrace):
145
159
 
146
160
  self.root_span.end()
147
161
 
162
+ @override
163
+ def flush(self, blocking: bool = True) -> None:
164
+ self.root_span.flush(blocking=blocking)
165
+
166
+ @override
167
+ def group_id(self) -> Optional[str]:
168
+ return self.root_span.group_id
169
+
148
170
  @override
149
171
  def __repr__(self) -> str:
150
172
  return (
@@ -57,6 +57,7 @@ def create_trace(
57
57
  metadata: Optional[SpanMetadataParam] = None,
58
58
  span_id: Optional[str] = None,
59
59
  trace_id: Optional[str] = None,
60
+ group_id: Optional[str] = None,
60
61
  ) -> BaseTrace:
61
62
  """Creates a new trace and root span instance.
62
63
 
@@ -81,6 +82,7 @@ def create_trace(
81
82
  trace_id (Optional[str]): An optional, user-defined ID for the trace.
82
83
  If None, a unique trace ID will be generated.
83
84
  Max length is 38 characters.
85
+ group_id (Optional[str]): An optional, id to group traces.
84
86
 
85
87
  Returns:
86
88
  BaseTrace: A `Trace` instance if tracing is enabled, or a `NoOpTrace`
@@ -96,6 +98,7 @@ def create_trace(
96
98
  name=name,
97
99
  trace_id=trace_id,
98
100
  span_id=span_id,
101
+ group_id=group_id,
99
102
  span_type=span_type,
100
103
  input=impl_input,
101
104
  output=impl_output,
@@ -111,6 +114,7 @@ def create_trace(
111
114
  name=name,
112
115
  trace_id=trace_id,
113
116
  span_id=span_id,
117
+ group_id=group_id,
114
118
  queue_manager=queue_manager,
115
119
  span_type=span_type,
116
120
  input=impl_input,
@@ -131,6 +135,7 @@ def create_span(
131
135
  span_id: Optional[str] = None,
132
136
  parent_id: Optional[str] = None,
133
137
  trace_id: Optional[str] = None,
138
+ group_id: Optional[str] = None,
134
139
  ) -> BaseSpan:
135
140
  """Creates a new span instance.
136
141
 
@@ -164,7 +169,8 @@ def create_span(
164
169
  parent_id (Optional[str], optional): A `Span` id. Used for explicit control.
165
170
  Defaults to span id fetched from the active scope.
166
171
  trace_id (Optional[str], optional): A `Trace` id. Used for explicit control.
167
- Default to trace id fetched from the active scope.
172
+ Default to trace id fetched from the active scope.
173
+ group_id (Optional[str]): An optional, id to group traces.
168
174
 
169
175
  Returns:
170
176
  BaseSpan: A `Span` instance if tracing is enabled and a valid trace context
@@ -176,12 +182,15 @@ def create_span(
176
182
 
177
183
  scoped_trace = current_trace()
178
184
  scoped_trace_id = scoped_trace.trace_id if scoped_trace else None
185
+ scoped_group_id = scoped_trace.group_id() if scoped_trace else None
179
186
  scoped_span = current_span()
180
187
  scoped_span_id = scoped_span.span_id if scoped_span else None
181
188
 
182
189
  parent_span_id: Optional[str] = parent_id or scoped_span_id
183
190
  # TODO: preference should be trace_id -> trace_id from parent span if parent_id present -> scoped_trace_id
191
+ # group_id -> group_id from trace if trace_id specified -> group_id from span if span_id -> scoped_group_id
184
192
  impl_trace_id: Optional[str] = trace_id or scoped_trace_id
193
+ impl_group_id: Optional[str] = group_id or scoped_group_id
185
194
 
186
195
  # TODO: do a check to ensure trace_id of parent_span matches trace_id (when trace_id is specified)
187
196
 
@@ -190,6 +199,7 @@ def create_span(
190
199
  span_id=span_id,
191
200
  parent_span_id=parent_span_id,
192
201
  trace_id=impl_trace_id,
202
+ group_id=impl_group_id,
193
203
  input=impl_input,
194
204
  output=impl_output,
195
205
  metadata=impl_metadata,
@@ -209,6 +219,7 @@ def create_span(
209
219
  span_id=span_id,
210
220
  parent_span_id=parent_span_id,
211
221
  trace_id=impl_trace_id,
222
+ group_id=impl_group_id,
212
223
  input=impl_input,
213
224
  output=impl_output,
214
225
  metadata=impl_metadata,
@@ -14,7 +14,7 @@ from scale_gp_beta.types.span_upsert_batch_params import Item as SpanCreateReque
14
14
 
15
15
 
16
16
  def create_test_span_request(id_str: str) -> SpanCreateRequest:
17
- return SpanCreateRequest(name=id_str, id=id_str, trace_id= "trace-id", start_timestamp="start")
17
+ return SpanCreateRequest(name=id_str, id=id_str, trace_id= "trace-id", group_id="group-id", start_timestamp="start")
18
18
 
19
19
 
20
20
  @pytest.fixture
@@ -19,6 +19,7 @@ def mock_queue_manager_instance() -> Mock:
19
19
  def mock_active_trace_instance() -> Mock:
20
20
  trace_mock = Mock(spec=Trace)
21
21
  trace_mock.trace_id = "active-trace-id"
22
+ trace_mock.group_id.return_value = "active-group-id"
22
23
  return trace_mock
23
24
 
24
25
  @pytest.fixture
@@ -66,6 +67,7 @@ class TestCreateTrace:
66
67
  name=trace_name_arg,
67
68
  trace_id=trace_id_arg,
68
69
  span_id=None,
70
+ group_id=None,
69
71
  span_type="TRACER",
70
72
  metadata={},
71
73
  input={},
@@ -100,6 +102,7 @@ class TestCreateTrace:
100
102
  name=trace_name_arg,
101
103
  trace_id=trace_id_arg,
102
104
  span_id=None,
105
+ group_id=None,
103
106
  queue_manager=mock_queue_manager_instance,
104
107
  span_type="TRACER",
105
108
  metadata={},
@@ -163,6 +166,7 @@ class TestCreateSpan:
163
166
  name=span_name,
164
167
  span_id=span_id_arg,
165
168
  parent_span_id=None,
169
+ group_id=None,
166
170
  trace_id=mock_parent_trace.trace_id,
167
171
  input={}, output={}, metadata={},
168
172
  span_type="STANDALONE"
@@ -183,9 +187,10 @@ class TestCreateSpan:
183
187
  mock_noop_span_instance = mock_noop_span_init.return_value
184
188
  span_name = "orphaned_span"
185
189
  span_id_arg = "custom-span-id-orphaned"
190
+ group_id_arg = "custom-group-id-orphaned"
186
191
 
187
192
  with caplog.at_level(logging.DEBUG):
188
- span = create_span(name=span_name, span_id=span_id_arg)
193
+ span = create_span(name=span_name, span_id=span_id_arg, group_id=group_id_arg)
189
194
 
190
195
  assert span == mock_noop_span_instance
191
196
  mock_get_current_trace.assert_called_once_with()
@@ -193,6 +198,7 @@ class TestCreateSpan:
193
198
  name=span_name,
194
199
  span_id=span_id_arg,
195
200
  parent_span_id=None,
201
+ group_id=group_id_arg,
196
202
  trace_id=None,
197
203
  input={}, output={}, metadata={},
198
204
  span_type="STANDALONE"
@@ -220,6 +226,7 @@ class TestCreateSpan:
220
226
 
221
227
  mock_parent_trace = Mock(spec=Trace)
222
228
  mock_parent_trace.trace_id = "explicit-parent-trace-id"
229
+ mock_parent_trace.group_id = "explicit-parent-group-id"
223
230
  span_name = "span_with_trace_parent"
224
231
  span_id_arg = "custom-id-trace-parent"
225
232
  input_arg = {"input_key": "input_val"}
@@ -232,6 +239,7 @@ class TestCreateSpan:
232
239
  name=span_name,
233
240
  span_id=span_id_arg,
234
241
  trace_id=mock_parent_trace.trace_id,
242
+ group_id=mock_parent_trace.group_id,
235
243
  input=input_arg,
236
244
  output=output_arg,
237
245
  metadata=metadata_arg
@@ -243,6 +251,7 @@ class TestCreateSpan:
243
251
  name=span_name,
244
252
  span_id=span_id_arg,
245
253
  parent_span_id=mock_active_span_instance.span_id,
254
+ group_id=mock_parent_trace.group_id,
246
255
  trace_id=mock_parent_trace.trace_id,
247
256
  input=input_arg,
248
257
  output=output_arg,
@@ -268,11 +277,12 @@ class TestCreateSpan:
268
277
  mock_tqm_func.return_value = mock_queue_manager_instance
269
278
 
270
279
  mock_parent_s = Mock(spec=Span)
280
+ mock_parent_s.group_id = "explicit-parent-group-id"
271
281
  mock_parent_s.trace_id = "parent-span-trace-id"
272
282
  mock_parent_s.span_id = "parent-span-actual-id"
273
283
  span_name = "span_with_span_parent"
274
284
 
275
- create_span(name=span_name, parent_id=mock_parent_s.span_id)
285
+ create_span(name=span_name, parent_id=mock_parent_s.span_id, group_id=mock_parent_s.group_id)
276
286
 
277
287
  # NOTE: this will grab the trace_id from current context and not mock_parent_s.trace_id
278
288
  mock_span_init.assert_called_once_with(
@@ -280,6 +290,7 @@ class TestCreateSpan:
280
290
  span_id=None,
281
291
  parent_span_id=mock_parent_s.span_id,
282
292
  trace_id=mock_parent_s.trace_id,
293
+ group_id=mock_parent_s.group_id,
283
294
  input={}, output={}, metadata={},
284
295
  queue_manager=mock_queue_manager_instance,
285
296
  span_type="STANDALONE"
@@ -310,6 +321,7 @@ class TestCreateSpan:
310
321
  name="span_uses_scope_trace",
311
322
  span_id=None,
312
323
  parent_span_id=None,
324
+ group_id=mock_active_trace_instance.group_id(),
313
325
  trace_id=mock_active_trace_instance.trace_id,
314
326
  input={}, output={}, metadata={},
315
327
  queue_manager=mock_queue_manager_instance,
@@ -343,6 +355,7 @@ class TestCreateSpan:
343
355
  span_id=None,
344
356
  parent_span_id=mock_active_span_instance.span_id,
345
357
  trace_id=mock_active_trace_instance.trace_id,
358
+ group_id=mock_active_trace_instance.group_id(),
346
359
  input={}, output={}, metadata={},
347
360
  queue_manager=mock_queue_manager_instance,
348
361
  span_type="STANDALONE"
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.1.0-alpha.20"
3
- }