langwatch 0.7.1__tar.gz → 0.8.0__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 (529) hide show
  1. langwatch-0.8.0/AGENTS.md +46 -0
  2. {langwatch-0.7.1 → langwatch-0.8.0}/CHANGELOG.md +18 -0
  3. {langwatch-0.7.1 → langwatch-0.8.0}/Makefile +13 -3
  4. {langwatch-0.7.1 → langwatch-0.8.0}/PKG-INFO +1 -1
  5. langwatch-0.8.0/examples/README.md +167 -0
  6. {langwatch-0.7.1 → langwatch-0.8.0}/examples/cli/guaranteed_availability_with_cli.py +1 -21
  7. {langwatch-0.7.1 → langwatch-0.8.0}/examples/distributed_tracing.py +4 -3
  8. langwatch-0.8.0/examples/test_utils/run_cli.py +23 -0
  9. {langwatch-0.7.1 → langwatch-0.8.0}/pyproject.toml +11 -2
  10. langwatch-0.8.0/specs/prompts/fetch-policy.feature +7 -0
  11. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/__init__.py +3 -1
  12. langwatch-0.8.0/src/langwatch/__version__.py +3 -0
  13. langwatch-0.8.0/src/langwatch/prompts/__init__.py +36 -0
  14. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/errors.py +2 -1
  15. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/local_loader.py +7 -2
  16. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/prompt_facade.py +95 -5
  17. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/types/__init__.py +4 -0
  18. langwatch-0.8.0/src/langwatch/prompts/types/fetch_policy.py +26 -0
  19. langwatch-0.8.0/tests/e2e/test_fetch_policies_e2e.py +356 -0
  20. langwatch-0.8.0/tests/prompts/test_fetch_policies.py +560 -0
  21. {langwatch-0.7.1 → langwatch-0.8.0}/tests/test_examples.py +17 -9
  22. {langwatch-0.7.1 → langwatch-0.8.0}/uv.lock +8 -2
  23. langwatch-0.7.1/src/langwatch/__version__.py +0 -3
  24. langwatch-0.7.1/src/langwatch/prompts/__init__.py +0 -5
  25. langwatch-0.7.1/src/langwatch/prompts/types.py +0 -16
  26. {langwatch-0.7.1 → langwatch-0.8.0}/.editorconfig +0 -0
  27. {langwatch-0.7.1 → langwatch-0.8.0}/.env.example +0 -0
  28. {langwatch-0.7.1 → langwatch-0.8.0}/.gitignore +0 -0
  29. {langwatch-0.7.1 → langwatch-0.8.0}/README.md +0 -0
  30. {langwatch-0.7.1 → langwatch-0.8.0}/examples/__init__.py +0 -0
  31. {langwatch-0.7.1 → langwatch-0.8.0}/examples/azure_openai_stream_bot.py +0 -0
  32. {langwatch-0.7.1 → langwatch-0.8.0}/examples/cli/README.md +0 -0
  33. {langwatch-0.7.1 → langwatch-0.8.0}/examples/custom_evaluation_bot.py +0 -0
  34. {langwatch-0.7.1 → langwatch-0.8.0}/examples/data/rag_dspy_bot.json +0 -0
  35. {langwatch-0.7.1 → langwatch-0.8.0}/examples/dataset_kitchen_sink.py +0 -0
  36. {langwatch-0.7.1 → langwatch-0.8.0}/examples/documentation/openai_langwatch.py +0 -0
  37. {langwatch-0.7.1 → langwatch-0.8.0}/examples/documentation/openai_openinference.py +0 -0
  38. {langwatch-0.7.1 → langwatch-0.8.0}/examples/dspy_bot.py +0 -0
  39. {langwatch-0.7.1 → langwatch-0.8.0}/examples/dspy_visualization.ipynb +0 -0
  40. {langwatch-0.7.1 → langwatch-0.8.0}/examples/evaluation_manual_call.py +0 -0
  41. {langwatch-0.7.1 → langwatch-0.8.0}/examples/fastapi_app.py +0 -0
  42. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot.py +0 -0
  43. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_async_streaming.py +0 -0
  44. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_exception.py +0 -0
  45. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_rag.py +0 -0
  46. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_rag_expected_output.py +0 -0
  47. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_rag_multithreaded.py +0 -0
  48. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_span_context_manager.py +0 -0
  49. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_span_low_level.py +0 -0
  50. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_streaming.py +0 -0
  51. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_sync_function.py +0 -0
  52. {langwatch-0.7.1 → langwatch-0.8.0}/examples/generic_bot_update_metadata_later.py +0 -0
  53. {langwatch-0.7.1 → langwatch-0.8.0}/examples/guardrails.py +0 -0
  54. {langwatch-0.7.1 → langwatch-0.8.0}/examples/guardrails_parallel.py +0 -0
  55. {langwatch-0.7.1 → langwatch-0.8.0}/examples/guardrails_without_tracing.py +0 -0
  56. {langwatch-0.7.1 → langwatch-0.8.0}/examples/haystack_bot.py +0 -0
  57. {langwatch-0.7.1 → langwatch-0.8.0}/examples/langchain_bot.py +0 -0
  58. {langwatch-0.7.1 → langwatch-0.8.0}/examples/langchain_bot_with_memory.py +0 -0
  59. {langwatch-0.7.1 → langwatch-0.8.0}/examples/langchain_rag_bot.py +0 -0
  60. {langwatch-0.7.1 → langwatch-0.8.0}/examples/langchain_rag_bot_vertex_ai.py +0 -0
  61. {langwatch-0.7.1 → langwatch-0.8.0}/examples/langchain_rag_bot_with_threads.py +0 -0
  62. {langwatch-0.7.1 → langwatch-0.8.0}/examples/langgraph_rag_bot_with_threads.py +0 -0
  63. {langwatch-0.7.1 → langwatch-0.8.0}/examples/langwatch_docs_rag_evaluation.ipynb +0 -0
  64. {langwatch-0.7.1 → langwatch-0.8.0}/examples/litellm_bot.py +0 -0
  65. {langwatch-0.7.1 → langwatch-0.8.0}/examples/offline_evaluation.ipynb +0 -0
  66. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot.py +0 -0
  67. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot_disable_trace.py +0 -0
  68. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot_function_call.py +0 -0
  69. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot_max_string_length.py +0 -0
  70. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot_max_string_length_none.py +0 -0
  71. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot_otel_metrics.py +0 -0
  72. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot_rag.py +0 -0
  73. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openai_bot_sampling_rate.py +0 -0
  74. {langwatch-0.7.1 → langwatch-0.8.0}/examples/openinference/google_adk.py +0 -0
  75. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openinference_dspy_bot.py +0 -0
  76. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openinference_haystack.py +0 -0
  77. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openinference_langchain_bot.py +0 -0
  78. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openinference_openai_assistants_api_bot.py +0 -0
  79. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openinference_openai_bot.py +0 -0
  80. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openllmetry_anthropic_bot.py +0 -0
  81. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openllmetry_crewai_bot.py +0 -0
  82. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openllmetry_langchain_bot.py +0 -0
  83. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/openllmetry_openai_bot.py +0 -0
  84. {langwatch-0.7.1 → langwatch-0.8.0}/examples/opentelemetry/traditional_instrumentation_fastapi_app.py +0 -0
  85. {langwatch-0.7.1 → langwatch-0.8.0}/examples/pdf_parsing_evaluation.ipynb +0 -0
  86. {langwatch-0.7.1 → langwatch-0.8.0}/examples/prompt_cli/.gitignore +0 -0
  87. {langwatch-0.7.1 → langwatch-0.8.0}/examples/prompt_cli/main.py +0 -0
  88. {langwatch-0.7.1 → langwatch-0.8.0}/examples/prompt_cli/prompts/agent/performance.prompt.yaml +0 -0
  89. {langwatch-0.7.1 → langwatch-0.8.0}/examples/prompt_management_fastapi.py +0 -0
  90. {langwatch-0.7.1 → langwatch-0.8.0}/examples/sanity/setup_example.py +0 -0
  91. {langwatch-0.7.1 → langwatch-0.8.0}/examples/span_evaluation.py +0 -0
  92. {langwatch-0.7.1 → langwatch-0.8.0}/examples/strands_bot.py +0 -0
  93. {langwatch-0.7.1 → langwatch-0.8.0}/examples/streamlit_openai_assistants_api_bot.py +0 -0
  94. {langwatch-0.7.1 → langwatch-0.8.0}/examples/weaviate_dspy_visualization.ipynb +0 -0
  95. {langwatch-0.7.1 → langwatch-0.8.0}/examples/weaviate_setup/.gitignore +0 -0
  96. {langwatch-0.7.1 → langwatch-0.8.0}/examples/weaviate_setup/Weaviate-Import.ipynb +0 -0
  97. {langwatch-0.7.1 → langwatch-0.8.0}/examples/weaviate_setup/docker-compose.yml +0 -0
  98. {langwatch-0.7.1 → langwatch-0.8.0}/examples/weaviate_setup/optimization_screenshot.png +0 -0
  99. {langwatch-0.7.1 → langwatch-0.8.0}/examples/weaviate_setup/tracing_screenshot.png +0 -0
  100. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/attributes.py +0 -0
  101. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/batch_evaluation.py +0 -0
  102. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/client.py +0 -0
  103. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/dataset/__init__.py +0 -0
  104. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/domain/__init__.py +0 -0
  105. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/dspy/__init__.py +0 -0
  106. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/evaluation/__init__.py +0 -0
  107. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/evaluation/evaluation.py +0 -0
  108. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/evaluations.py +0 -0
  109. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/exporters/filterable_batch_span_exporter.py +0 -0
  110. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/__init__.py +0 -0
  111. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/__init__.py +0 -0
  112. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/__init__.py +0 -0
  113. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/delete_api_annotations_id.py +0 -0
  114. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/delete_api_prompts_by_id.py +0 -0
  115. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/delete_api_scenario_events.py +0 -0
  116. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_annotations.py +0 -0
  117. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_annotations_id.py +0 -0
  118. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_annotations_trace_id.py +0 -0
  119. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_dataset_by_slug_or_id.py +0 -0
  120. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_prompts.py +0 -0
  121. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_prompts_by_id.py +0 -0
  122. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_prompts_by_id_versions.py +0 -0
  123. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_api_trace_id.py +0 -0
  124. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/get_index.py +0 -0
  125. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/patch_api_annotations_id.py +0 -0
  126. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_annotations_trace_id.py +0 -0
  127. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_dataset_by_slug_entries.py +0 -0
  128. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_prompts.py +0 -0
  129. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_prompts_by_id_sync.py +0 -0
  130. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_scenario_events.py +0 -0
  131. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_trace_id_share.py +0 -0
  132. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_api_trace_id_unshare.py +0 -0
  133. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/post_index.py +0 -0
  134. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/default/put_api_prompts_by_id.py +0 -0
  135. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/traces/__init__.py +0 -0
  136. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/api/traces/post_api_trace_search.py +0 -0
  137. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/client.py +0 -0
  138. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/errors.py +0 -0
  139. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/__init__.py +0 -0
  140. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/annotation.py +0 -0
  141. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/dataset_post_entries.py +0 -0
  142. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/dataset_post_entries_entries_item.py +0 -0
  143. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_annotations_id_response_200.py +0 -0
  144. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_200.py +0 -0
  145. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_400.py +0 -0
  146. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_401.py +0 -0
  147. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_404.py +0 -0
  148. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_422.py +0 -0
  149. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_prompts_by_id_response_500.py +0 -0
  150. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_200.py +0 -0
  151. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_400.py +0 -0
  152. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_401.py +0 -0
  153. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_422.py +0 -0
  154. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/delete_api_scenario_events_response_500.py +0 -0
  155. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/error.py +0 -0
  156. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/evaluation.py +0 -0
  157. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/evaluation_timestamps.py +0 -0
  158. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_200.py +0 -0
  159. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item.py +0 -0
  160. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item_entry.py +0 -0
  161. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_400.py +0 -0
  162. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_401.py +0 -0
  163. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_404.py +0 -0
  164. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_422.py +0 -0
  165. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_dataset_by_slug_or_id_response_500.py +0 -0
  166. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200.py +0 -0
  167. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations.py +0 -0
  168. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations_inline.py +0 -0
  169. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations_inline_column_types_item.py +0 -0
  170. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_demonstrations_inline_records.py +0 -0
  171. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_inputs_item.py +0 -0
  172. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_inputs_item_type.py +0 -0
  173. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_messages_item.py +0 -0
  174. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_messages_item_role.py +0 -0
  175. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_outputs_item.py +0 -0
  176. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_outputs_item_json_schema.py +0 -0
  177. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_outputs_item_type.py +0 -0
  178. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique.py +0 -0
  179. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_demonstrations.py +0 -0
  180. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline.py +0 -0
  181. {langwatch-0.7.1 → langwatch-0.8.0}/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
  182. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline_records.py +0 -0
  183. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_prompting_technique_type.py +0 -0
  184. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_response_format.py +0 -0
  185. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_response_format_json_schema_type_0.py +0 -0
  186. {langwatch-0.7.1 → langwatch-0.8.0}/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
  187. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_response_format_type.py +0 -0
  188. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_200_scope.py +0 -0
  189. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_400.py +0 -0
  190. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_401.py +0 -0
  191. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_404.py +0 -0
  192. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_422.py +0 -0
  193. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_response_500.py +0 -0
  194. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item.py +0 -0
  195. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_demonstrations.py +0 -0
  196. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_demonstrations_inline.py +0 -0
  197. {langwatch-0.7.1 → langwatch-0.8.0}/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
  198. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_demonstrations_inline_records.py +0 -0
  199. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_inputs_item.py +0 -0
  200. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_inputs_item_type.py +0 -0
  201. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_messages_item.py +0 -0
  202. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_messages_item_role.py +0 -0
  203. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_outputs_item.py +0 -0
  204. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_outputs_item_json_schema.py +0 -0
  205. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_outputs_item_type.py +0 -0
  206. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique.py +0 -0
  207. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_demonstrations.py +0 -0
  208. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_demonstrations_inline.py +0 -0
  209. {langwatch-0.7.1 → langwatch-0.8.0}/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
  210. {langwatch-0.7.1 → langwatch-0.8.0}/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
  211. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_prompting_technique_type.py +0 -0
  212. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_response_format.py +0 -0
  213. {langwatch-0.7.1 → langwatch-0.8.0}/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
  214. {langwatch-0.7.1 → langwatch-0.8.0}/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
  215. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_response_format_type.py +0 -0
  216. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_200_item_scope.py +0 -0
  217. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_400.py +0 -0
  218. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_401.py +0 -0
  219. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_404.py +0 -0
  220. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_422.py +0 -0
  221. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_by_id_versions_response_500.py +0 -0
  222. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item.py +0 -0
  223. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations.py +0 -0
  224. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations_inline.py +0 -0
  225. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations_inline_column_types_item.py +0 -0
  226. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_demonstrations_inline_records.py +0 -0
  227. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_inputs_item.py +0 -0
  228. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_inputs_item_type.py +0 -0
  229. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_messages_item.py +0 -0
  230. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_messages_item_role.py +0 -0
  231. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_outputs_item.py +0 -0
  232. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_outputs_item_json_schema.py +0 -0
  233. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_outputs_item_type.py +0 -0
  234. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique.py +0 -0
  235. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations.py +0 -0
  236. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations_inline.py +0 -0
  237. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  238. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_demonstrations_inline_records.py +0 -0
  239. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_prompting_technique_type.py +0 -0
  240. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format.py +0 -0
  241. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format_json_schema_type_0.py +0 -0
  242. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format_json_schema_type_0_schema.py +0 -0
  243. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_response_format_type.py +0 -0
  244. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_200_item_scope.py +0 -0
  245. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_400.py +0 -0
  246. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_401.py +0 -0
  247. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_422.py +0 -0
  248. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_prompts_response_500.py +0 -0
  249. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200.py +0 -0
  250. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_error_type_0.py +0 -0
  251. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_evaluations_item.py +0 -0
  252. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_evaluations_item_error.py +0 -0
  253. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_evaluations_item_timestamps.py +0 -0
  254. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_input.py +0 -0
  255. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_metadata.py +0 -0
  256. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_metrics.py +0 -0
  257. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_output.py +0 -0
  258. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item.py +0 -0
  259. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_error_type_0.py +0 -0
  260. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_input.py +0 -0
  261. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_input_value_item.py +0 -0
  262. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_metrics.py +0 -0
  263. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_output.py +0 -0
  264. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_output_value_item.py +0 -0
  265. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_params.py +0 -0
  266. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_spans_item_timestamps.py +0 -0
  267. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_api_trace_id_response_200_timestamps.py +0 -0
  268. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item.py +0 -0
  269. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_messages_item.py +0 -0
  270. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_messages_item_role.py +0 -0
  271. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0.py +0 -0
  272. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0_json_schema.py +0 -0
  273. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0_json_schema_schema.py +0 -0
  274. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_response_format_type_0_type.py +0 -0
  275. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_200_item_scope.py +0 -0
  276. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_400.py +0 -0
  277. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_401.py +0 -0
  278. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/get_index_response_500.py +0 -0
  279. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/input_.py +0 -0
  280. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/metadata.py +0 -0
  281. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/metrics.py +0 -0
  282. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/output.py +0 -0
  283. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/pagination.py +0 -0
  284. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/patch_api_annotations_id_body.py +0 -0
  285. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/patch_api_annotations_id_response_200.py +0 -0
  286. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_annotations_trace_id_body.py +0 -0
  287. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body.py +0 -0
  288. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_inputs_item.py +0 -0
  289. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_inputs_item_type.py +0 -0
  290. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_messages_item.py +0 -0
  291. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_messages_item_role.py +0 -0
  292. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_outputs_item.py +0 -0
  293. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_outputs_item_json_schema.py +0 -0
  294. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_outputs_item_type.py +0 -0
  295. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_schema_version.py +0 -0
  296. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_body_scope.py +0 -0
  297. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body.py +0 -0
  298. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data.py +0 -0
  299. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_demonstrations.py +0 -0
  300. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_demonstrations_inline.py +0 -0
  301. {langwatch-0.7.1 → langwatch-0.8.0}/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
  302. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_demonstrations_inline_records.py +0 -0
  303. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_inputs_item.py +0 -0
  304. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_inputs_item_type.py +0 -0
  305. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_messages_item.py +0 -0
  306. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_messages_item_role.py +0 -0
  307. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_outputs_item.py +0 -0
  308. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_outputs_item_json_schema.py +0 -0
  309. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_outputs_item_type.py +0 -0
  310. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique.py +0 -0
  311. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_demonstrations.py +0 -0
  312. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_demonstrations_inline.py +0 -0
  313. {langwatch-0.7.1 → langwatch-0.8.0}/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
  314. {langwatch-0.7.1 → langwatch-0.8.0}/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
  315. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_prompting_technique_type.py +0 -0
  316. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_response_format.py +0 -0
  317. {langwatch-0.7.1 → langwatch-0.8.0}/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
  318. {langwatch-0.7.1 → langwatch-0.8.0}/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
  319. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_body_config_data_response_format_type.py +0 -0
  320. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200.py +0 -0
  321. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_action.py +0 -0
  322. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info.py +0 -0
  323. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_conflict_info_remote_config_data.py +0 -0
  324. {langwatch-0.7.1 → langwatch-0.8.0}/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
  325. {langwatch-0.7.1 → langwatch-0.8.0}/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
  326. {langwatch-0.7.1 → langwatch-0.8.0}/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
  327. {langwatch-0.7.1 → langwatch-0.8.0}/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
  328. {langwatch-0.7.1 → langwatch-0.8.0}/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
  329. {langwatch-0.7.1 → langwatch-0.8.0}/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
  330. {langwatch-0.7.1 → langwatch-0.8.0}/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
  331. {langwatch-0.7.1 → langwatch-0.8.0}/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
  332. {langwatch-0.7.1 → langwatch-0.8.0}/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
  333. {langwatch-0.7.1 → langwatch-0.8.0}/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
  334. {langwatch-0.7.1 → langwatch-0.8.0}/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
  335. {langwatch-0.7.1 → langwatch-0.8.0}/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
  336. {langwatch-0.7.1 → langwatch-0.8.0}/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
  337. {langwatch-0.7.1 → langwatch-0.8.0}/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
  338. {langwatch-0.7.1 → langwatch-0.8.0}/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
  339. {langwatch-0.7.1 → langwatch-0.8.0}/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
  340. {langwatch-0.7.1 → langwatch-0.8.0}/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
  341. {langwatch-0.7.1 → langwatch-0.8.0}/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
  342. {langwatch-0.7.1 → langwatch-0.8.0}/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
  343. {langwatch-0.7.1 → langwatch-0.8.0}/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
  344. {langwatch-0.7.1 → langwatch-0.8.0}/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
  345. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt.py +0 -0
  346. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_demonstrations.py +0 -0
  347. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_demonstrations_inline.py +0 -0
  348. {langwatch-0.7.1 → langwatch-0.8.0}/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
  349. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_demonstrations_inline_records.py +0 -0
  350. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_inputs_item.py +0 -0
  351. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_inputs_item_type.py +0 -0
  352. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_messages_item.py +0 -0
  353. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_messages_item_role.py +0 -0
  354. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_outputs_item.py +0 -0
  355. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_outputs_item_json_schema.py +0 -0
  356. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_outputs_item_type.py +0 -0
  357. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique.py +0 -0
  358. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_demonstrations.py +0 -0
  359. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_demonstrations_inline.py +0 -0
  360. {langwatch-0.7.1 → langwatch-0.8.0}/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
  361. {langwatch-0.7.1 → langwatch-0.8.0}/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
  362. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_prompting_technique_type.py +0 -0
  363. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_response_format.py +0 -0
  364. {langwatch-0.7.1 → langwatch-0.8.0}/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
  365. {langwatch-0.7.1 → langwatch-0.8.0}/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
  366. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_response_format_type.py +0 -0
  367. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_200_prompt_scope.py +0 -0
  368. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_400.py +0 -0
  369. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_401.py +0 -0
  370. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_422.py +0 -0
  371. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_by_id_sync_response_500.py +0 -0
  372. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200.py +0 -0
  373. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations.py +0 -0
  374. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations_inline.py +0 -0
  375. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations_inline_column_types_item.py +0 -0
  376. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_demonstrations_inline_records.py +0 -0
  377. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_inputs_item.py +0 -0
  378. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_inputs_item_type.py +0 -0
  379. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_messages_item.py +0 -0
  380. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_messages_item_role.py +0 -0
  381. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_outputs_item.py +0 -0
  382. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_outputs_item_json_schema.py +0 -0
  383. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_outputs_item_type.py +0 -0
  384. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique.py +0 -0
  385. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations.py +0 -0
  386. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations_inline.py +0 -0
  387. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations_inline_column_types_item.py +0 -0
  388. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_demonstrations_inline_records.py +0 -0
  389. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_prompting_technique_type.py +0 -0
  390. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format.py +0 -0
  391. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format_json_schema_type_0.py +0 -0
  392. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format_json_schema_type_0_schema.py +0 -0
  393. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_response_format_type.py +0 -0
  394. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_200_scope.py +0 -0
  395. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_400.py +0 -0
  396. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_401.py +0 -0
  397. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_409.py +0 -0
  398. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_422.py +0 -0
  399. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_prompts_response_500.py +0 -0
  400. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_0.py +0 -0
  401. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_0_metadata.py +0 -0
  402. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1.py +0 -0
  403. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1_results_type_0.py +0 -0
  404. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1_results_type_0_verdict.py +0 -0
  405. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_1_status.py +0 -0
  406. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_2.py +0 -0
  407. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_body_type_2_messages_item.py +0 -0
  408. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_201.py +0 -0
  409. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_400.py +0 -0
  410. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_401.py +0 -0
  411. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_422.py +0 -0
  412. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_scenario_events_response_500.py +0 -0
  413. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_trace_id_share_response_200.py +0 -0
  414. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_api_trace_id_unshare_response_200.py +0 -0
  415. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body.py +0 -0
  416. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_inputs_item.py +0 -0
  417. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_inputs_item_type.py +0 -0
  418. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_messages_item.py +0 -0
  419. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_messages_item_role.py +0 -0
  420. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_outputs_item.py +0 -0
  421. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_outputs_item_json_schema.py +0 -0
  422. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_outputs_item_type.py +0 -0
  423. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_body_scope.py +0 -0
  424. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200.py +0 -0
  425. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_messages_item.py +0 -0
  426. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_messages_item_role.py +0 -0
  427. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0.py +0 -0
  428. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0_json_schema.py +0 -0
  429. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0_json_schema_schema.py +0 -0
  430. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_response_format_type_0_type.py +0 -0
  431. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_200_scope.py +0 -0
  432. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_400.py +0 -0
  433. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_401.py +0 -0
  434. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/post_index_response_500.py +0 -0
  435. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body.py +0 -0
  436. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_inputs_item.py +0 -0
  437. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_inputs_item_type.py +0 -0
  438. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_messages_item.py +0 -0
  439. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_messages_item_role.py +0 -0
  440. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_outputs_item.py +0 -0
  441. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_outputs_item_json_schema.py +0 -0
  442. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_outputs_item_type.py +0 -0
  443. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_schema_version.py +0 -0
  444. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_body_scope.py +0 -0
  445. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200.py +0 -0
  446. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations.py +0 -0
  447. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations_inline.py +0 -0
  448. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations_inline_column_types_item.py +0 -0
  449. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_demonstrations_inline_records.py +0 -0
  450. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_inputs_item.py +0 -0
  451. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_inputs_item_type.py +0 -0
  452. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_messages_item.py +0 -0
  453. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_messages_item_role.py +0 -0
  454. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_outputs_item.py +0 -0
  455. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_outputs_item_json_schema.py +0 -0
  456. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_outputs_item_type.py +0 -0
  457. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique.py +0 -0
  458. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_demonstrations.py +0 -0
  459. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline.py +0 -0
  460. {langwatch-0.7.1 → langwatch-0.8.0}/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
  461. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_demonstrations_inline_records.py +0 -0
  462. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_prompting_technique_type.py +0 -0
  463. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_response_format.py +0 -0
  464. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_response_format_json_schema_type_0.py +0 -0
  465. {langwatch-0.7.1 → langwatch-0.8.0}/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
  466. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_response_format_type.py +0 -0
  467. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_200_scope.py +0 -0
  468. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_400.py +0 -0
  469. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_401.py +0 -0
  470. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_404.py +0 -0
  471. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_409.py +0 -0
  472. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_422.py +0 -0
  473. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/put_api_prompts_by_id_response_500.py +0 -0
  474. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/search_request.py +0 -0
  475. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/search_request_filters.py +0 -0
  476. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/search_response.py +0 -0
  477. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/timestamps.py +0 -0
  478. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/models/trace.py +0 -0
  479. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/py.typed +0 -0
  480. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/generated/langwatch_rest_api_client/types.py +0 -0
  481. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/guardrails.py +0 -0
  482. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/langchain.py +0 -0
  483. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/litellm.py +0 -0
  484. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/login.py +0 -0
  485. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/openai.py +0 -0
  486. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/decorators/prompt_service_tracing.py +0 -0
  487. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/decorators/prompt_tracing.py +0 -0
  488. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/prompt.py +0 -0
  489. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/prompt_api_service.py +0 -0
  490. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/types/prompt_data.py +0 -0
  491. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/prompts/types/structures.py +0 -0
  492. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/py.typed +0 -0
  493. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/state.py +0 -0
  494. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/telemetry/__tests__/test_tracing.py +0 -0
  495. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/telemetry/context.py +0 -0
  496. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/telemetry/sampling.py +0 -0
  497. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/telemetry/span.py +0 -0
  498. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/telemetry/tracing.py +0 -0
  499. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/telemetry/types.py +0 -0
  500. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/tracer.py +0 -0
  501. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/types.py +0 -0
  502. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/utils/__init__.py +0 -0
  503. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/utils/capture.py +0 -0
  504. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/utils/exceptions.py +0 -0
  505. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/utils/initialization.py +0 -0
  506. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/utils/module.py +0 -0
  507. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/utils/transformation.py +0 -0
  508. {langwatch-0.7.1 → langwatch-0.8.0}/src/langwatch/utils/utils.py +0 -0
  509. {langwatch-0.7.1 → langwatch-0.8.0}/tests/conftest.py +0 -0
  510. {langwatch-0.7.1 → langwatch-0.8.0}/tests/exporters/test_filterable_batch_span_exporter.py +0 -0
  511. {langwatch-0.7.1 → langwatch-0.8.0}/tests/fixtures/README.md +0 -0
  512. {langwatch-0.7.1 → langwatch-0.8.0}/tests/fixtures/__init__.py +0 -0
  513. {langwatch-0.7.1 → langwatch-0.8.0}/tests/fixtures/get_response_factories.py +0 -0
  514. {langwatch-0.7.1 → langwatch-0.8.0}/tests/fixtures/prompts/cli.py +0 -0
  515. {langwatch-0.7.1 → langwatch-0.8.0}/tests/fixtures/prompts/general.py +0 -0
  516. {langwatch-0.7.1 → langwatch-0.8.0}/tests/fixtures/prompts/prompt_fixtures.py +0 -0
  517. {langwatch-0.7.1 → langwatch-0.8.0}/tests/fixtures/span_exporter.py +0 -0
  518. {langwatch-0.7.1 → langwatch-0.8.0}/tests/prompts/test_guaranteed_availability.py +0 -0
  519. {langwatch-0.7.1 → langwatch-0.8.0}/tests/prompts/test_local_loader.py +0 -0
  520. {langwatch-0.7.1 → langwatch-0.8.0}/tests/prompts/test_prompt.py +0 -0
  521. {langwatch-0.7.1 → langwatch-0.8.0}/tests/prompts/test_prompt_service_tracing.py +0 -0
  522. {langwatch-0.7.1 → langwatch-0.8.0}/tests/prompts/test_prompt_tracing.py +0 -0
  523. {langwatch-0.7.1 → langwatch-0.8.0}/tests/telemetry/test_context.py +0 -0
  524. {langwatch-0.7.1 → langwatch-0.8.0}/tests/telemetry/test_tracing.py +0 -0
  525. {langwatch-0.7.1 → langwatch-0.8.0}/tests/test_cli_runner.py +0 -0
  526. {langwatch-0.7.1 → langwatch-0.8.0}/tests/test_client.py +0 -0
  527. {langwatch-0.7.1 → langwatch-0.8.0}/tests/test_login.py +0 -0
  528. {langwatch-0.7.1 → langwatch-0.8.0}/tests/test_version.py +0 -0
  529. {langwatch-0.7.1 → langwatch-0.8.0}/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,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.8.0](https://github.com/langwatch/langwatch/compare/python-sdk@v0.7.2...python-sdk@v0.8.0) (2025-12-16)
4
+
5
+
6
+ ### Features
7
+
8
+ * implement FetchPolicy enum for Python SDK ([#989](https://github.com/langwatch/langwatch/issues/989)) ([43de904](https://github.com/langwatch/langwatch/commit/43de904de08ec54a78aece35da155a8a3cb4289d))
9
+
10
+ ### Bug Fixes
11
+
12
+ * rerun evaluations if new spans arrive even after 30s but less than 1h ([79ba316](https://github.com/langwatch/langwatch/commit/79ba3163c64f224e3d2b640b5340f1503fc57c48))
13
+
14
+ ## [0.7.2](https://github.com/langwatch/langwatch/compare/python-sdk@v0.7.1...python-sdk@v0.7.2) (2025-12-03)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **python-sdk:** add httpx.ReadTimeout to transient error skip list ([#910](https://github.com/langwatch/langwatch/issues/910)) ([dbdae14](https://github.com/langwatch/langwatch/commit/dbdae1465b5da364aa23097d9d91ff2072ee6d13)), closes [#909](https://github.com/langwatch/langwatch/issues/909)
20
+
3
21
  ## [0.7.1](https://github.com/langwatch/langwatch/compare/python-sdk@v0.7.0...python-sdk@v0.7.1) (2025-11-28)
4
22
 
5
23
 
@@ -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.1
3
+ Version: 0.8.0
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.1" # remember to also update it in src/langwatch/__version__.py
3
+ version = "0.8.0" # 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.0" # x-release-please-version
@@ -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
  """
@@ -8,7 +8,8 @@ or when API is unavailable.
8
8
 
9
9
  Follows the facade pattern to coordinate between LocalPromptLoader and PromptApiService.
10
10
  """
11
- from typing import Dict, List, Literal, Optional
11
+ from typing import Any, Dict, List, Literal, Optional
12
+ import time
12
13
  from langwatch.generated.langwatch_rest_api_client.client import (
13
14
  Client as LangWatchRestApiClient,
14
15
  )
@@ -16,9 +17,13 @@ from langwatch.generated.langwatch_rest_api_client.client import (
16
17
  from langwatch.utils.initialization import ensure_setup
17
18
  from langwatch.state import get_instance
18
19
  from .prompt import Prompt
20
+ from .types import FetchPolicy
19
21
  from .prompt_api_service import PromptApiService
20
22
  from .local_loader import LocalPromptLoader
21
23
  from .types import MessageDict, InputDict, OutputDict
24
+ from logging import getLogger
25
+
26
+ logger = getLogger(__name__)
22
27
 
23
28
 
24
29
  class PromptsFacade:
@@ -34,6 +39,7 @@ class PromptsFacade:
34
39
  """Initialize the prompt service facade with dependencies."""
35
40
  self._api_service = PromptApiService(rest_api_client)
36
41
  self._local_loader = LocalPromptLoader()
42
+ self._cache: Dict[str, Dict[str, Any]] = {}
37
43
 
38
44
  @classmethod
39
45
  def from_global(cls) -> "PromptsFacade":
@@ -46,17 +52,43 @@ class PromptsFacade:
46
52
  )
47
53
  return cls(instance.rest_api_client)
48
54
 
49
- def get(self, prompt_id: str, version_number: Optional[int] = None) -> Prompt:
55
+ def get(
56
+ self,
57
+ prompt_id: str,
58
+ version_number: Optional[int] = None,
59
+ fetch_policy: Optional[FetchPolicy] = None,
60
+ cache_ttl_minutes: Optional[int] = None,
61
+ ) -> Prompt:
50
62
  """
51
- Retrieve a prompt by its ID with guaranteed availability.
63
+ Retrieve a prompt by its ID with configurable fetch policy.
52
64
 
53
- Tries local files first, then falls back to API.
54
- You can optionally specify a version number to get a specific version of the prompt.
65
+ Args:
66
+ prompt_id: The prompt ID to retrieve
67
+ version_number: Optional specific version number to retrieve
68
+ fetch_policy: How to fetch the prompt. Defaults to MATERIALIZED_FIRST.
69
+ cache_ttl_minutes: Cache TTL in minutes (only used with CACHE_TTL policy). Defaults to 5.
55
70
 
56
71
  Raises:
57
72
  ValueError: If the prompt is not found (404 error).
58
73
  RuntimeError: If the API call fails for other reasons (auth, server errors, etc.).
59
74
  """
75
+ fetch_policy = fetch_policy or FetchPolicy.MATERIALIZED_FIRST
76
+
77
+ if fetch_policy == FetchPolicy.MATERIALIZED_ONLY:
78
+ return self._get_materialized_only(prompt_id)
79
+ elif fetch_policy == FetchPolicy.ALWAYS_FETCH:
80
+ return self._get_always_fetch(prompt_id, version_number)
81
+ elif fetch_policy == FetchPolicy.CACHE_TTL:
82
+ return self._get_cache_ttl(
83
+ prompt_id, version_number, cache_ttl_minutes or 5
84
+ )
85
+ else: # MATERIALIZED_FIRST (default)
86
+ return self._get_materialized_first(prompt_id, version_number)
87
+
88
+ def _get_materialized_first(
89
+ self, prompt_id: str, version_number: Optional[int] = None
90
+ ) -> Prompt:
91
+ """Get prompt using MATERIALIZED_FIRST policy (local first, API fallback)."""
60
92
  # Try to load from local files first
61
93
  local_data = self._local_loader.load_prompt(prompt_id)
62
94
  if local_data is not None:
@@ -66,6 +98,64 @@ class PromptsFacade:
66
98
  api_data = self._api_service.get(prompt_id, version_number)
67
99
  return Prompt(api_data)
68
100
 
101
+ def _get_materialized_only(self, prompt_id: str) -> Prompt:
102
+ """Get prompt using MATERIALIZED_ONLY policy (local only, no API calls)."""
103
+ local_data = self._local_loader.load_prompt(prompt_id)
104
+ if local_data is not None:
105
+ return Prompt(local_data)
106
+
107
+ raise ValueError(f"Prompt '{prompt_id}' not found in materialized files")
108
+
109
+ def _get_always_fetch(
110
+ self, prompt_id: str, version_number: Optional[int] = None
111
+ ) -> Prompt:
112
+ """Get prompt using ALWAYS_FETCH policy (API first, local fallback)."""
113
+ try:
114
+ api_data = self._api_service.get(prompt_id, version_number)
115
+ return Prompt(api_data)
116
+ except Exception:
117
+ # Fall back to local if API fails
118
+ local_data = self._local_loader.load_prompt(prompt_id)
119
+ if local_data is not None:
120
+ return Prompt(local_data)
121
+ raise ValueError(f"Prompt '{prompt_id}' not found locally or on server")
122
+
123
+ def _get_cache_ttl(
124
+ self,
125
+ prompt_id: str,
126
+ version_number: Optional[int] = None,
127
+ cache_ttl_minutes: int = 5,
128
+ ) -> Prompt:
129
+ """Get prompt using CACHE_TTL policy (cache with TTL, fallback to local)."""
130
+ cache_key = f"{prompt_id}::version:{version_number or ''}"
131
+ ttl_ms = cache_ttl_minutes * 60 * 1000
132
+ now = time.time() * 1000 # Convert to milliseconds
133
+
134
+ cached = self._cache.get(cache_key)
135
+ if cached and now - cached["timestamp"] < ttl_ms:
136
+ return Prompt(cached["data"])
137
+
138
+ try:
139
+ api_data = self._api_service.get(prompt_id, version_number)
140
+ self._cache[cache_key] = {"data": api_data, "timestamp": now}
141
+ return Prompt(api_data)
142
+ except Exception:
143
+ logger.warning(
144
+ f"Failed to fetch prompt '{prompt_id}' from API, falling back to local",
145
+ exc_info=True,
146
+ stack_info=True,
147
+ extra={
148
+ "prompt_id": prompt_id,
149
+ "version_number": version_number,
150
+ "cache_ttl_minutes": cache_ttl_minutes,
151
+ },
152
+ )
153
+ # Fall back to local if API fails
154
+ local_data = self._local_loader.load_prompt(prompt_id)
155
+ if local_data is not None:
156
+ return Prompt(local_data)
157
+ raise ValueError(f"Prompt '{prompt_id}' not found locally or on server")
158
+
69
159
  def create(
70
160
  self,
71
161
  handle: str,
@@ -8,6 +8,9 @@ organized by their purpose and scope.
8
8
  # Core prompt data structure
9
9
  from .prompt_data import PromptData
10
10
 
11
+ # Fetch policy
12
+ from .fetch_policy import FetchPolicy
13
+
11
14
  # Standardized data structures
12
15
  from .structures import (
13
16
  MessageDict,
@@ -24,4 +27,5 @@ __all__ = [
24
27
  "InputDict",
25
28
  "OutputDict",
26
29
  "ResponseFormatDict",
30
+ "FetchPolicy",
27
31
  ]