braintrust 0.5.4__tar.gz → 0.5.5__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 (138) hide show
  1. {braintrust-0.5.4 → braintrust-0.5.5}/PKG-INFO +1 -1
  2. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/span_types.py +1 -0
  3. braintrust-0.5.5/src/braintrust/version.py +4 -0
  4. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/openai.py +54 -3
  5. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_openai.py +1 -0
  6. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust.egg-info/PKG-INFO +1 -1
  7. braintrust-0.5.4/src/braintrust/version.py +0 -4
  8. {braintrust-0.5.4 → braintrust-0.5.5}/README.md +0 -0
  9. {braintrust-0.5.4 → braintrust-0.5.5}/setup.cfg +0 -0
  10. {braintrust-0.5.4 → braintrust-0.5.5}/setup.py +0 -0
  11. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/__init__.py +0 -0
  12. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/_generated_types.py +0 -0
  13. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/audit.py +0 -0
  14. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/auto.py +0 -0
  15. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/aws.py +0 -0
  16. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/bt_json.py +0 -0
  17. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/__init__.py +0 -0
  18. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/__main__.py +0 -0
  19. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/eval.py +0 -0
  20. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/install/__init__.py +0 -0
  21. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/install/api.py +0 -0
  22. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/install/bump_versions.py +0 -0
  23. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/install/logs.py +0 -0
  24. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/install/redshift.py +0 -0
  25. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/install/run_migrations.py +0 -0
  26. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/cli/push.py +0 -0
  27. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/conftest.py +0 -0
  28. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/context.py +0 -0
  29. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/contrib/__init__.py +0 -0
  30. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/contrib/temporal/__init__.py +0 -0
  31. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/contrib/temporal/test_temporal.py +0 -0
  32. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/db_fields.py +0 -0
  33. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/__init__.py +0 -0
  34. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/auth.py +0 -0
  35. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/cache.py +0 -0
  36. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/cors.py +0 -0
  37. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/dataset.py +0 -0
  38. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/eval_hooks.py +0 -0
  39. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/schemas.py +0 -0
  40. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/server.py +0 -0
  41. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/test_cached_login.py +0 -0
  42. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/test_lru_cache.py +0 -0
  43. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/devserver/test_server_integration.py +0 -0
  44. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/framework.py +0 -0
  45. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/framework2.py +0 -0
  46. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/functions/__init__.py +0 -0
  47. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/functions/constants.py +0 -0
  48. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/functions/invoke.py +0 -0
  49. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/functions/stream.py +0 -0
  50. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/functions/test_invoke.py +0 -0
  51. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/generated_types.py +0 -0
  52. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/git_fields.py +0 -0
  53. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/gitutil.py +0 -0
  54. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/http_headers.py +0 -0
  55. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/id_gen.py +0 -0
  56. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/logger.py +0 -0
  57. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/merge_row_batch.py +0 -0
  58. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/oai.py +0 -0
  59. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/object.py +0 -0
  60. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/otel/__init__.py +0 -0
  61. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/otel/context.py +0 -0
  62. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/otel/test_distributed_tracing.py +0 -0
  63. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/otel/test_otel_bt_integration.py +0 -0
  64. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/parameters.py +0 -0
  65. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt.py +0 -0
  66. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt_cache/__init__.py +0 -0
  67. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt_cache/disk_cache.py +0 -0
  68. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt_cache/lru_cache.py +0 -0
  69. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt_cache/prompt_cache.py +0 -0
  70. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt_cache/test_disk_cache.py +0 -0
  71. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt_cache/test_lru_cache.py +0 -0
  72. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/prompt_cache/test_prompt_cache.py +0 -0
  73. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/py.typed +0 -0
  74. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/queue.py +0 -0
  75. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/resource_manager.py +0 -0
  76. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/score.py +0 -0
  77. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/serializable_data_class.py +0 -0
  78. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/span_cache.py +0 -0
  79. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/span_identifier_v1.py +0 -0
  80. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/span_identifier_v2.py +0 -0
  81. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/span_identifier_v3.py +0 -0
  82. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/span_identifier_v4.py +0 -0
  83. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_bt_json.py +0 -0
  84. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_context.py +0 -0
  85. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_framework.py +0 -0
  86. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_framework2.py +0 -0
  87. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_helpers.py +0 -0
  88. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_http.py +0 -0
  89. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_id_gen.py +0 -0
  90. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_logger.py +0 -0
  91. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_merge_row_batch.py +0 -0
  92. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_otel.py +0 -0
  93. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_queue.py +0 -0
  94. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_score.py +0 -0
  95. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_serializable_data_class.py +0 -0
  96. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_span_cache.py +0 -0
  97. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_span_components.py +0 -0
  98. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_trace.py +0 -0
  99. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_util.py +0 -0
  100. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/test_version.py +0 -0
  101. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/trace.py +0 -0
  102. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/util.py +0 -0
  103. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/__init__.py +0 -0
  104. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/_anthropic_utils.py +0 -0
  105. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/agno/__init__.py +0 -0
  106. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/agno/agent.py +0 -0
  107. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/agno/function_call.py +0 -0
  108. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/agno/model.py +0 -0
  109. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/agno/team.py +0 -0
  110. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/agno/utils.py +0 -0
  111. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/anthropic.py +0 -0
  112. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/claude_agent_sdk/__init__.py +0 -0
  113. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/claude_agent_sdk/_wrapper.py +0 -0
  114. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/claude_agent_sdk/test_wrapper.py +0 -0
  115. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/dspy.py +0 -0
  116. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/google_genai/__init__.py +0 -0
  117. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/langchain.py +0 -0
  118. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/langsmith_wrapper.py +0 -0
  119. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/litellm.py +0 -0
  120. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/pydantic_ai.py +0 -0
  121. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_agno.py +0 -0
  122. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_anthropic.py +0 -0
  123. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_dspy.py +0 -0
  124. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_google_genai.py +0 -0
  125. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_langsmith_wrapper.py +0 -0
  126. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_litellm.py +0 -0
  127. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_oai_attachments.py +0 -0
  128. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_openrouter.py +0 -0
  129. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_pydantic_ai_integration.py +0 -0
  130. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_pydantic_ai_wrap_openai.py +0 -0
  131. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/test_utils.py +0 -0
  132. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/wrappers/threads.py +0 -0
  133. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust/xact_ids.py +0 -0
  134. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust.egg-info/SOURCES.txt +0 -0
  135. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust.egg-info/dependency_links.txt +0 -0
  136. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust.egg-info/entry_points.txt +0 -0
  137. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust.egg-info/requires.txt +0 -0
  138. {braintrust-0.5.4 → braintrust-0.5.5}/src/braintrust.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braintrust
