scale-gp-beta 0.1.0a38__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.
- scale_gp_beta-0.1.0a39/.release-please-manifest.json +3 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/CHANGELOG.md +13 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/PKG-INFO +2 -1
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/pyproject.toml +2 -1
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_version.py +1 -1
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/utils.py +3 -1
- scale_gp_beta-0.1.0a39/tests/lib/tracing/integrations/__init__.py +0 -0
- scale_gp_beta-0.1.0a39/tests/lib/tracing/integrations/openai/__init__.py +0 -0
- scale_gp_beta-0.1.0a39/tests/lib/tracing/integrations/openai/test_utils.py +248 -0
- scale_gp_beta-0.1.0a38/.release-please-manifest.json +0 -3
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/.gitignore +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/CONTRIBUTING.md +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/LICENSE +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/README.md +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/SECURITY.md +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/api.md +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/bin/check-release-environment +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/bin/publish-pypi +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/examples/.keep +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/examples/tracing/0_primitives_fibonacci.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/examples/tracing/1_explicit_use_case.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/examples/tracing/2_direct_upload.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/examples/tracing/3_openai_agent_tracing.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/noxfile.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/release-please-config.json +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/requirements-dev.lock +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/requirements.lock +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp/lib/.keep +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_base_client.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_client.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_compat.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_constants.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_exceptions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_files.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_models.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_qs.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_resource.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_streaming.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_types.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_compat.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_datetime_parse.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_logs.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_proxy.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_reflection.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_resources_proxy.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_streams.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_sync.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_transform.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_typing.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_utils.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/.keep +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/CONTRIBUTING.MD +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/exceptions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/openai_span_type_map.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/integrations/openai/openai_tracing_sgp_processor.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/scope.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/span.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/trace.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/trace_exporter.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/trace_queue_manager.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/tracing.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/types.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/util.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/pagination.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/py.typed +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/chat.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/completions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/completions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/credentials.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/dataset_items.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/datasets.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/evaluation_items.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/evaluations.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/content.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/files.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/inference.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/models.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/questions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/responses.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/span_assessments.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/spans.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/approval_status.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/assessment_type.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/chat_completion.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/chat_completion_chunk.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_create_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_models_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/completion_models_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/model_definition.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/completion.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/completion_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/component.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/component_param.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/container.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/container_param.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_secret.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_batch_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_batch_create_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_retrieve_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_item_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_retrieve_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_item.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_item_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_item_retrieve_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_retrieve_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_task.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_task_param.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/evaluation_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_import_from_cloud_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_import_from_cloud_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/file_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/files/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_create_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_model.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/inference_response_chunk.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/item_locator.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/item_locator_template.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/model_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/question.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/question_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/question_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/response_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/response_create_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/shared/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/shared/identity.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_delete_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_list_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_assessment_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_batch_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_batch_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_create_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_search_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_status.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_type.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_update_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_upsert_batch_params.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/span_upsert_batch_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/sgp_dev/lib/.keep +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/chat/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/chat/test_completions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/files/__init__.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/files/test_content.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_completions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_credentials.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_dataset_items.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_datasets.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_evaluation_items.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_evaluations.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_files.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_inference.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_models.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_questions.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_responses.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_span_assessments.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/api_resources/test_spans.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/conftest.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_span.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_trace.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_trace_exporter.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_trace_queue_manager.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/lib/tracing/test_tracing.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/sample_file.txt +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_client.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_deepcopy.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_extract_files.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_files.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_models.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_qs.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_required_args.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_response.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_streaming.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_transform.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_utils/test_datetime_parse.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_utils/test_proxy.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/test_utils/test_typing.py +0 -0
- {scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/tests/utils.py +0 -0
|
@@ -1,5 +1,18 @@
|
|
|
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
|
+
|
|
3
16
|
## 0.1.0-alpha.38 (2025-11-21)
|
|
4
17
|
|
|
5
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)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: scale-gp-beta
|
|
3
|
-
Version: 0.1.
|
|
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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "scale-gp-beta"
|
|
3
|
-
version = "0.1.0-alpha.
|
|
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",
|
|
@@ -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
|
-
|
|
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}
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from unittest.mock import Mock, patch
|
|
3
|
+
|
|
4
|
+
from scale_gp_beta.lib.tracing.integrations.openai.utils import (
|
|
5
|
+
sgp_span_name, # pyright: ignore[reportUnknownVariableType]
|
|
6
|
+
parse_metadata, # pyright: ignore[reportUnknownVariableType]
|
|
7
|
+
parse_input_output, # pyright: ignore[reportUnknownVariableType]
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TestParseInputOutput:
|
|
12
|
+
"""Tests for parse_input_output function"""
|
|
13
|
+
|
|
14
|
+
def test_parse_dict_json_string(self):
|
|
15
|
+
"""Test parsing a JSON string that represents a dict"""
|
|
16
|
+
mock_span = Mock()
|
|
17
|
+
mock_span_data = Mock()
|
|
18
|
+
dict_value = {"key": "value", "nested": {"data": 123}}
|
|
19
|
+
mock_span_data.export.return_value = {"input": json.dumps(dict_value)}
|
|
20
|
+
mock_span.span_data = mock_span_data
|
|
21
|
+
|
|
22
|
+
result = parse_input_output(mock_span, "input")
|
|
23
|
+
|
|
24
|
+
assert result == dict_value
|
|
25
|
+
assert isinstance(result, dict)
|
|
26
|
+
|
|
27
|
+
def test_parse_list_json_string(self):
|
|
28
|
+
"""Test parsing a JSON string that represents a list - should wrap in dict"""
|
|
29
|
+
mock_span = Mock()
|
|
30
|
+
mock_span_data = Mock()
|
|
31
|
+
list_value = [1, 2, 3, "test"]
|
|
32
|
+
mock_span_data.export.return_value = {"output": json.dumps(list_value)}
|
|
33
|
+
mock_span.span_data = mock_span_data
|
|
34
|
+
|
|
35
|
+
result = parse_input_output(mock_span, "output")
|
|
36
|
+
|
|
37
|
+
assert result == {"output": list_value}
|
|
38
|
+
assert isinstance(result, dict)
|
|
39
|
+
|
|
40
|
+
def test_parse_integer_json_string(self):
|
|
41
|
+
"""Test parsing a JSON string that represents an integer - should wrap in dict"""
|
|
42
|
+
mock_span = Mock()
|
|
43
|
+
mock_span_data = Mock()
|
|
44
|
+
int_value = 42
|
|
45
|
+
mock_span_data.export.return_value = {"input": json.dumps(int_value)}
|
|
46
|
+
mock_span.span_data = mock_span_data
|
|
47
|
+
|
|
48
|
+
result = parse_input_output(mock_span, "input")
|
|
49
|
+
|
|
50
|
+
assert result == {"input": int_value}
|
|
51
|
+
assert isinstance(result, dict)
|
|
52
|
+
|
|
53
|
+
def test_parse_string_json_string(self):
|
|
54
|
+
"""Test parsing a JSON string that represents a string - should wrap in dict"""
|
|
55
|
+
mock_span = Mock()
|
|
56
|
+
mock_span_data = Mock()
|
|
57
|
+
string_value = "hello world"
|
|
58
|
+
mock_span_data.export.return_value = {"output": json.dumps(string_value)}
|
|
59
|
+
mock_span.span_data = mock_span_data
|
|
60
|
+
|
|
61
|
+
result = parse_input_output(mock_span, "output")
|
|
62
|
+
|
|
63
|
+
assert result == {"output": string_value}
|
|
64
|
+
assert isinstance(result, dict)
|
|
65
|
+
|
|
66
|
+
def test_parse_boolean_json_string(self):
|
|
67
|
+
"""Test parsing a JSON string that represents a boolean - should wrap in dict"""
|
|
68
|
+
mock_span = Mock()
|
|
69
|
+
mock_span_data = Mock()
|
|
70
|
+
bool_value = True
|
|
71
|
+
mock_span_data.export.return_value = {"input": json.dumps(bool_value)}
|
|
72
|
+
mock_span.span_data = mock_span_data
|
|
73
|
+
|
|
74
|
+
result = parse_input_output(mock_span, "input")
|
|
75
|
+
|
|
76
|
+
assert result == {"input": bool_value}
|
|
77
|
+
assert isinstance(result, dict)
|
|
78
|
+
|
|
79
|
+
def test_parse_null_json_string(self):
|
|
80
|
+
"""Test parsing a JSON string that represents null - should wrap in dict"""
|
|
81
|
+
mock_span = Mock()
|
|
82
|
+
mock_span_data = Mock()
|
|
83
|
+
mock_span_data.export.return_value = {"output": json.dumps(None)}
|
|
84
|
+
mock_span.span_data = mock_span_data
|
|
85
|
+
|
|
86
|
+
result = parse_input_output(mock_span, "output")
|
|
87
|
+
|
|
88
|
+
assert result == {"output": None}
|
|
89
|
+
assert isinstance(result, dict)
|
|
90
|
+
|
|
91
|
+
def test_parse_invalid_json_string(self):
|
|
92
|
+
"""Test parsing an invalid JSON string - should wrap in dict"""
|
|
93
|
+
mock_span = Mock()
|
|
94
|
+
mock_span_data = Mock()
|
|
95
|
+
invalid_json = "not valid json {"
|
|
96
|
+
mock_span_data.export.return_value = {"input": invalid_json}
|
|
97
|
+
mock_span.span_data = mock_span_data
|
|
98
|
+
|
|
99
|
+
result = parse_input_output(mock_span, "input")
|
|
100
|
+
|
|
101
|
+
assert result == {"input": invalid_json}
|
|
102
|
+
assert isinstance(result, dict)
|
|
103
|
+
|
|
104
|
+
def test_parse_non_string_dict_value(self):
|
|
105
|
+
"""Test when value is already a dict (not a string)"""
|
|
106
|
+
mock_span = Mock()
|
|
107
|
+
mock_span_data = Mock()
|
|
108
|
+
dict_value = {"existing": "dict"}
|
|
109
|
+
mock_span_data.export.return_value = {"output": dict_value}
|
|
110
|
+
mock_span.span_data = mock_span_data
|
|
111
|
+
|
|
112
|
+
result = parse_input_output(mock_span, "output")
|
|
113
|
+
|
|
114
|
+
assert result == {"output": dict_value}
|
|
115
|
+
assert isinstance(result, dict)
|
|
116
|
+
|
|
117
|
+
def test_parse_non_string_list_value(self):
|
|
118
|
+
"""Test when value is already a list (not a string)"""
|
|
119
|
+
mock_span = Mock()
|
|
120
|
+
mock_span_data = Mock()
|
|
121
|
+
list_value = [1, 2, 3]
|
|
122
|
+
mock_span_data.export.return_value = {"input": list_value}
|
|
123
|
+
mock_span.span_data = mock_span_data
|
|
124
|
+
|
|
125
|
+
result = parse_input_output(mock_span, "input")
|
|
126
|
+
|
|
127
|
+
assert result == {"input": list_value}
|
|
128
|
+
assert isinstance(result, dict)
|
|
129
|
+
|
|
130
|
+
def test_parse_none_value(self):
|
|
131
|
+
"""Test when the key doesn't exist in exported data"""
|
|
132
|
+
mock_span = Mock()
|
|
133
|
+
mock_span_data = Mock()
|
|
134
|
+
mock_span_data.export.return_value = {}
|
|
135
|
+
mock_span.span_data = mock_span_data
|
|
136
|
+
|
|
137
|
+
result = parse_input_output(mock_span, "nonexistent_key")
|
|
138
|
+
|
|
139
|
+
assert result == {}
|
|
140
|
+
assert isinstance(result, dict)
|
|
141
|
+
|
|
142
|
+
def test_parse_none_span_data(self):
|
|
143
|
+
"""Test when span_data is None"""
|
|
144
|
+
mock_span = Mock()
|
|
145
|
+
mock_span.span_data = None
|
|
146
|
+
|
|
147
|
+
result = parse_input_output(mock_span, "input")
|
|
148
|
+
|
|
149
|
+
assert result == {}
|
|
150
|
+
assert isinstance(result, dict)
|
|
151
|
+
|
|
152
|
+
def test_parse_complex_nested_structure(self):
|
|
153
|
+
"""Test parsing a complex nested JSON structure"""
|
|
154
|
+
mock_span = Mock()
|
|
155
|
+
mock_span_data = Mock()
|
|
156
|
+
complex_value = {
|
|
157
|
+
"messages": [
|
|
158
|
+
{"role": "user", "content": "Hello"},
|
|
159
|
+
{"role": "assistant", "content": "Hi there!"}
|
|
160
|
+
],
|
|
161
|
+
"metadata": {
|
|
162
|
+
"tokens": 150,
|
|
163
|
+
"model": "gpt-4"
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
mock_span_data.export.return_value = {"input": json.dumps(complex_value)}
|
|
167
|
+
mock_span.span_data = mock_span_data
|
|
168
|
+
|
|
169
|
+
result = parse_input_output(mock_span, "input")
|
|
170
|
+
|
|
171
|
+
assert result == complex_value
|
|
172
|
+
assert isinstance(result, dict)
|
|
173
|
+
assert len(result["messages"]) == 2
|
|
174
|
+
assert result["metadata"]["tokens"] == 150
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
class TestSgpSpanName:
|
|
178
|
+
"""Tests for sgp_span_name function"""
|
|
179
|
+
|
|
180
|
+
def test_with_valid_name(self):
|
|
181
|
+
"""Test when span_data has a name in export"""
|
|
182
|
+
mock_span = Mock()
|
|
183
|
+
mock_span_data = Mock()
|
|
184
|
+
mock_span_data.export.return_value = {"name": "TestSpan"}
|
|
185
|
+
mock_span_data.__class__.__name__ = "CustomSpanData"
|
|
186
|
+
mock_span.span_data = mock_span_data
|
|
187
|
+
|
|
188
|
+
result = sgp_span_name(mock_span)
|
|
189
|
+
|
|
190
|
+
assert result == "TestSpan"
|
|
191
|
+
|
|
192
|
+
def test_without_name(self):
|
|
193
|
+
"""Test when span_data doesn't have a name - should use class name"""
|
|
194
|
+
mock_span = Mock()
|
|
195
|
+
mock_span_data = Mock()
|
|
196
|
+
mock_span_data.export.return_value = {}
|
|
197
|
+
mock_span_data.__class__.__name__ = "ToolSpanData"
|
|
198
|
+
mock_span.span_data = mock_span_data
|
|
199
|
+
|
|
200
|
+
result = sgp_span_name(mock_span)
|
|
201
|
+
|
|
202
|
+
assert result == "Tool"
|
|
203
|
+
|
|
204
|
+
def test_with_none_span_data(self):
|
|
205
|
+
"""Test when span_data is None"""
|
|
206
|
+
mock_span = Mock()
|
|
207
|
+
mock_span.span_data = None
|
|
208
|
+
|
|
209
|
+
result = sgp_span_name(mock_span)
|
|
210
|
+
|
|
211
|
+
assert result == "Unnamed Span"
|
|
212
|
+
|
|
213
|
+
class TestParseMetadata:
|
|
214
|
+
"""Tests for parse_metadata function"""
|
|
215
|
+
|
|
216
|
+
def test_with_valid_span_data(self):
|
|
217
|
+
"""Test parsing metadata from span with valid span_data"""
|
|
218
|
+
mock_span = Mock()
|
|
219
|
+
mock_span_data = Mock()
|
|
220
|
+
mock_span_data.export.return_value = {
|
|
221
|
+
"type": "tool",
|
|
222
|
+
"name": "calculator",
|
|
223
|
+
"extra": "value",
|
|
224
|
+
"input": "should be excluded",
|
|
225
|
+
"output": "should be excluded"
|
|
226
|
+
}
|
|
227
|
+
mock_span.span_id = "span-123"
|
|
228
|
+
mock_span.span_data = mock_span_data
|
|
229
|
+
|
|
230
|
+
with patch('scale_gp_beta.lib.tracing.integrations.openai.utils.extract_response', return_value=None):
|
|
231
|
+
result = parse_metadata(mock_span)
|
|
232
|
+
|
|
233
|
+
assert "openai_metadata" in result
|
|
234
|
+
assert result["openai_metadata"]["openai_span_id"] == "span-123"
|
|
235
|
+
assert result["openai_metadata"]["type"] == "tool"
|
|
236
|
+
assert result["openai_metadata"]["name"] == "calculator"
|
|
237
|
+
assert result["openai_metadata"]["extra"] == "value"
|
|
238
|
+
assert "input" not in result["openai_metadata"]
|
|
239
|
+
assert "output" not in result["openai_metadata"]
|
|
240
|
+
|
|
241
|
+
def test_with_none_span_data(self):
|
|
242
|
+
"""Test when span_data is None"""
|
|
243
|
+
mock_span = Mock()
|
|
244
|
+
mock_span.span_data = None
|
|
245
|
+
|
|
246
|
+
result = parse_metadata(mock_span)
|
|
247
|
+
|
|
248
|
+
assert result == {}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/examples/tracing/0_primitives_fibonacci.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/examples/tracing/3_openai_agent_tracing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_datetime_parse.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/_utils/_resources_proxy.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/lib/tracing/trace_exporter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/chat/completions.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/completions.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/credentials.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/dataset_items.py
RENAMED
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/evaluation_items.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/evaluations.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/__init__.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/content.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/files/files.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/resources/span_assessments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/approval_status.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/assessment_type.py
RENAMED
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/chat_completion.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/chat/model_definition.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/component_param.py
RENAMED
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/container_param.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_list_params.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/credential_secret.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_create_params.py
RENAMED
|
File without changes
|
{scale_gp_beta-0.1.0a38 → scale_gp_beta-0.1.0a39}/src/scale_gp_beta/types/dataset_delete_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|