langwatch 0.7.2__tar.gz → 0.8.1__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 (530) hide show
  1. langwatch-0.8.1/AGENTS.md +46 -0
  2. {langwatch-0.7.2 → langwatch-0.8.1}/CHANGELOG.md +24 -0
  3. {langwatch-0.7.2 → langwatch-0.8.1}/Makefile +13 -3
  4. {langwatch-0.7.2 → langwatch-0.8.1}/PKG-INFO +1 -1
  5. langwatch-0.8.1/examples/README.md +167 -0
  6. {langwatch-0.7.2 → langwatch-0.8.1}/examples/cli/guaranteed_availability_with_cli.py +1 -21
  7. {langwatch-0.7.2 → langwatch-0.8.1}/examples/distributed_tracing.py +4 -3
  8. langwatch-0.8.1/examples/test_utils/run_cli.py +23 -0
  9. {langwatch-0.7.2 → langwatch-0.8.1}/pyproject.toml +11 -2
  10. langwatch-0.8.1/specs/prompts/fetch-policy.feature +7 -0
  11. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/__init__.py +3 -1
  12. langwatch-0.8.1/src/langwatch/__version__.py +3 -0
  13. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/batch_evaluation.py +5 -4
  14. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/dspy/__init__.py +3 -2
  15. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/evaluation/evaluation.py +3 -2
  16. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/evaluations.py +3 -2
  17. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/login.py +2 -1
  18. langwatch-0.8.1/src/langwatch/prompts/__init__.py +36 -0
  19. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/errors.py +2 -1
  20. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/local_loader.py +7 -2
  21. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/prompt_facade.py +95 -5
  22. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/types/__init__.py +4 -0
  23. langwatch-0.8.1/src/langwatch/prompts/types/fetch_policy.py +26 -0
  24. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/telemetry/tracing.py +3 -2
  25. langwatch-0.8.1/src/langwatch/utils/exceptions.py +35 -0
  26. langwatch-0.8.1/tests/e2e/test_fetch_policies_e2e.py +356 -0
  27. langwatch-0.8.1/tests/prompts/test_fetch_policies.py +560 -0
  28. {langwatch-0.7.2 → langwatch-0.8.1}/tests/test_examples.py +16 -9
  29. {langwatch-0.7.2 → langwatch-0.8.1}/uv.lock +8 -6
  30. langwatch-0.7.2/src/langwatch/__version__.py +0 -3
  31. langwatch-0.7.2/src/langwatch/prompts/__init__.py +0 -5
  32. langwatch-0.7.2/src/langwatch/prompts/types.py +0 -16
  33. langwatch-0.7.2/src/langwatch/utils/exceptions.py +0 -14
  34. {langwatch-0.7.2 → langwatch-0.8.1}/.editorconfig +0 -0
  35. {langwatch-0.7.2 → langwatch-0.8.1}/.env.example +0 -0
  36. {langwatch-0.7.2 → langwatch-0.8.1}/.gitignore +0 -0
  37. {langwatch-0.7.2 → langwatch-0.8.1}/README.md +0 -0
  38. {langwatch-0.7.2 → langwatch-0.8.1}/examples/__init__.py +0 -0
  39. {langwatch-0.7.2 → langwatch-0.8.1}/examples/azure_openai_stream_bot.py +0 -0
  40. {langwatch-0.7.2 → langwatch-0.8.1}/examples/cli/README.md +0 -0
  41. {langwatch-0.7.2 → langwatch-0.8.1}/examples/custom_evaluation_bot.py +0 -0
  42. {langwatch-0.7.2 → langwatch-0.8.1}/examples/data/rag_dspy_bot.json +0 -0
  43. {langwatch-0.7.2 → langwatch-0.8.1}/examples/dataset_kitchen_sink.py +0 -0
  44. {langwatch-0.7.2 → langwatch-0.8.1}/examples/documentation/openai_langwatch.py +0 -0
  45. {langwatch-0.7.2 → langwatch-0.8.1}/examples/documentation/openai_openinference.py +0 -0
  46. {langwatch-0.7.2 → langwatch-0.8.1}/examples/dspy_bot.py +0 -0
  47. {langwatch-0.7.2 → langwatch-0.8.1}/examples/dspy_visualization.ipynb +0 -0
  48. {langwatch-0.7.2 → langwatch-0.8.1}/examples/evaluation_manual_call.py +0 -0
  49. {langwatch-0.7.2 → langwatch-0.8.1}/examples/fastapi_app.py +0 -0
  50. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot.py +0 -0
  51. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_async_streaming.py +0 -0
  52. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_exception.py +0 -0
  53. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_rag.py +0 -0
  54. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_rag_expected_output.py +0 -0
  55. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_rag_multithreaded.py +0 -0
  56. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_span_context_manager.py +0 -0
  57. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_span_low_level.py +0 -0
  58. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_streaming.py +0 -0
  59. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_sync_function.py +0 -0
  60. {langwatch-0.7.2 → langwatch-0.8.1}/examples/generic_bot_update_metadata_later.py +0 -0
  61. {langwatch-0.7.2 → langwatch-0.8.1}/examples/guardrails.py +0 -0
  62. {langwatch-0.7.2 → langwatch-0.8.1}/examples/guardrails_parallel.py +0 -0
  63. {langwatch-0.7.2 → langwatch-0.8.1}/examples/guardrails_without_tracing.py +0 -0
  64. {langwatch-0.7.2 → langwatch-0.8.1}/examples/haystack_bot.py +0 -0
  65. {langwatch-0.7.2 → langwatch-0.8.1}/examples/langchain_bot.py +0 -0
  66. {langwatch-0.7.2 → langwatch-0.8.1}/examples/langchain_bot_with_memory.py +0 -0
  67. {langwatch-0.7.2 → langwatch-0.8.1}/examples/langchain_rag_bot.py +0 -0
  68. {langwatch-0.7.2 → langwatch-0.8.1}/examples/langchain_rag_bot_vertex_ai.py +0 -0
  69. {langwatch-0.7.2 → langwatch-0.8.1}/examples/langchain_rag_bot_with_threads.py +0 -0
  70. {langwatch-0.7.2 → langwatch-0.8.1}/examples/langgraph_rag_bot_with_threads.py +0 -0
  71. {langwatch-0.7.2 → langwatch-0.8.1}/examples/langwatch_docs_rag_evaluation.ipynb +0 -0
  72. {langwatch-0.7.2 → langwatch-0.8.1}/examples/litellm_bot.py +0 -0
  73. {langwatch-0.7.2 → langwatch-0.8.1}/examples/offline_evaluation.ipynb +0 -0
  74. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot.py +0 -0
  75. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot_disable_trace.py +0 -0
  76. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot_function_call.py +0 -0
  77. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot_max_string_length.py +0 -0
  78. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot_max_string_length_none.py +0 -0
  79. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot_otel_metrics.py +0 -0
  80. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot_rag.py +0 -0
  81. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openai_bot_sampling_rate.py +0 -0
  82. {langwatch-0.7.2 → langwatch-0.8.1}/examples/openinference/google_adk.py +0 -0
  83. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openinference_dspy_bot.py +0 -0
  84. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openinference_haystack.py +0 -0
  85. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openinference_langchain_bot.py +0 -0
  86. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openinference_openai_assistants_api_bot.py +0 -0
  87. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openinference_openai_bot.py +0 -0
  88. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openllmetry_anthropic_bot.py +0 -0
  89. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openllmetry_crewai_bot.py +0 -0
  90. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openllmetry_langchain_bot.py +0 -0
  91. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/openllmetry_openai_bot.py +0 -0
  92. {langwatch-0.7.2 → langwatch-0.8.1}/examples/opentelemetry/traditional_instrumentation_fastapi_app.py +0 -0
  93. {langwatch-0.7.2 → langwatch-0.8.1}/examples/pdf_parsing_evaluation.ipynb +0 -0
  94. {langwatch-0.7.2 → langwatch-0.8.1}/examples/prompt_cli/.gitignore +0 -0
  95. {langwatch-0.7.2 → langwatch-0.8.1}/examples/prompt_cli/main.py +0 -0
  96. {langwatch-0.7.2 → langwatch-0.8.1}/examples/prompt_cli/prompts/agent/performance.prompt.yaml +0 -0
  97. {langwatch-0.7.2 → langwatch-0.8.1}/examples/prompt_management_fastapi.py +0 -0
  98. {langwatch-0.7.2 → langwatch-0.8.1}/examples/sanity/setup_example.py +0 -0
  99. {langwatch-0.7.2 → langwatch-0.8.1}/examples/span_evaluation.py +0 -0
  100. {langwatch-0.7.2 → langwatch-0.8.1}/examples/strands_bot.py +0 -0
  101. {langwatch-0.7.2 → langwatch-0.8.1}/examples/streamlit_openai_assistants_api_bot.py +0 -0
  102. {langwatch-0.7.2 → langwatch-0.8.1}/examples/weaviate_dspy_visualization.ipynb +0 -0
  103. {langwatch-0.7.2 → langwatch-0.8.1}/examples/weaviate_setup/.gitignore +0 -0
  104. {langwatch-0.7.2 → langwatch-0.8.1}/examples/weaviate_setup/Weaviate-Import.ipynb +0 -0
  105. {langwatch-0.7.2 → langwatch-0.8.1}/examples/weaviate_setup/docker-compose.yml +0 -0
  106. {langwatch-0.7.2 → langwatch-0.8.1}/examples/weaviate_setup/optimization_screenshot.png +0 -0
  107. {langwatch-0.7.2 → langwatch-0.8.1}/examples/weaviate_setup/tracing_screenshot.png +0 -0
  108. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/attributes.py +0 -0
  109. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/client.py +0 -0
  110. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/dataset/__init__.py +0 -0
  111. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/domain/__init__.py +0 -0
  112. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/evaluation/__init__.py +0 -0
  113. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/exporters/filterable_batch_span_exporter.py +0 -0
  114. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/__init__.py +0 -0
  115. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/__init__.py +0 -0
  116. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/__init__.py +0 -0
  117. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/delete_api_annotations_id.py +0 -0
  118. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/delete_api_prompts_by_id.py +0 -0
  119. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/delete_api_scenario_events.py +0 -0
  120. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_annotations.py +0 -0
  121. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_annotations_id.py +0 -0
  122. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_annotations_trace_id.py +0 -0
  123. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_dataset_by_slug_or_id.py +0 -0
  124. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_prompts.py +0 -0
  125. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_prompts_by_id.py +0 -0
  126. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_prompts_by_id_versions.py +0 -0
  127. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_trace_id.py +0 -0
  128. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_index.py +0 -0
  129. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/patch_api_annotations_id.py +0 -0
  130. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_annotations_trace_id.py +0 -0
  131. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_dataset_by_slug_entries.py +0 -0
  132. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_prompts.py +0 -0
  133. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_prompts_by_id_sync.py +0 -0
  134. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_scenario_events.py +0 -0
  135. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_trace_id_share.py +0 -0
  136. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_trace_id_unshare.py +0 -0
  137. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_index.py +0 -0
  138. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/default/put_api_prompts_by_id.py +0 -0
  139. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/traces/__init__.py +0 -0
  140. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/api/traces/post_api_trace_search.py +0 -0
  141. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/client.py +0 -0
  142. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/errors.py +0 -0
  143. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/__init__.py +0 -0
  144. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/annotation.py +0 -0
  145. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/dataset_post_entries.py +0 -0
  146. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/dataset_post_entries_entries_item.py +0 -0
  147. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_annotations_id_response_200.py +0 -0
  148. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_200.py +0 -0
  149. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_400.py +0 -0
  150. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_401.py +0 -0
  151. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_404.py +0 -0
  152. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_422.py +0 -0
  153. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_500.py +0 -0
  154. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_200.py +0 -0
  155. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_400.py +0 -0
  156. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_401.py +0 -0
  157. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_422.py +0 -0
  158. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_500.py +0 -0
  159. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/error.py +0 -0
  160. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/evaluation.py +0 -0
  161. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/evaluation_timestamps.py +0 -0
  162. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_200.py +0 -0
  163. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item.py +0 -0
  164. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item_entry.py +0 -0
  165. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_400.py +0 -0
  166. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_401.py +0 -0
  167. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_404.py +0 -0
  168. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_422.py +0 -0
  169. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_500.py +0 -0
  170. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200.py +0 -0
  171. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations.py +0 -0
  172. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations_inline.py +0 -0
  173. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations_inline_column_types_item.py +0 -0
  174. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations_inline_records.py +0 -0
  175. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_inputs_item.py +0 -0
  176. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_inputs_item_type.py +0 -0
  177. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_messages_item.py +0 -0
  178. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_messages_item_role.py +0 -0
  179. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_outputs_item.py +0 -0
  180. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_outputs_item_json_schema.py +0 -0
  181. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_outputs_item_type.py +0 -0
  182. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique.py +0 -0
  183. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_demonstrations.py +0 -0
  184. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline.py +0 -0
  185. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  186. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline_records.py +0 -0
  187. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_type.py +0 -0
  188. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_response_format.py +0 -0
  189. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_response_format_json_schema_type_0.py +0 -0
  190. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_response_format_json_schema_type_0_schema.py +0 -0
  191. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_response_format_type.py +0 -0
  192. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_scope.py +0 -0
  193. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_400.py +0 -0
  194. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_401.py +0 -0
  195. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_404.py +0 -0
  196. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_422.py +0 -0
  197. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_500.py +0 -0
  198. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item.py +0 -0
  199. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_demonstrations.py +0 -0
  200. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_demonstrations_inline.py +0 -0
  201. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_demonstrations_inline_column_types_item.py +0 -0
  202. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_demonstrations_inline_records.py +0 -0
  203. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_inputs_item.py +0 -0
  204. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_inputs_item_type.py +0 -0
  205. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_messages_item.py +0 -0
  206. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_messages_item_role.py +0 -0
  207. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_outputs_item.py +0 -0
  208. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_outputs_item_json_schema.py +0 -0
  209. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_outputs_item_type.py +0 -0
  210. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique.py +0 -0
  211. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_demonstrations.py +0 -0
  212. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_demonstrations_inline.py +0 -0
  213. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  214. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_demonstrations_inline_records.py +0 -0
  215. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_type.py +0 -0
  216. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_response_format.py +0 -0
  217. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_response_format_json_schema_type_0.py +0 -0
  218. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_response_format_json_schema_type_0_schema.py +0 -0
  219. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_response_format_type.py +0 -0
  220. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_scope.py +0 -0
  221. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_400.py +0 -0
  222. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_401.py +0 -0
  223. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_404.py +0 -0
  224. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_422.py +0 -0
  225. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_500.py +0 -0
  226. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item.py +0 -0
  227. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations.py +0 -0
  228. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations_inline.py +0 -0
  229. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations_inline_column_types_item.py +0 -0
  230. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations_inline_records.py +0 -0
  231. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_inputs_item.py +0 -0
  232. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_inputs_item_type.py +0 -0
  233. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_messages_item.py +0 -0
  234. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_messages_item_role.py +0 -0
  235. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_outputs_item.py +0 -0
  236. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_outputs_item_json_schema.py +0 -0
  237. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_outputs_item_type.py +0 -0
  238. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique.py +0 -0
  239. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations.py +0 -0
  240. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations_inline.py +0 -0
  241. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  242. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations_inline_records.py +0 -0
  243. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_type.py +0 -0
  244. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format.py +0 -0
  245. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format_json_schema_type_0.py +0 -0
  246. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format_json_schema_type_0_schema.py +0 -0
  247. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format_type.py +0 -0
  248. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_scope.py +0 -0
  249. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_400.py +0 -0
  250. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_401.py +0 -0
  251. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_422.py +0 -0
  252. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_500.py +0 -0
  253. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200.py +0 -0
  254. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_error_type_0.py +0 -0
  255. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_evaluations_item.py +0 -0
  256. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_evaluations_item_error.py +0 -0
  257. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_evaluations_item_timestamps.py +0 -0
  258. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_input.py +0 -0
  259. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_metadata.py +0 -0
  260. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_metrics.py +0 -0
  261. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_output.py +0 -0
  262. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item.py +0 -0
  263. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_error_type_0.py +0 -0
  264. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_input.py +0 -0
  265. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_input_value_item.py +0 -0
  266. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_metrics.py +0 -0
  267. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_output.py +0 -0
  268. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_output_value_item.py +0 -0
  269. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_params.py +0 -0
  270. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_timestamps.py +0 -0
  271. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_timestamps.py +0 -0
  272. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item.py +0 -0
  273. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_messages_item.py +0 -0
  274. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_messages_item_role.py +0 -0
  275. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0.py +0 -0
  276. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0_json_schema.py +0 -0
  277. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0_json_schema_schema.py +0 -0
  278. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0_type.py +0 -0
  279. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_scope.py +0 -0
  280. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_400.py +0 -0
  281. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_401.py +0 -0
  282. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_500.py +0 -0
  283. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/input_.py +0 -0
  284. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/metadata.py +0 -0
  285. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/metrics.py +0 -0
  286. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/output.py +0 -0
  287. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/pagination.py +0 -0
  288. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/patch_api_annotations_id_body.py +0 -0
  289. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/patch_api_annotations_id_response_200.py +0 -0
  290. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_annotations_trace_id_body.py +0 -0
  291. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body.py +0 -0
  292. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_inputs_item.py +0 -0
  293. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_inputs_item_type.py +0 -0
  294. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_messages_item.py +0 -0
  295. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_messages_item_role.py +0 -0
  296. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_outputs_item.py +0 -0
  297. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_outputs_item_json_schema.py +0 -0
  298. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_outputs_item_type.py +0 -0
  299. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_schema_version.py +0 -0
  300. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_scope.py +0 -0
  301. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body.py +0 -0
  302. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data.py +0 -0
  303. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_demonstrations.py +0 -0
  304. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_demonstrations_inline.py +0 -0
  305. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_demonstrations_inline_column_types_item.py +0 -0
  306. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_demonstrations_inline_records.py +0 -0
  307. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_inputs_item.py +0 -0
  308. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_inputs_item_type.py +0 -0
  309. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_messages_item.py +0 -0
  310. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_messages_item_role.py +0 -0
  311. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_outputs_item.py +0 -0
  312. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_outputs_item_json_schema.py +0 -0
  313. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_outputs_item_type.py +0 -0
  314. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique.py +0 -0
  315. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_demonstrations.py +0 -0
  316. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_demonstrations_inline.py +0 -0
  317. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  318. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_demonstrations_inline_records.py +0 -0
  319. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_type.py +0 -0
  320. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_response_format.py +0 -0
  321. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_response_format_json_schema_type_0.py +0 -0
  322. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_response_format_json_schema_type_0_schema.py +0 -0
  323. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_response_format_type.py +0 -0
  324. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200.py +0 -0
  325. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_action.py +0 -0
  326. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info.py +0 -0
  327. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data.py +0 -0
  328. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_demonstrations.py +0 -0
  329. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_demonstrations_inline.py +0 -0
  330. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_demonstrations_inline_column_types_item.py +0 -0
  331. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_demonstrations_inline_records.py +0 -0
  332. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_inputs_item.py +0 -0
  333. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_inputs_item_type.py +0 -0
  334. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_messages_item.py +0 -0
  335. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_messages_item_role.py +0 -0
  336. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_outputs_item.py +0 -0
  337. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_outputs_item_json_schema.py +0 -0
  338. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_outputs_item_type.py +0 -0
  339. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_prompting_technique.py +0 -0
  340. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_prompting_technique_demonstrations.py +0 -0
  341. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_prompting_technique_demonstrations_inline.py +0 -0
  342. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  343. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_prompting_technique_demonstrations_inline_records.py +0 -0
  344. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_prompting_technique_type.py +0 -0
  345. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_response_format.py +0 -0
  346. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_response_format_json_schema_type_0.py +0 -0
  347. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_response_format_json_schema_type_0_schema.py +0 -0
  348. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data_response_format_type.py +0 -0
  349. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt.py +0 -0
  350. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_demonstrations.py +0 -0
  351. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_demonstrations_inline.py +0 -0
  352. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_demonstrations_inline_column_types_item.py +0 -0
  353. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_demonstrations_inline_records.py +0 -0
  354. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_inputs_item.py +0 -0
  355. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_inputs_item_type.py +0 -0
  356. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_messages_item.py +0 -0
  357. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_messages_item_role.py +0 -0
  358. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_outputs_item.py +0 -0
  359. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_outputs_item_json_schema.py +0 -0
  360. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_outputs_item_type.py +0 -0
  361. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique.py +0 -0
  362. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_demonstrations.py +0 -0
  363. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_demonstrations_inline.py +0 -0
  364. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  365. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_demonstrations_inline_records.py +0 -0
  366. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_type.py +0 -0
  367. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_response_format.py +0 -0
  368. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_response_format_json_schema_type_0.py +0 -0
  369. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_response_format_json_schema_type_0_schema.py +0 -0
  370. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_response_format_type.py +0 -0
  371. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_scope.py +0 -0
  372. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_400.py +0 -0
  373. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_401.py +0 -0
  374. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_422.py +0 -0
  375. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_500.py +0 -0
  376. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200.py +0 -0
  377. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations.py +0 -0
  378. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations_inline.py +0 -0
  379. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations_inline_column_types_item.py +0 -0
  380. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations_inline_records.py +0 -0
  381. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_inputs_item.py +0 -0
  382. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_inputs_item_type.py +0 -0
  383. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_messages_item.py +0 -0
  384. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_messages_item_role.py +0 -0
  385. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_outputs_item.py +0 -0
  386. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_outputs_item_json_schema.py +0 -0
  387. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_outputs_item_type.py +0 -0
  388. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique.py +0 -0
  389. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations.py +0 -0
  390. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations_inline.py +0 -0
  391. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  392. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations_inline_records.py +0 -0
  393. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_type.py +0 -0
  394. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format.py +0 -0
  395. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format_json_schema_type_0.py +0 -0
  396. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format_json_schema_type_0_schema.py +0 -0
  397. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format_type.py +0 -0
  398. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_scope.py +0 -0
  399. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_400.py +0 -0
  400. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_401.py +0 -0
  401. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_409.py +0 -0
  402. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_422.py +0 -0
  403. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_500.py +0 -0
  404. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_0.py +0 -0
  405. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_0_metadata.py +0 -0
  406. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1.py +0 -0
  407. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1_results_type_0.py +0 -0
  408. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1_results_type_0_verdict.py +0 -0
  409. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1_status.py +0 -0
  410. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_2.py +0 -0
  411. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_2_messages_item.py +0 -0
  412. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_201.py +0 -0
  413. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_400.py +0 -0
  414. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_401.py +0 -0
  415. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_422.py +0 -0
  416. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_500.py +0 -0
  417. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_trace_id_share_response_200.py +0 -0
  418. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_trace_id_unshare_response_200.py +0 -0
  419. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body.py +0 -0
  420. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_inputs_item.py +0 -0
  421. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_inputs_item_type.py +0 -0
  422. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_messages_item.py +0 -0
  423. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_messages_item_role.py +0 -0
  424. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_outputs_item.py +0 -0
  425. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_outputs_item_json_schema.py +0 -0
  426. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_outputs_item_type.py +0 -0
  427. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_scope.py +0 -0
  428. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200.py +0 -0
  429. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_messages_item.py +0 -0
  430. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_messages_item_role.py +0 -0
  431. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0.py +0 -0
  432. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0_json_schema.py +0 -0
  433. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0_json_schema_schema.py +0 -0
  434. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0_type.py +0 -0
  435. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_scope.py +0 -0
  436. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_400.py +0 -0
  437. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_401.py +0 -0
  438. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_500.py +0 -0
  439. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body.py +0 -0
  440. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_inputs_item.py +0 -0
  441. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_inputs_item_type.py +0 -0
  442. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_messages_item.py +0 -0
  443. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_messages_item_role.py +0 -0
  444. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_outputs_item.py +0 -0
  445. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_outputs_item_json_schema.py +0 -0
  446. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_outputs_item_type.py +0 -0
  447. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_schema_version.py +0 -0
  448. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_scope.py +0 -0
  449. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200.py +0 -0
  450. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations.py +0 -0
  451. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations_inline.py +0 -0
  452. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations_inline_column_types_item.py +0 -0
  453. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations_inline_records.py +0 -0
  454. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_inputs_item.py +0 -0
  455. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_inputs_item_type.py +0 -0
  456. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_messages_item.py +0 -0
  457. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_messages_item_role.py +0 -0
  458. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_outputs_item.py +0 -0
  459. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_outputs_item_json_schema.py +0 -0
  460. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_outputs_item_type.py +0 -0
  461. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique.py +0 -0
  462. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_demonstrations.py +0 -0
  463. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline.py +0 -0
  464. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  465. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline_records.py +0 -0
  466. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_type.py +0 -0
  467. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_response_format.py +0 -0
  468. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_response_format_json_schema_type_0.py +0 -0
  469. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_response_format_json_schema_type_0_schema.py +0 -0
  470. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_response_format_type.py +0 -0
  471. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_scope.py +0 -0
  472. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_400.py +0 -0
  473. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_401.py +0 -0
  474. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_404.py +0 -0
  475. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_409.py +0 -0
  476. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_422.py +0 -0
  477. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_500.py +0 -0
  478. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/search_request.py +0 -0
  479. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/search_request_filters.py +0 -0
  480. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/search_response.py +0 -0
  481. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/timestamps.py +0 -0
  482. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/models/trace.py +0 -0
  483. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/py.typed +0 -0
  484. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/generated/langwatch_rest_api_client/types.py +0 -0
  485. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/guardrails.py +0 -0
  486. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/langchain.py +0 -0
  487. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/litellm.py +0 -0
  488. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/openai.py +0 -0
  489. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/decorators/prompt_service_tracing.py +0 -0
  490. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/decorators/prompt_tracing.py +0 -0
  491. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/prompt.py +0 -0
  492. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/prompt_api_service.py +0 -0
  493. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/types/prompt_data.py +0 -0
  494. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/prompts/types/structures.py +0 -0
  495. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/py.typed +0 -0
  496. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/state.py +0 -0
  497. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/telemetry/__tests__/test_tracing.py +0 -0
  498. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/telemetry/context.py +0 -0
  499. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/telemetry/sampling.py +0 -0
  500. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/telemetry/span.py +0 -0
  501. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/telemetry/types.py +0 -0
  502. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/tracer.py +0 -0
  503. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/types.py +0 -0
  504. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/utils/__init__.py +0 -0
  505. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/utils/capture.py +0 -0
  506. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/utils/initialization.py +0 -0
  507. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/utils/module.py +0 -0
  508. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/utils/transformation.py +0 -0
  509. {langwatch-0.7.2 → langwatch-0.8.1}/src/langwatch/utils/utils.py +0 -0
  510. {langwatch-0.7.2 → langwatch-0.8.1}/tests/conftest.py +0 -0
  511. {langwatch-0.7.2 → langwatch-0.8.1}/tests/exporters/test_filterable_batch_span_exporter.py +0 -0
  512. {langwatch-0.7.2 → langwatch-0.8.1}/tests/fixtures/README.md +0 -0
  513. {langwatch-0.7.2 → langwatch-0.8.1}/tests/fixtures/__init__.py +0 -0
  514. {langwatch-0.7.2 → langwatch-0.8.1}/tests/fixtures/get_response_factories.py +0 -0
  515. {langwatch-0.7.2 → langwatch-0.8.1}/tests/fixtures/prompts/cli.py +0 -0
  516. {langwatch-0.7.2 → langwatch-0.8.1}/tests/fixtures/prompts/general.py +0 -0
  517. {langwatch-0.7.2 → langwatch-0.8.1}/tests/fixtures/prompts/prompt_fixtures.py +0 -0
  518. {langwatch-0.7.2 → langwatch-0.8.1}/tests/fixtures/span_exporter.py +0 -0
  519. {langwatch-0.7.2 → langwatch-0.8.1}/tests/prompts/test_guaranteed_availability.py +0 -0
  520. {langwatch-0.7.2 → langwatch-0.8.1}/tests/prompts/test_local_loader.py +0 -0
  521. {langwatch-0.7.2 → langwatch-0.8.1}/tests/prompts/test_prompt.py +0 -0
  522. {langwatch-0.7.2 → langwatch-0.8.1}/tests/prompts/test_prompt_service_tracing.py +0 -0
  523. {langwatch-0.7.2 → langwatch-0.8.1}/tests/prompts/test_prompt_tracing.py +0 -0
  524. {langwatch-0.7.2 → langwatch-0.8.1}/tests/telemetry/test_context.py +0 -0
  525. {langwatch-0.7.2 → langwatch-0.8.1}/tests/telemetry/test_tracing.py +0 -0
  526. {langwatch-0.7.2 → langwatch-0.8.1}/tests/test_cli_runner.py +0 -0
  527. {langwatch-0.7.2 → langwatch-0.8.1}/tests/test_client.py +0 -0
  528. {langwatch-0.7.2 → langwatch-0.8.1}/tests/test_login.py +0 -0
  529. {langwatch-0.7.2 → langwatch-0.8.1}/tests/test_version.py +0 -0
  530. {langwatch-0.7.2 → langwatch-0.8.1}/tests/utils/test_transformation.py +0 -0