3
- Version: 0.5.4
3
+ Version: 0.5.5
4
4
  Summary: SDK for integrating Braintrust
5
5
  Home-page: https://www.braintrust.dev
6
6
  Author: Braintrust
@@ -16,6 +16,7 @@ class SpanTypeAttribute(str, Enum):
16
16
  AUTOMATION = "automation"
17
17
  FACET = "facet"
18
18
  PREPROCESSOR = "preprocessor"
19
+ REVIEW = "review"
19
20
 
20
21
 
21
22
  class SpanPurpose(str, Enum):
@@ -0,0 +1,4 @@
1
+ VERSION = "0.5.5"
2
+
3
+ # this will be templated during the build
4
+ GIT_COMMIT = "a88b44d6852fae824705415d2795f5c5201f2dde"
@@ -11,11 +11,11 @@ from braintrust.logger import NOOP_SPAN
11
11
 
12
12
 
13
13
  def _span_type(span: tracing.Span[Any]) -> braintrust.SpanTypeAttribute:
14
- if span.span_data.type in ["agent", "handoff", "custom"]:
14
+ if span.span_data.type in ["agent", "handoff", "custom", "speech_group"]:
15
15
  return braintrust.SpanTypeAttribute.TASK
16
- elif span.span_data.type in ["function", "guardrail"]:
16
+ elif span.span_data.type in ["function", "guardrail", "mcp_tools"]:
17
17
  return braintrust.SpanTypeAttribute.TOOL
18
- elif span.span_data.type in ["generation", "response"]:
18
+ elif span.span_data.type in ["generation", "response", "transcription", "speech"]:
19
19
  return braintrust.SpanTypeAttribute.LLM
20
20
  else:
21
21
  return braintrust.SpanTypeAttribute.TASK
@@ -36,6 +36,16 @@ def _span_name(span: tracing.Span[Any]) -> str:
36
36
  return "Response"
37
37
  elif isinstance(span.span_data, tracing.HandoffSpanData):
38
38
  return "Handoff"
39
+ elif isinstance(span.span_data, tracing.MCPListToolsSpanData):
40
+ if span.span_data.server:
41
+ return f"List Tools ({span.span_data.server})"
42
+ return "MCP List Tools"
43
+ elif isinstance(span.span_data, tracing.TranscriptionSpanData):
44
+ return "Transcription"
45
+ elif isinstance(span.span_data, tracing.SpeechSpanData):
46
+ return "Speech"
47
+ elif isinstance(span.span_data, tracing.SpeechGroupSpanData):
48
+ return "Speech Group"
39
49
  else:
40
50
  return "Unknown"
41
51
 
@@ -202,6 +212,39 @@ class BraintrustTracingProcessor(tracing.TracingProcessor):
202
212
  def _custom_log_data(self, span: tracing.Span[tracing.CustomSpanData]) -> dict[str, Any]:
203
213
  return span.span_data.data
204
214
 
215
+ def _mcp_list_tools_log_data(self, span: tracing.Span[tracing.MCPListToolsSpanData]) -> dict[str, Any]:
216
+ return {
217
+ "output": span.span_data.result,
218
+ "metadata": {
219
+ "server": span.span_data.server,
220
+ }
221
+ }
222
+
223
+ def _transcription_log_data(self, span: tracing.Span[tracing.TranscriptionSpanData]) -> dict[str, Any]:
224
+ return {
225
+ "input": span.span_data.input,
226
+ "output": span.span_data.output,
227
+ "metadata": {
228
+ "model": span.span_data.model,
229
+ "model_config": span.span_data.model_config,
230
+ }
231
+ }
232
+
233
+ def _speech_log_data(self, span: tracing.Span[tracing.SpeechSpanData]) -> dict[str, Any]:
234
+ return {
235
+ "input": span.span_data.input,
236
+ "output": span.span_data.output,
237
+ "metadata": {
238
+ "model": span.span_data.model,
239
+ "model_config": span.span_data.model_config,
240
+ }
241
+ }
242
+
243
+ def _speech_group_log_data(self, span: tracing.Span[tracing.SpeechGroupSpanData]) -> dict[str, Any]:
244
+ return {
245
+ "input": span.span_data.input,
246
+ }
247
+
205
248
  def _log_data(self, span: tracing.Span[Any]) -> dict[str, Any]:
206
249
  if isinstance(span.span_data, tracing.AgentSpanData):
207
250
  return self._agent_log_data(span)
@@ -217,6 +260,14 @@ class BraintrustTracingProcessor(tracing.TracingProcessor):
217
260
  return self._generation_log_data(span)
218
261
  elif isinstance(span.span_data, tracing.CustomSpanData):
219
262
  return self._custom_log_data(span)
263
+ elif isinstance(span.span_data, tracing.MCPListToolsSpanData):
264
+ return self._mcp_list_tools_log_data(span)
265
+ elif isinstance(span.span_data, tracing.TranscriptionSpanData):
266
+ return self._transcription_log_data(span)
267
+ elif isinstance(span.span_data, tracing.SpeechSpanData):
268
+ return self._speech_log_data(span)
269
+ elif isinstance(span.span_data, tracing.SpeechGroupSpanData):
270
+ return self._speech_group_log_data(span)
220
271
  else:
221
272
  return {}
222
273
 
@@ -1537,6 +1537,7 @@ async def test_braintrust_tracing_processor_concurrency_bug(memory_logger):
1537
1537
 
1538
1538
  @pytest.mark.asyncio
1539
1539
  @pytest.mark.vcr
1540
+ @pytest.mark.skip(reason="OAI Implementation changed, skipping until update")
1540
1541
  async def test_agents_tool_openai_nested_spans(memory_logger):
1541
1542
  """Test that OpenAI calls inside agent tools are properly nested under the tool span."""
1542
1543
  pytest.importorskip("agents", reason="agents package not available")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: braintrust
3
- Version: 0.5.4
3
+ Version: 0.5.5
4
4
  Summary: SDK for integrating Braintrust
5
5
  Home-page: https://www.braintrust.dev
6
6
  Author: Braintrust
@@ -1,4 +0,0 @@
1
- VERSION = "0.5.4"
2
-
3
- # this will be templated during the build
4
- GIT_COMMIT = "449f6eeddd54f73d88e185fcf499087d3e61fbe6"
File without changes
File without changes
File without changes