@@ -0,0 +1,46 @@
1
+ ## Python SDK Testing Antipatterns
2
+
3
+ | Antipattern | Correct Behavior |
4
+ |-------------|------------------|
5
+ | Writing E2E tests mixed with unit tests | Keep E2E tests isolated in `tests/e2e/` directory with `@pytest.mark.e2e`. E2E tests verify real API behavior with external services, while examples serve as user demonstrations. |
6
+ | Repeating happy paths in integration/unit tests | Do not duplicate E2E/example coverage in integrations or units. Focus integration tests on edge/error cases, and unit tests on pure logic. |
7
+ | Failing to follow [TESTING.md](../TESTING.md) hierarchy | Always start with a `.feature` file, drive from E2E tests in `tests/e2e/`, then add integration tests in `tests/` and unit tests as outlined. Examples in `examples/` serve as user demonstrations. |
8
+ | Using `pip` or `python` directly for installing, running, or testing | Always use [`uv`](https://github.com/astral-sh/uv) for all dependency installation, package management, and test running. Do not use `pip` commands or `python -m pip`, prefer `uv` equivalents throughout documentation, scripts, and workflows. |
9
+
10
+ ## Testing Structure
11
+
12
+ The Python SDK follows a hierarchical testing approach:
13
+
14
+ ### `tests/e2e/` - End-to-End Tests
15
+ - **Purpose**: Verify real API behavior with external services
16
+ - **Location**: `tests/e2e/` directory
17
+ - **Markers**: `@pytest.mark.e2e`
18
+ - **Run with**: `pytest tests/e2e/` or `pytest -m e2e`
19
+ - **Examples**: `test_fetch_policies_e2e.py` - verifies fetch policies work with real API calls
20
+
21
+ ### `examples/` - User Demonstrations
22
+ - **Purpose**: Show users how to use the SDK features
23
+ - **Location**: `examples/` directory
24
+ - **Markers**: None (automatically tested by `test_examples.py`)
25
+ - **Run with**: `pytest tests/test_examples.py` or manually as scripts
26
+ - **Examples**: `generic_bot.py`, `langchain_bot.py`, etc.
27
+
28
+ ### `tests/` - Integration & Unit Tests
29
+ - **Purpose**: Test components and error cases
30
+ - **Location**: `tests/` directory
31
+ - **Markers**: `@pytest.mark.integration`, `@pytest.mark.unit` (default)
32
+ - **Run with**: `pytest tests/` or `pytest -m "not e2e"`
33
+
34
+ ### Running Tests Selectively
35
+ ```bash
36
+ # Run all tests except E2E (fast CI)
37
+ pytest tests/ -m "not e2e"
38
+
39
+ # Run only E2E tests (requires API keys)
40
+ pytest tests/e2e/
41
+
42
+ # Run examples as demonstrations
43
+ pytest tests/test_examples.py
44
+ ```
45
+
46
+
@@ -1,5 +1,29 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.1](https://github.com/langwatch/langwatch/compare/python-sdk@v0.8.0...python-sdk@v0.8.1) (2026-01-06)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * improve backend error capturing of whole python-sdk to forward the human readable error message, and improve auto parsing of contexts for evaluation ([7ed0623](https://github.com/langwatch/langwatch/commit/7ed06235ecf14091c4cad33a5331a4d0819e9a27))
9
+ * reraise when 'error' is not available ([40530a2](https://github.com/langwatch/langwatch/commit/40530a2de08ce796dcc4ad9a0a97cd661044dbf1))
10
+
11
+
12
+ ### Miscellaneous
13
+
14
+ * trigger release ([#1011](https://github.com/langwatch/langwatch/issues/1011)) ([6173f53](https://github.com/langwatch/langwatch/commit/6173f53b041d9ee7e6b930270224954ba3c6621e))
15
+
16
+ ## [0.8.0](https://github.com/langwatch/langwatch/compare/python-sdk@v0.7.2...python-sdk@v0.8.0) (2025-12-16)
17
+
18
+
19
+ ### Features
20
+
21
+ * implement FetchPolicy enum for Python SDK ([#989](https://github.com/langwatch/langwatch/issues/989)) ([43de904](https://github.com/langwatch/langwatch/commit/43de904de08ec54a78aece35da155a8a3cb4289d))
22
+
23
+ ### Bug Fixes
24
+
25
+ * rerun evaluations if new spans arrive even after 30s but less than 1h ([79ba316](https://github.com/langwatch/langwatch/commit/79ba3163c64f224e3d2b640b5340f1503fc57c48))
26
+
3
27
  ## [0.7.2](https://github.com/langwatch/langwatch/compare/python-sdk@v0.7.1...python-sdk@v0.7.2) (2025-12-03)
4
28
 
5
29
 
@@ -1,7 +1,10 @@
1
1
  .PHONY: test test-tracing install example
2
2
 
3
- test: test-tracing
4
- LANGWATCH_API_KEY="testkey" PYTHONPATH=$$PYTHONPATH:. uv run pytest -s -vv -m "not integration" -k "not test_example and not test_prompt_service_tracing and not test_prompt_tracing and not test_context and not test_tracing" $(filter-out $@,$(MAKECMDGOALS))
3
+ test-unit:
4
+ LANGWATCH_API_KEY="testkey" PYTHONPATH=$$PYTHONPATH:. uv run pytest -s -vv -m "not integration and not e2e" -k "not test_example and not test_prompt_service_tracing and not test_prompt_tracing and not test_context and not test_tracing" $(filter-out $@,$(MAKECMDGOALS))
5
+
6
+ test-e2e:
7
+ PYTHONPATH=$$PYTHONPATH:. uv run pytest -s -vv -m "e2e"
5
8
 
6
9
  # Run tracing tests in isolation to avoid global OpenTelemetry state conflicts
7
10
  test-tracing:
@@ -14,6 +17,11 @@ test-tracing:
14
17
  @echo "Running telemetry tracing tests..."
15
18
  @LANGWATCH_API_KEY="testkey" PYTHONPATH=$$PYTHONPATH:. uv run pytest -s -vv tests/telemetry/test_tracing.py
16
19
 
20
+ test: install
21
+ $(MAKE) test-unit
22
+ $(MAKE) test-tracing
23
+ $(MAKE) test-e2e
24
+
17
25
  # Test bot/chatbot examples (excludes CLI examples)
18
26
  # Call it with `make test-examples -- -k examples/openai_bot.py` to run a specific example
19
27
  test-examples:
@@ -46,6 +54,8 @@ example:
46
54
  uv run python $$args; \
47
55
  elif [[ $$args =~ "streamlit" ]]; then \
48
56
  uv run streamlit run $$args; \
57
+ elif [[ $$args =~ "fetch_policies" ]]; then \
58
+ PYTHONPATH=$$PYTHONPATH:. uv run python $$args; \
49
59
  else \
50
60
  uv run chainlit run -w --port 9000 $$args; \
51
61
  fi
@@ -60,7 +70,7 @@ ensure-openapi-python-client:
60
70
 
61
71
  generate/api-client: ensure-openapi-python-client
62
72
  @echo "Generating OpenAPI spec..."
63
- @cd ../langwatch && npm run task generateOpenAPISpec
73
+ @cd ../langwatch && pnpm run task generateOpenAPISpec
64
74
  @echo "Deleting old API client..."
65
75
  @rm -rf src/langwatch/generated/langwatch_rest_api_client
66
76
  @echo "Building API client..."
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langwatch
3
- Version: 0.7.2
3
+ Version: 0.8.1
4
4
  Summary: LangWatch Python SDK, for monitoring your LLMs
5
5
  Author-email: Langwatch Engineers <engineering@langwatch.ai>
6
6
  License: MIT
@@ -0,0 +1,167 @@
1
+ # LangWatch Python SDK Examples
2
+
3
+ This directory contains examples demonstrating various LangWatch SDK features. Each example is a runnable Python script that shows real-world usage patterns.
4
+
5
+ ## 📋 Categories
6
+
7
+ ### 🤖 Core Bot Examples
8
+
9
+ Basic chatbot implementations showing fundamental LangWatch tracing:
10
+
11
+ | Example | Description | Key Features |
12
+ |---------|-------------|--------------|
13
+ | [`generic_bot.py`](generic_bot.py) | Simple synchronous chatbot | Basic tracing, metadata |
14
+ | [`generic_bot_sync_function.py`](generic_bot_sync_function.py) | Sync function usage | Function-level tracing |
15
+ | [`generic_bot_async_streaming.py`](generic_bot_async_streaming.py) | Async streaming responses | Streaming support, async/await |
16
+ | [`generic_bot_streaming.py`](generic_bot_streaming.py) | Synchronous streaming | Streaming without async |
17
+ | [`generic_bot_span_context_manager.py`](generic_bot_span_context_manager.py) | Manual span management | Context managers, custom spans |
18
+ | [`generic_bot_span_low_level.py`](generic_bot_span_low_level.py) | Low-level span control | Direct span manipulation |
19
+
20
+ ### 🔗 Framework Integrations
21
+
22
+ Examples showing integration with popular AI frameworks:
23
+
24
+ | Example | Framework | Features |
25
+ |---------|-----------|----------|
26
+ | [`langchain_bot.py`](langchain_bot.py) | LangChain | LCEL, chains, agents |
27
+ | [`langchain_bot_with_memory.py`](langchain_bot_with_memory.py) | LangChain + Memory | Conversation history |
28
+ | [`langchain_rag_bot.py`](langchain_rag_bot.py) | LangChain RAG | Retrieval-augmented generation |
29
+ | [`langchain_rag_bot_with_threads.py`](langchain_rag_bot_with_threads.py) | LangChain RAG + Threads | Multi-threading |
30
+ | [`langchain_rag_bot_vertex_ai.py`](langchain_rag_bot_vertex_ai.py) | LangChain + Vertex AI | Google Cloud integration |
31
+ | [`langgraph_rag_bot_with_threads.py`](langgraph_rag_bot_with_threads.py) | LangGraph | Graph-based workflows |
32
+ | [`haystack_bot.py`](haystack_bot.py) | Haystack | Document search, pipelines |
33
+ | [`dspy_bot.py`](dspy_bot.py) | DSPy | Programmatic prompting |
34
+ | [`litellm_bot.py`](litellm_bot.py) | LiteLLM | Multi-provider support |
35
+
36
+ ### 🌐 Web Framework Examples
37
+
38
+ Examples showing web application integration:
39
+
40
+ | Example | Framework | Features |
41
+ |---------|-----------|----------|
42
+ | [`fastapi_app.py`](fastapi_app.py) | FastAPI | Web API with tracing |
43
+ | [`prompt_management_fastapi.py`](prompt_management_fastapi.py) | FastAPI | Prompt management API |
44
+ | [`streamlit_openai_assistants_api_bot.py`](streamlit_openai_assistants_api_bot.py) | Streamlit | UI with assistants API |
45
+
46
+ ### 📊 Evaluation & Analysis
47
+
48
+ Examples focused on evaluation and analytics:
49
+
50
+ | Example | Purpose | Features |
51
+ |---------|---------|----------|
52
+ | [`evaluation_manual_call.py`](evaluation_manual_call.py) | Manual evaluation | Custom evaluation logic |
53
+ | [`span_evaluation.py`](span_evaluation.py) | Span-based evaluation | Automatic span analysis |
54
+ | [`custom_evaluation_bot.py`](custom_evaluation_bot.py) | Custom evaluators | User-defined metrics |
55
+
56
+ ### 🛡️ Safety & Reliability
57
+
58
+ Examples demonstrating guardrails and error handling:
59
+
60
+ | Example | Focus | Features |
61
+ |---------|-------|----------|
62
+ | [`guardrails.py`](guardrails.py) | Content safety | Input/output filtering |
63
+ | [`guardrails_parallel.py`](guardrails_parallel.py) | Parallel guardrails | Concurrent safety checks |
64
+ | [`guardrails_without_tracing.py`](guardrails_without_tracing.py) | Standalone guardrails | Safety without tracing |
65
+ | [`generic_bot_exception.py`](generic_bot_exception.py) | Error handling | Exception tracing |
66
+
67
+ ### 🔍 RAG & Retrieval Examples
68
+
69
+ Advanced retrieval-augmented generation patterns:
70
+
71
+ | Example | Approach | Features |
72
+ |---------|----------|----------|
73
+ | [`generic_bot_rag.py`](generic_bot_rag.py) | Basic RAG | Document retrieval |
74
+ | [`generic_bot_rag_multithreaded.py`](generic_bot_rag_multithreaded.py) | Multi-threaded RAG | Concurrent processing |
75
+ | [`openai_bot_rag.py`](openai_bot_rag.py) | OpenAI + RAG | Embeddings, vector search |
76
+
77
+ ### 📈 Advanced Features
78
+
79
+ Specialized functionality examples:
80
+
81
+ | Example | Feature | Description |
82
+ |---------|---------|-------------|
83
+ | [`fetch_policies_example.py`](fetch_policies_example.py) | Fetch policies | Prompt retrieval strategies |
84
+ | [`distributed_tracing.py`](distributed_tracing.py) | Distributed tracing | Multi-service tracing |
85
+ | [`dataset_kitchen_sink.py`](dataset_kitchen_sink.py) | Dataset operations | Full dataset workflow |
86
+ | [`offline_evaluation.ipynb`](offline_evaluation.ipynb) | Offline analysis | Jupyter notebook evaluation |
87
+
88
+ ### 🔧 Specialized Integrations
89
+
90
+ Examples for specific use cases and integrations:
91
+
92
+ | Example | Integration | Purpose |
93
+ |---------|-------------|---------|
94
+ | [`azure_openai_stream_bot.py`](azure_openai_stream_bot.py) | Azure OpenAI | Cloud provider integration |
95
+ | [`strands_bot.py`](strands_bot.py) | Strands | Multi-agent systems |
96
+
97
+ ## 🚀 Running Examples
98
+
99
+ ### Prerequisites
100
+ ```bash
101
+ # Install dependencies
102
+ uv sync
103
+
104
+ # Set API keys (varies by example)
105
+ export OPENAI_API_KEY="your-key"
106
+ export LANGWATCH_API_KEY="your-langwatch-key"
107
+ ```
108
+
109
+ ### Run Individual Examples
110
+ ```bash
111
+ # Basic bot
112
+ python examples/generic_bot.py
113
+
114
+ # LangChain integration
115
+ python examples/langchain_bot.py
116
+
117
+ # FastAPI web app
118
+ uvicorn examples.fastapi_app:app --reload
119
+ ```
120
+
121
+ ### Run All Examples (Testing)
122
+ ```bash
123
+ # Run all examples as tests
124
+ pytest tests/test_examples.py
125
+
126
+ # Run specific example
127
+ pytest tests/test_examples.py -k "generic_bot"
128
+ ```
129
+
130
+ ## 📁 Directory Structure
131
+
132
+ ```text
133
+ examples/
134
+ ├── README.md # This file
135
+ ├── *.py # Individual examples
136
+ ├── cli/ # CLI-specific examples
137
+ │ └── README.md
138
+ ├── data/ # Example data files
139
+ ├── documentation/ # Documentation examples
140
+ ├── openinference/ # OpenInference integration
141
+ ├── opentelemetry/ # OpenTelemetry integration
142
+ ├── prompt_cli/ # Prompt CLI examples
143
+ ├── sanity/ # Setup/sanity check examples
144
+ ├── test_utils/ # Utilities for testing examples
145
+ └── weaviate_setup/ # Weaviate-specific setup
146
+ ```
147
+
148
+ ## 🎯 Example Categories
149
+
150
+ - **Beginner**: `generic_bot.py`, `generic_bot_sync_function.py`
151
+ - **Intermediate**: Framework integrations, basic RAG
152
+ - **Advanced**: Multi-threading, distributed tracing, custom evaluations, fetch policies
153
+ - **Integration**: Web frameworks, cloud providers, specialized tools
154
+
155
+ ## 📝 Contributing
156
+
157
+ When adding new examples:
158
+ 1. Follow naming convention: `{feature/framework}_bot.py`
159
+ 2. Include docstring explaining what it demonstrates
160
+ 3. Add to appropriate category in this README
161
+ 4. Ensure it runs with `pytest tests/test_examples.py`
162
+
163
+ ## 🔗 Related Documentation
164
+
165
+ - [Main SDK Documentation](../README.md)
166
+ - [Testing Guidelines](../TESTING.md)
167
+ - [Agent Guidelines](../AGENTS.md)
@@ -23,33 +23,13 @@ from pathlib import Path
23
23
 
24
24
  from dotenv import load_dotenv
25
25
  import langwatch
26
+ from examples.test_utils.run_cli import run_cli
26
27
 
27
28
  load_dotenv()
28
29
 
29
30
  CLI_EXECUTABLE = ["npx", "langwatch@latest"]
30
31
 
31
32
 
32
- def run_cli(command: list, cwd: Path):
33
- """Run CLI command and handle errors."""
34
- print(f"▶️ {' '.join(command)}")
35
- try:
36
- result = subprocess.run(
37
- command,
38
- cwd=cwd,
39
- capture_output=True,
40
- text=True,
41
- timeout=30, # 30 second timeout
42
- input="Y\n", # Answer "Y" to prompts
43
- )
44
- if result.returncode != 0:
45
- print(f"❌ Failed: {result.stderr}")
46
- raise subprocess.CalledProcessError(result.returncode, command)
47
- return result
48
- except subprocess.TimeoutExpired:
49
- print("❌ Command timed out after 30 seconds")
50
- raise
51
-
52
-
53
33
  def main():
54
34
  langwatch.setup()
55
35
 
@@ -59,11 +59,11 @@ async def main(message: cl.Message):
59
59
  "span_id": f"span_{nanoid.generate()}",
60
60
  "input": {
61
61
  "type": "text",
62
- "value": message.content,
62
+ "value": "" if index == 0 else message.content,
63
63
  },
64
64
  "output": {
65
65
  "type": "text",
66
- "value": f"{full_response} (span {index})",
66
+ "value": "" if index == 0 else f"{full_response} (span {index})",
67
67
  },
68
68
  "timestamps": {
69
69
  "started_at": int(time.time() * 1000),
@@ -79,10 +79,11 @@ async def main(message: cl.Message):
79
79
  )
80
80
 
81
81
  threads = []
82
- for i in range(10):
82
+ for i in range(2):
83
83
  thread = threading.Thread(target=send_span, args=(i,))
84
84
  threads.append(thread)
85
85
  thread.start()
86
+ time.sleep(30)
86
87
 
87
88
  # Wait for all threads to complete
88
89
  for thread in threads:
@@ -0,0 +1,23 @@
1
+ import subprocess
2
+ from pathlib import Path
3
+
4
+
5
+ def run_cli(command: list, cwd: Path):
6
+ """Run CLI command and handle errors."""
7
+ print(f"▶️ {' '.join(command)}")
8
+ try:
9
+ result = subprocess.run(
10
+ command,
11
+ cwd=cwd,
12
+ capture_output=True,
13
+ text=True,
14
+ timeout=30, # 30 second timeout
15
+ input="Y\n", # Answer "Y" to prompts
16
+ )
17
+ if result.returncode != 0:
18
+ print(f"❌ Failed: {result.stderr}")
19
+ raise subprocess.CalledProcessError(result.returncode, command)
20
+ return result
21
+ except subprocess.TimeoutExpired:
22
+ print("❌ Command timed out after 30 seconds")
23
+ raise
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "langwatch"
3
- version = "0.7.2" # remember to also update it in src/langwatch/__version__.py
3
+ version = "0.8.1" # remember to also update it in src/langwatch/__version__.py
4
4
  description = "LangWatch Python SDK, for monitoring your LLMs"
5
5
  authors = [{ name = "Langwatch Engineers", email = "engineering@langwatch.ai" }]
6
6
  requires-python = ">=3.10,<3.14"
@@ -64,6 +64,11 @@ packages = ["src/langwatch"]
64
64
  testpaths = ["tests"]
65
65
  python_files = "test_*.py"
66
66
  python_functions = "test_*"
67
+ markers = [
68
+ "e2e: End-to-end tests that require external services",
69
+ "integration: Integration tests",
70
+ "unit: Unit tests (default)",
71
+ ]
67
72
 
68
73
  [dependency-groups]
69
74
  dev = ["black>=25.1.0"]
@@ -99,4 +104,8 @@ examples = [
99
104
  "strands-agents[otel]>=1.14.0,<2.0.0",
100
105
  "unstructured[pdf]>=0.18.3",
101
106
  ]
102
- tests = ["pytest-asyncio>=0.21.2"]
107
+ tests = [
108
+ "factory-boy>=3.3.3",
109
+ "pytest-asyncio>=0.21.2",
110
+ "python-dotenv==1.0.1"
111
+ ]
@@ -0,0 +1,7 @@
1
+ # DO NOT EDIT THIS FILE - IT IS TO MAINTAIN PARITY WITH TYPESCRIPT SDK
2
+
3
+ Feature: Prompt Fetch Policy
4
+ As a developer using the Python SDK
5
+ I want to retrieve prompts using with the same behavior as the
6
+ typescript feature: ../typescript-sdk/specs/prompts/fetch-policy.feature
7
+
@@ -8,6 +8,8 @@ from .login import login
8
8
  from .state import get_api_key, get_endpoint
9
9
  from .__version__ import __version__
10
10
  from .utils.initialization import ensure_setup, setup
11
+ from .prompts.types import FetchPolicy
12
+
11
13
 
12
14
  # Type hints for IntelliSense (only imported for typing)
13
15
  from typing import TYPE_CHECKING
@@ -153,5 +155,5 @@ __all__ = [
153
155
  "evaluations",
154
156
  "langchain",
155
157
  "dspy",
156
- "prompts",
158
+ "FetchPolicy",
157
159
  ]
@@ -0,0 +1,3 @@
1
+ """Version information for LangWatch."""
2
+
3
+ __version__ = "0.8.1" # x-release-please-version
@@ -24,6 +24,7 @@ from tqdm import tqdm
24
24
  import pandas as pd
25
25
 
26
26
  from langwatch.types import Money
27
+ from langwatch.utils.exceptions import better_raise_for_status
27
28
 
28
29
 
29
30
  class EvaluationResult(BaseModel):
@@ -150,7 +151,7 @@ class BatchEvaluation:
150
151
  raise ValueError(
151
152
  "API key is not valid, please try to login again with langwatch.login()"
152
153
  )
153
- response.raise_for_status()
154
+ better_raise_for_status(response)
154
155
  experiment_path = response.json()["path"]
155
156
  self.experiment_slug = response.json()["slug"]
156
157
 
@@ -368,7 +369,7 @@ class BatchEvaluation:
368
369
  json=body,
369
370
  timeout=60,
370
371
  )
371
- response.raise_for_status()
372
+ better_raise_for_status(response)
372
373
 
373
374
  def wait_for_completion(self):
374
375
  async def wait_for_completion(self):
@@ -414,7 +415,7 @@ async def run_evaluation(
414
415
 
415
416
  async with httpx.AsyncClient(timeout=900) as client:
416
417
  response = await client.post(**request_params)
417
- response.raise_for_status()
418
+ better_raise_for_status(response)
418
419
 
419
420
  result = response.json()
420
421
 
@@ -462,7 +463,7 @@ def get_dataset(
462
463
 
463
464
  with httpx.Client(timeout=300) as client:
464
465
  response = client.get(**request_params)
465
- response.raise_for_status()
466
+ better_raise_for_status(response)
466
467
 
467
468
  result = response.json()
468
469
 
@@ -5,6 +5,7 @@ import time
5
5
  import warnings
6
6
  import dspy
7
7
  from typing import Callable, List, Optional, Any, Type, Union
8
+ from langwatch.utils.exceptions import better_raise_for_status
8
9
  from langwatch.utils.transformation import truncate_object_recursively
9
10
  from langwatch.telemetry.tracing import LangWatchTrace
10
11
  from typing_extensions import TypedDict
@@ -193,7 +194,7 @@ class LangWatchDSPy:
193
194
  raise ValueError(
194
195
  "API key is not valid, please try to login again with langwatch.login()"
195
196
  )
196
- response.raise_for_status()
197
+ better_raise_for_status(response)
197
198
 
198
199
  if optimizer and evaluator:
199
200
  raise ValueError("You can only provide an optimizer or an evaluator, not both.")
@@ -386,7 +387,7 @@ class LangWatchDSPy:
386
387
  data=json.dumps(data), # type: ignore
387
388
  timeout=60,
388
389
  )
389
- response.raise_for_status()
390
+ better_raise_for_status(response)
390
391
  self.steps_buffer = []
391
392
 
392
393
  def tracer(self, trace: LangWatchTrace):
@@ -34,6 +34,7 @@ import langwatch
34
34
  from langwatch.attributes import AttributeKey
35
35
  from langwatch.domain import Money, TypedValueJson
36
36
  from langwatch.telemetry.tracing import LangWatchTrace
37
+ from langwatch.utils.exceptions import better_raise_for_status
37
38
  from langwatch.utils.transformation import SerializableWithStringFallback
38
39
 
39
40
  from coolname import generate_slug # type: ignore
@@ -132,7 +133,7 @@ class Evaluation:
132
133
  raise ValueError(
133
134
  "API key is not valid, please try to login again with langwatch.login()"
134
135
  )
135
- response.raise_for_status()
136
+ better_raise_for_status(response)
136
137
  response_json = response.json()
137
138
  experiment_path = response_json["path"]
138
139
  self.experiment_slug = response_json["slug"]
@@ -388,7 +389,7 @@ class Evaluation:
388
389
  data=json.dumps(body, cls=SerializableWithStringFallback), # type: ignore
389
390
  timeout=60,
390
391
  )
391
- response.raise_for_status()
392
+ better_raise_for_status(response)
392
393
 
393
394
  def _wait_for_completion(self):
394
395
  async def wait_for_completion(self: Evaluation):
@@ -12,6 +12,7 @@ from langwatch.telemetry.span import LangWatchSpan
12
12
  from langwatch.telemetry.context import get_current_span
13
13
  from langwatch.state import get_api_key, get_endpoint, get_instance
14
14
  from langwatch.attributes import AttributeKey
15
+ from langwatch.utils.exceptions import EvaluatorException, better_raise_for_status
15
16
  from pydantic import BaseModel
16
17
 
17
18
  from langwatch.types import (
@@ -101,7 +102,7 @@ def evaluate(
101
102
  try:
102
103
  with httpx.Client(timeout=900) as client:
103
104
  response = client.post(**request_params)
104
- response.raise_for_status()
105
+ better_raise_for_status(response, cls=EvaluatorException)
105
106
  except Exception as e:
106
107
  return _handle_exception(e, span, as_guardrail)
107
108
 
@@ -156,7 +157,7 @@ async def async_evaluate(
156
157
  try:
157
158
  async with httpx.AsyncClient(timeout=900) as client:
158
159
  response = await client.post(**request_params)
159
- response.raise_for_status()
160
+ better_raise_for_status(response)
160
161
  except Exception as e:
161
162
  return _handle_exception(e, span, as_guardrail)
162
163
 
@@ -1,6 +1,7 @@
1
1
  import httpx
2
2
 
3
3
  import langwatch
4
+ from langwatch.utils.exceptions import better_raise_for_status
4
5
  from .state import get_api_key, get_endpoint
5
6
  from getpass import getpass
6
7
 
@@ -25,7 +26,7 @@ def login(relogin=False):
25
26
  )
26
27
  if response.status_code == 401:
27
28
  raise ValueError("API key is not valid, please try to login again")
28
- response.raise_for_status()
29
+ better_raise_for_status(response)
29
30
 
30
31
  langwatch.setup(api_key=api_key)
31
32
  print("LangWatch API key set")
@@ -0,0 +1,36 @@
1
+ from .prompt_facade import PromptsFacade
2
+ from .types import FetchPolicy
3
+
4
+ __all__ = [
5
+ "PromptsFacade",
6
+ "FetchPolicy",
7
+ ]
8
+
9
+ # Cached PromptsFacade instance for module-level method delegation
10
+ _facade_instance: PromptsFacade | None = None
11
+
12
+
13
+ def _get_facade() -> PromptsFacade:
14
+ """Get or create the cached PromptsFacade instance."""
15
+ global _facade_instance
16
+ if _facade_instance is None:
17
+ _facade_instance = PromptsFacade.from_global()
18
+ return _facade_instance
19
+
20
+
21
+ def __getattr__(name: str):
22
+ """
23
+ Delegate attribute access to PromptsFacade instance.
24
+
25
+ This allows langwatch.prompts to work both as:
26
+ - A module (for submodule access like `from langwatch.prompts.types import FetchPolicy`)
27
+ - A facade (for method access like `langwatch.prompts.get(...)`)
28
+
29
+ When Python imports `langwatch.prompts.types`, it stores `langwatch.prompts` as a module
30
+ in sys.modules, which shadows the lazy-loaded PromptsFacade instance from langwatch.__getattr__.
31
+ This __getattr__ ensures method calls still work by delegating to a PromptsFacade instance.
32
+ """
33
+ facade = _get_facade()
34
+ if hasattr(facade, name):
35
+ return getattr(facade, name)
36
+ raise AttributeError(f"module '{__name__}' has no attribute '{name}'")
@@ -139,7 +139,8 @@ def unwrap_response(
139
139
  error_detail = f": {msg}" if msg else ""
140
140
  raise ValueError(f"Invalid prompt request{error_detail}")
141
141
  if status == 401:
142
- raise RuntimeError("Authentication error")
142
+ error_detail = f": {msg}" if msg else ""
143
+ raise RuntimeError(f"Authentication error{error_detail}")
143
144
  if status >= 500:
144
145
  error_detail = f" - {msg}" if msg else ""
145
146
  raise RuntimeError(
@@ -25,8 +25,13 @@ class LocalPromptLoader:
25
25
  """Loads prompts from local files in CLI format."""
26
26
 
27
27
  def __init__(self, base_path: Optional[Path] = None):
28
- """Initialize with base path (defaults to current working directory)."""
29
- self.base_path = base_path or Path.cwd()
28
+ """Initialize with base path (defaults to current working directory at load time)."""
29
+ self._base_path = base_path
30
+
31
+ @property
32
+ def base_path(self) -> Path:
33
+ """Get the base path, defaulting to current working directory if not set."""
34
+ return self._base_path or Path.cwd()
30
35
 
31
36
  def load_prompt(self, prompt_id: str) -> Optional[PromptData]:
32
37
  """