langwatch-scenario 0.6.0__py3-none-any.whl → 0.7.1__py3-none-any.whl

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 (231) hide show
  1. {langwatch_scenario-0.6.0.dist-info → langwatch_scenario-0.7.1.dist-info}/METADATA +143 -41
  2. langwatch_scenario-0.7.1.dist-info/RECORD +237 -0
  3. scenario/__init__.py +1 -4
  4. scenario/{events → _events}/__init__.py +9 -11
  5. scenario/_events/event_bus.py +185 -0
  6. scenario/{events → _events}/event_reporter.py +1 -1
  7. scenario/{events → _events}/events.py +20 -27
  8. scenario/_events/messages.py +58 -0
  9. scenario/{events → _events}/utils.py +43 -32
  10. scenario/_generated/langwatch_api_client/README.md +139 -0
  11. scenario/_generated/langwatch_api_client/lang_watch_api_client/__init__.py +13 -0
  12. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/__init__.py +1 -0
  13. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/__init__.py +1 -0
  14. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/delete_api_annotations_id.py +155 -0
  15. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/delete_api_prompts_by_id.py +218 -0
  16. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/delete_api_scenario_events.py +183 -0
  17. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_annotations.py +136 -0
  18. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_annotations_id.py +155 -0
  19. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_annotations_trace_id.py +160 -0
  20. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_dataset_by_slug_or_id.py +229 -0
  21. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_prompts.py +188 -0
  22. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_prompts_by_id.py +218 -0
  23. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_prompts_by_id_versions.py +218 -0
  24. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/get_api_trace_id.py +155 -0
  25. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/patch_api_annotations_id.py +178 -0
  26. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_annotations_trace_id.py +178 -0
  27. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_dataset_by_slug_entries.py +108 -0
  28. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_prompts.py +187 -0
  29. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_prompts_by_id_versions.py +241 -0
  30. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_scenario_events.py +229 -0
  31. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_trace_id_share.py +155 -0
  32. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/post_api_trace_id_unshare.py +155 -0
  33. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/default/put_api_prompts_by_id.py +241 -0
  34. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/traces/__init__.py +1 -0
  35. scenario/_generated/langwatch_api_client/lang_watch_api_client/api/traces/post_api_trace_search.py +168 -0
  36. scenario/_generated/langwatch_api_client/lang_watch_api_client/client.py +268 -0
  37. scenario/_generated/langwatch_api_client/lang_watch_api_client/errors.py +16 -0
  38. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/__init__.py +455 -0
  39. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/annotation.py +131 -0
  40. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/dataset_post_entries.py +74 -0
  41. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/dataset_post_entries_entries_item.py +44 -0
  42. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_annotations_id_response_200.py +68 -0
  43. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_200.py +59 -0
  44. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_400.py +61 -0
  45. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_400_error.py +8 -0
  46. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_401.py +61 -0
  47. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_401_error.py +8 -0
  48. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_404.py +59 -0
  49. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_prompts_by_id_response_500.py +59 -0
  50. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_200.py +81 -0
  51. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_400.py +59 -0
  52. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_401.py +59 -0
  53. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/delete_api_scenario_events_response_500.py +59 -0
  54. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/error.py +67 -0
  55. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/evaluation.py +164 -0
  56. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/evaluation_timestamps.py +68 -0
  57. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_200.py +75 -0
  58. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item.py +109 -0
  59. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_200_data_item_entry.py +44 -0
  60. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_400.py +78 -0
  61. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_401.py +78 -0
  62. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_404.py +78 -0
  63. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_422.py +67 -0
  64. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_dataset_by_slug_or_id_response_500.py +78 -0
  65. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200.py +172 -0
  66. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_messages_item.py +69 -0
  67. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_messages_item_role.py +10 -0
  68. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0.py +81 -0
  69. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0_json_schema.py +77 -0
  70. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0_json_schema_schema.py +44 -0
  71. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_200_response_format_type_0_type.py +8 -0
  72. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_400.py +61 -0
  73. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_400_error.py +8 -0
  74. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_401.py +61 -0
  75. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_401_error.py +8 -0
  76. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_404.py +59 -0
  77. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_response_500.py +59 -0
  78. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200.py +155 -0
  79. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data.py +204 -0
  80. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations.py +101 -0
  81. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item.py +79 -0
  82. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item_type.py +18 -0
  83. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_demonstrations_rows_item.py +59 -0
  84. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_inputs_item.py +71 -0
  85. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_inputs_item_type.py +16 -0
  86. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_messages_item.py +71 -0
  87. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_messages_item_role.py +10 -0
  88. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_outputs_item.py +98 -0
  89. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_outputs_item_json_schema.py +59 -0
  90. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_outputs_item_type.py +11 -0
  91. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_200_config_data_prompting_technique.py +59 -0
  92. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_400.py +61 -0
  93. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_400_error.py +8 -0
  94. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_401.py +61 -0
  95. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_401_error.py +8 -0
  96. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_404.py +59 -0
  97. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_by_id_versions_response_500.py +59 -0
  98. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item.py +172 -0
  99. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_messages_item.py +69 -0
  100. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_messages_item_role.py +10 -0
  101. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0.py +81 -0
  102. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0_json_schema.py +77 -0
  103. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0_json_schema_schema.py +44 -0
  104. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_200_item_response_format_type_0_type.py +8 -0
  105. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_400.py +61 -0
  106. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_400_error.py +8 -0
  107. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_401.py +61 -0
  108. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_401_error.py +8 -0
  109. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_prompts_response_500.py +59 -0
  110. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200.py +249 -0
  111. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_error_type_0.py +79 -0
  112. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_evaluations_item.py +152 -0
  113. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_evaluations_item_error.py +79 -0
  114. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_evaluations_item_timestamps.py +68 -0
  115. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_input.py +59 -0
  116. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_metadata.py +68 -0
  117. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_metrics.py +95 -0
  118. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_output.py +59 -0
  119. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item.py +271 -0
  120. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_error_type_0.py +79 -0
  121. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_input.py +90 -0
  122. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_input_value_item.py +69 -0
  123. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_metrics.py +77 -0
  124. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_output.py +89 -0
  125. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_output_value_item.py +68 -0
  126. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_params.py +68 -0
  127. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_spans_item_timestamps.py +95 -0
  128. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/get_api_trace_id_response_200_timestamps.py +77 -0
  129. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/input_.py +68 -0
  130. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/metadata.py +68 -0
  131. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/metrics.py +115 -0
  132. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/output.py +59 -0
  133. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/pagination.py +68 -0
  134. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/patch_api_annotations_id_body.py +77 -0
  135. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/patch_api_annotations_id_response_200.py +68 -0
  136. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_annotations_trace_id_body.py +77 -0
  137. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_body.py +59 -0
  138. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body.py +147 -0
  139. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data.py +207 -0
  140. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations.py +106 -0
  141. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations_columns_item.py +79 -0
  142. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations_columns_item_type.py +18 -0
  143. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_demonstrations_rows_item.py +59 -0
  144. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_inputs_item.py +71 -0
  145. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_inputs_item_type.py +16 -0
  146. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_messages_item.py +71 -0
  147. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_messages_item_role.py +10 -0
  148. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_outputs_item.py +98 -0
  149. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_outputs_item_json_schema.py +59 -0
  150. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_outputs_item_type.py +11 -0
  151. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_body_config_data_prompting_technique.py +59 -0
  152. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200.py +155 -0
  153. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data.py +206 -0
  154. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations.py +101 -0
  155. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item.py +79 -0
  156. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations_columns_item_type.py +18 -0
  157. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_demonstrations_rows_item.py +59 -0
  158. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_inputs_item.py +71 -0
  159. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_inputs_item_type.py +16 -0
  160. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_messages_item.py +71 -0
  161. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_messages_item_role.py +10 -0
  162. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_outputs_item.py +98 -0
  163. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_outputs_item_json_schema.py +59 -0
  164. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_outputs_item_type.py +11 -0
  165. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_200_config_data_prompting_technique.py +59 -0
  166. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_400.py +61 -0
  167. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_400_error.py +8 -0
  168. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_401.py +61 -0
  169. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_401_error.py +8 -0
  170. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_404.py +59 -0
  171. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_by_id_versions_response_500.py +59 -0
  172. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200.py +172 -0
  173. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_messages_item.py +69 -0
  174. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_messages_item_role.py +10 -0
  175. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0.py +81 -0
  176. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0_json_schema.py +77 -0
  177. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0_json_schema_schema.py +44 -0
  178. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_200_response_format_type_0_type.py +8 -0
  179. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_400.py +61 -0
  180. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_400_error.py +8 -0
  181. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_401.py +61 -0
  182. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_401_error.py +8 -0
  183. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_prompts_response_500.py +59 -0
  184. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_0.py +127 -0
  185. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_0_metadata.py +68 -0
  186. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1.py +164 -0
  187. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1_results_type_0.py +98 -0
  188. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1_results_type_0_verdict.py +10 -0
  189. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_1_status.py +13 -0
  190. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2.py +245 -0
  191. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_0.py +88 -0
  192. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_1.py +88 -0
  193. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_2.py +120 -0
  194. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_2_tool_calls_item.py +87 -0
  195. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_2_tool_calls_item_function.py +67 -0
  196. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_3.py +88 -0
  197. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_body_type_2_messages_item_type_4.py +85 -0
  198. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_201.py +81 -0
  199. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_400.py +59 -0
  200. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_401.py +59 -0
  201. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_scenario_events_response_500.py +59 -0
  202. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_trace_id_share_response_200.py +59 -0
  203. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/post_api_trace_id_unshare_response_200.py +59 -0
  204. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_body.py +59 -0
  205. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_200.py +75 -0
  206. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_400.py +61 -0
  207. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_400_error.py +8 -0
  208. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_401.py +61 -0
  209. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_401_error.py +8 -0
  210. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_404.py +59 -0
  211. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/put_api_prompts_by_id_response_500.py +59 -0
  212. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/search_request.py +133 -0
  213. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/search_request_filters.py +51 -0
  214. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/search_response.py +93 -0
  215. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/timestamps.py +77 -0
  216. scenario/_generated/langwatch_api_client/lang_watch_api_client/models/trace.py +225 -0
  217. scenario/_generated/langwatch_api_client/lang_watch_api_client/py.typed +1 -0
  218. scenario/_generated/langwatch_api_client/lang_watch_api_client/types.py +46 -0
  219. scenario/_generated/langwatch_api_client/pyproject.toml +27 -0
  220. scenario/_utils/__init__.py +1 -1
  221. scenario/_utils/message_conversion.py +2 -2
  222. scenario/judge_agent.py +6 -1
  223. scenario/pytest_plugin.py +4 -4
  224. scenario/scenario_executor.py +196 -223
  225. scenario/types.py +5 -2
  226. langwatch_scenario-0.6.0.dist-info/RECORD +0 -27
  227. scenario/events/event_bus.py +0 -175
  228. scenario/events/messages.py +0 -84
  229. {langwatch_scenario-0.6.0.dist-info → langwatch_scenario-0.7.1.dist-info}/WHEEL +0 -0
  230. {langwatch_scenario-0.6.0.dist-info → langwatch_scenario-0.7.1.dist-info}/entry_points.txt +0 -0
  231. {langwatch_scenario-0.6.0.dist-info → langwatch_scenario-0.7.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,61 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.get_api_prompts_by_id_response_400_error import GetApiPromptsByIdResponse400Error
8
+
9
+ T = TypeVar("T", bound="GetApiPromptsByIdResponse400")
10
+
11
+
12
+ @_attrs_define
13
+ class GetApiPromptsByIdResponse400:
14
+ """
15
+ Attributes:
16
+ error (GetApiPromptsByIdResponse400Error):
17
+ """
18
+
19
+ error: GetApiPromptsByIdResponse400Error
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ error = self.error.value
24
+
25
+ field_dict: dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "error": error,
30
+ }
31
+ )
32
+
33
+ return field_dict
34
+
35
+ @classmethod
36
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
37
+ d = dict(src_dict)
38
+ error = GetApiPromptsByIdResponse400Error(d.pop("error"))
39
+
40
+ get_api_prompts_by_id_response_400 = cls(
41
+ error=error,
42
+ )
43
+
44
+ get_api_prompts_by_id_response_400.additional_properties = d
45
+ return get_api_prompts_by_id_response_400
46
+
47
+ @property
48
+ def additional_keys(self) -> list[str]:
49
+ return list(self.additional_properties.keys())
50
+
51
+ def __getitem__(self, key: str) -> Any:
52
+ return self.additional_properties[key]
53
+
54
+ def __setitem__(self, key: str, value: Any) -> None:
55
+ self.additional_properties[key] = value
56
+
57
+ def __delitem__(self, key: str) -> None:
58
+ del self.additional_properties[key]
59
+
60
+ def __contains__(self, key: str) -> bool:
61
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class GetApiPromptsByIdResponse400Error(str, Enum):
5
+ BAD_REQUEST = "Bad Request"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,61 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..models.get_api_prompts_by_id_response_401_error import GetApiPromptsByIdResponse401Error
8
+
9
+ T = TypeVar("T", bound="GetApiPromptsByIdResponse401")
10
+
11
+
12
+ @_attrs_define
13
+ class GetApiPromptsByIdResponse401:
14
+ """
15
+ Attributes:
16
+ error (GetApiPromptsByIdResponse401Error):
17
+ """
18
+
19
+ error: GetApiPromptsByIdResponse401Error
20
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
21
+
22
+ def to_dict(self) -> dict[str, Any]:
23
+ error = self.error.value
24
+
25
+ field_dict: dict[str, Any] = {}
26
+ field_dict.update(self.additional_properties)
27
+ field_dict.update(
28
+ {
29
+ "error": error,
30
+ }
31
+ )
32
+
33
+ return field_dict
34
+
35
+ @classmethod
36
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
37
+ d = dict(src_dict)
38
+ error = GetApiPromptsByIdResponse401Error(d.pop("error"))
39
+
40
+ get_api_prompts_by_id_response_401 = cls(
41
+ error=error,
42
+ )
43
+
44
+ get_api_prompts_by_id_response_401.additional_properties = d
45
+ return get_api_prompts_by_id_response_401
46
+
47
+ @property
48
+ def additional_keys(self) -> list[str]:
49
+ return list(self.additional_properties.keys())
50
+
51
+ def __getitem__(self, key: str) -> Any:
52
+ return self.additional_properties[key]
53
+
54
+ def __setitem__(self, key: str, value: Any) -> None:
55
+ self.additional_properties[key] = value
56
+
57
+ def __delitem__(self, key: str) -> None:
58
+ del self.additional_properties[key]
59
+
60
+ def __contains__(self, key: str) -> bool:
61
+ return key in self.additional_properties
@@ -0,0 +1,8 @@
1
+ from enum import Enum
2
+
3
+
4
+ class GetApiPromptsByIdResponse401Error(str, Enum):
5
+ UNAUTHORIZED = "Unauthorized"
6
+
7
+ def __str__(self) -> str:
8
+ return str(self.value)
@@ -0,0 +1,59 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="GetApiPromptsByIdResponse404")
8
+
9
+
10
+ @_attrs_define
11
+ class GetApiPromptsByIdResponse404:
12
+ """
13
+ Attributes:
14
+ error (str):
15
+ """
16
+
17
+ error: str
18
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
19
+
20
+ def to_dict(self) -> dict[str, Any]:
21
+ error = self.error
22
+
23
+ field_dict: dict[str, Any] = {}
24
+ field_dict.update(self.additional_properties)
25
+ field_dict.update(
26
+ {
27
+ "error": error,
28
+ }
29
+ )
30
+
31
+ return field_dict
32
+
33
+ @classmethod
34
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
35
+ d = dict(src_dict)
36
+ error = d.pop("error")
37
+
38
+ get_api_prompts_by_id_response_404 = cls(
39
+ error=error,
40
+ )
41
+
42
+ get_api_prompts_by_id_response_404.additional_properties = d
43
+ return get_api_prompts_by_id_response_404
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> Any:
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: Any) -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties
@@ -0,0 +1,59 @@
1
+ from collections.abc import Mapping
2
+ from typing import Any, TypeVar
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ T = TypeVar("T", bound="GetApiPromptsByIdResponse500")
8
+
9
+
10
+ @_attrs_define
11
+ class GetApiPromptsByIdResponse500:
12
+ """
13
+ Attributes:
14
+ error (str):
15
+ """
16
+
17
+ error: str
18
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
19
+
20
+ def to_dict(self) -> dict[str, Any]:
21
+ error = self.error
22
+
23
+ field_dict: dict[str, Any] = {}
24
+ field_dict.update(self.additional_properties)
25
+ field_dict.update(
26
+ {
27
+ "error": error,
28
+ }
29
+ )
30
+
31
+ return field_dict
32
+
33
+ @classmethod
34
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
35
+ d = dict(src_dict)
36
+ error = d.pop("error")
37
+
38
+ get_api_prompts_by_id_response_500 = cls(
39
+ error=error,
40
+ )
41
+
42
+ get_api_prompts_by_id_response_500.additional_properties = d
43
+ return get_api_prompts_by_id_response_500
44
+
45
+ @property
46
+ def additional_keys(self) -> list[str]:
47
+ return list(self.additional_properties.keys())
48
+
49
+ def __getitem__(self, key: str) -> Any:
50
+ return self.additional_properties[key]
51
+
52
+ def __setitem__(self, key: str, value: Any) -> None:
53
+ self.additional_properties[key] = value
54
+
55
+ def __delitem__(self, key: str) -> None:
56
+ del self.additional_properties[key]
57
+
58
+ def __contains__(self, key: str) -> bool:
59
+ return key in self.additional_properties
@@ -0,0 +1,155 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, Literal, TypeVar, Union, cast
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data import (
11
+ GetApiPromptsByIdVersionsResponse200ConfigData,
12
+ )
13
+
14
+
15
+ T = TypeVar("T", bound="GetApiPromptsByIdVersionsResponse200")
16
+
17
+
18
+ @_attrs_define
19
+ class GetApiPromptsByIdVersionsResponse200:
20
+ """
21
+ Attributes:
22
+ id (str):
23
+ author_id (Union[None, str]):
24
+ project_id (str):
25
+ config_id (str):
26
+ schema_version (Literal['1.0']):
27
+ version (float):
28
+ created_at (str):
29
+ config_data (GetApiPromptsByIdVersionsResponse200ConfigData):
30
+ commit_message (Union[None, Unset, str]):
31
+ """
32
+
33
+ id: str
34
+ author_id: Union[None, str]
35
+ project_id: str
36
+ config_id: str
37
+ schema_version: Literal["1.0"]
38
+ version: float
39
+ created_at: str
40
+ config_data: "GetApiPromptsByIdVersionsResponse200ConfigData"
41
+ commit_message: Union[None, Unset, str] = UNSET
42
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
43
+
44
+ def to_dict(self) -> dict[str, Any]:
45
+ id = self.id
46
+
47
+ author_id: Union[None, str]
48
+ author_id = self.author_id
49
+
50
+ project_id = self.project_id
51
+
52
+ config_id = self.config_id
53
+
54
+ schema_version = self.schema_version
55
+
56
+ version = self.version
57
+
58
+ created_at = self.created_at
59
+
60
+ config_data = self.config_data.to_dict()
61
+
62
+ commit_message: Union[None, Unset, str]
63
+ if isinstance(self.commit_message, Unset):
64
+ commit_message = UNSET
65
+ else:
66
+ commit_message = self.commit_message
67
+
68
+ field_dict: dict[str, Any] = {}
69
+ field_dict.update(self.additional_properties)
70
+ field_dict.update(
71
+ {
72
+ "id": id,
73
+ "authorId": author_id,
74
+ "projectId": project_id,
75
+ "configId": config_id,
76
+ "schemaVersion": schema_version,
77
+ "version": version,
78
+ "createdAt": created_at,
79
+ "configData": config_data,
80
+ }
81
+ )
82
+ if commit_message is not UNSET:
83
+ field_dict["commitMessage"] = commit_message
84
+
85
+ return field_dict
86
+
87
+ @classmethod
88
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
89
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data import (
90
+ GetApiPromptsByIdVersionsResponse200ConfigData,
91
+ )
92
+
93
+ d = dict(src_dict)
94
+ id = d.pop("id")
95
+
96
+ def _parse_author_id(data: object) -> Union[None, str]:
97
+ if data is None:
98
+ return data
99
+ return cast(Union[None, str], data)
100
+
101
+ author_id = _parse_author_id(d.pop("authorId"))
102
+
103
+ project_id = d.pop("projectId")
104
+
105
+ config_id = d.pop("configId")
106
+
107
+ schema_version = cast(Literal["1.0"], d.pop("schemaVersion"))
108
+ if schema_version != "1.0":
109
+ raise ValueError(f"schemaVersion must match const '1.0', got '{schema_version}'")
110
+
111
+ version = d.pop("version")
112
+
113
+ created_at = d.pop("createdAt")
114
+
115
+ config_data = GetApiPromptsByIdVersionsResponse200ConfigData.from_dict(d.pop("configData"))
116
+
117
+ def _parse_commit_message(data: object) -> Union[None, Unset, str]:
118
+ if data is None:
119
+ return data
120
+ if isinstance(data, Unset):
121
+ return data
122
+ return cast(Union[None, Unset, str], data)
123
+
124
+ commit_message = _parse_commit_message(d.pop("commitMessage", UNSET))
125
+
126
+ get_api_prompts_by_id_versions_response_200 = cls(
127
+ id=id,
128
+ author_id=author_id,
129
+ project_id=project_id,
130
+ config_id=config_id,
131
+ schema_version=schema_version,
132
+ version=version,
133
+ created_at=created_at,
134
+ config_data=config_data,
135
+ commit_message=commit_message,
136
+ )
137
+
138
+ get_api_prompts_by_id_versions_response_200.additional_properties = d
139
+ return get_api_prompts_by_id_versions_response_200
140
+
141
+ @property
142
+ def additional_keys(self) -> list[str]:
143
+ return list(self.additional_properties.keys())
144
+
145
+ def __getitem__(self, key: str) -> Any:
146
+ return self.additional_properties[key]
147
+
148
+ def __setitem__(self, key: str, value: Any) -> None:
149
+ self.additional_properties[key] = value
150
+
151
+ def __delitem__(self, key: str) -> None:
152
+ del self.additional_properties[key]
153
+
154
+ def __contains__(self, key: str) -> bool:
155
+ return key in self.additional_properties
@@ -0,0 +1,204 @@
1
+ from collections.abc import Mapping
2
+ from typing import TYPE_CHECKING, Any, TypeVar, Union
3
+
4
+ from attrs import define as _attrs_define
5
+ from attrs import field as _attrs_field
6
+
7
+ from ..types import UNSET, Unset
8
+
9
+ if TYPE_CHECKING:
10
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_demonstrations import (
11
+ GetApiPromptsByIdVersionsResponse200ConfigDataDemonstrations,
12
+ )
13
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_inputs_item import (
14
+ GetApiPromptsByIdVersionsResponse200ConfigDataInputsItem,
15
+ )
16
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_messages_item import (
17
+ GetApiPromptsByIdVersionsResponse200ConfigDataMessagesItem,
18
+ )
19
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_outputs_item import (
20
+ GetApiPromptsByIdVersionsResponse200ConfigDataOutputsItem,
21
+ )
22
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_prompting_technique import (
23
+ GetApiPromptsByIdVersionsResponse200ConfigDataPromptingTechnique,
24
+ )
25
+
26
+
27
+ T = TypeVar("T", bound="GetApiPromptsByIdVersionsResponse200ConfigData")
28
+
29
+
30
+ @_attrs_define
31
+ class GetApiPromptsByIdVersionsResponse200ConfigData:
32
+ """
33
+ Attributes:
34
+ prompt (str):
35
+ messages (list['GetApiPromptsByIdVersionsResponse200ConfigDataMessagesItem']):
36
+ inputs (list['GetApiPromptsByIdVersionsResponse200ConfigDataInputsItem']):
37
+ outputs (list['GetApiPromptsByIdVersionsResponse200ConfigDataOutputsItem']):
38
+ model (str):
39
+ demonstrations (GetApiPromptsByIdVersionsResponse200ConfigDataDemonstrations):
40
+ version (Union[Unset, float]):
41
+ temperature (Union[Unset, float]):
42
+ max_tokens (Union[Unset, float]):
43
+ prompting_technique (Union[Unset, GetApiPromptsByIdVersionsResponse200ConfigDataPromptingTechnique]):
44
+ """
45
+
46
+ prompt: str
47
+ messages: list["GetApiPromptsByIdVersionsResponse200ConfigDataMessagesItem"]
48
+ inputs: list["GetApiPromptsByIdVersionsResponse200ConfigDataInputsItem"]
49
+ outputs: list["GetApiPromptsByIdVersionsResponse200ConfigDataOutputsItem"]
50
+ model: str
51
+ demonstrations: "GetApiPromptsByIdVersionsResponse200ConfigDataDemonstrations"
52
+ version: Union[Unset, float] = UNSET
53
+ temperature: Union[Unset, float] = UNSET
54
+ max_tokens: Union[Unset, float] = UNSET
55
+ prompting_technique: Union[Unset, "GetApiPromptsByIdVersionsResponse200ConfigDataPromptingTechnique"] = UNSET
56
+ additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict)
57
+
58
+ def to_dict(self) -> dict[str, Any]:
59
+ prompt = self.prompt
60
+
61
+ messages = []
62
+ for messages_item_data in self.messages:
63
+ messages_item = messages_item_data.to_dict()
64
+ messages.append(messages_item)
65
+
66
+ inputs = []
67
+ for inputs_item_data in self.inputs:
68
+ inputs_item = inputs_item_data.to_dict()
69
+ inputs.append(inputs_item)
70
+
71
+ outputs = []
72
+ for outputs_item_data in self.outputs:
73
+ outputs_item = outputs_item_data.to_dict()
74
+ outputs.append(outputs_item)
75
+
76
+ model = self.model
77
+
78
+ demonstrations = self.demonstrations.to_dict()
79
+
80
+ version = self.version
81
+
82
+ temperature = self.temperature
83
+
84
+ max_tokens = self.max_tokens
85
+
86
+ prompting_technique: Union[Unset, dict[str, Any]] = UNSET
87
+ if not isinstance(self.prompting_technique, Unset):
88
+ prompting_technique = self.prompting_technique.to_dict()
89
+
90
+ field_dict: dict[str, Any] = {}
91
+ field_dict.update(self.additional_properties)
92
+ field_dict.update(
93
+ {
94
+ "prompt": prompt,
95
+ "messages": messages,
96
+ "inputs": inputs,
97
+ "outputs": outputs,
98
+ "model": model,
99
+ "demonstrations": demonstrations,
100
+ }
101
+ )
102
+ if version is not UNSET:
103
+ field_dict["version"] = version
104
+ if temperature is not UNSET:
105
+ field_dict["temperature"] = temperature
106
+ if max_tokens is not UNSET:
107
+ field_dict["max_tokens"] = max_tokens
108
+ if prompting_technique is not UNSET:
109
+ field_dict["prompting_technique"] = prompting_technique
110
+
111
+ return field_dict
112
+
113
+ @classmethod
114
+ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
115
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_demonstrations import (
116
+ GetApiPromptsByIdVersionsResponse200ConfigDataDemonstrations,
117
+ )
118
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_inputs_item import (
119
+ GetApiPromptsByIdVersionsResponse200ConfigDataInputsItem,
120
+ )
121
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_messages_item import (
122
+ GetApiPromptsByIdVersionsResponse200ConfigDataMessagesItem,
123
+ )
124
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_outputs_item import (
125
+ GetApiPromptsByIdVersionsResponse200ConfigDataOutputsItem,
126
+ )
127
+ from ..models.get_api_prompts_by_id_versions_response_200_config_data_prompting_technique import (
128
+ GetApiPromptsByIdVersionsResponse200ConfigDataPromptingTechnique,
129
+ )
130
+
131
+ d = dict(src_dict)
132
+ prompt = d.pop("prompt")
133
+
134
+ messages = []
135
+ _messages = d.pop("messages")
136
+ for messages_item_data in _messages:
137
+ messages_item = GetApiPromptsByIdVersionsResponse200ConfigDataMessagesItem.from_dict(messages_item_data)
138
+
139
+ messages.append(messages_item)
140
+
141
+ inputs = []
142
+ _inputs = d.pop("inputs")
143
+ for inputs_item_data in _inputs:
144
+ inputs_item = GetApiPromptsByIdVersionsResponse200ConfigDataInputsItem.from_dict(inputs_item_data)
145
+
146
+ inputs.append(inputs_item)
147
+
148
+ outputs = []
149
+ _outputs = d.pop("outputs")
150
+ for outputs_item_data in _outputs:
151
+ outputs_item = GetApiPromptsByIdVersionsResponse200ConfigDataOutputsItem.from_dict(outputs_item_data)
152
+
153
+ outputs.append(outputs_item)
154
+
155
+ model = d.pop("model")
156
+
157
+ demonstrations = GetApiPromptsByIdVersionsResponse200ConfigDataDemonstrations.from_dict(d.pop("demonstrations"))
158
+
159
+ version = d.pop("version", UNSET)
160
+
161
+ temperature = d.pop("temperature", UNSET)
162
+
163
+ max_tokens = d.pop("max_tokens", UNSET)
164
+
165
+ _prompting_technique = d.pop("prompting_technique", UNSET)
166
+ prompting_technique: Union[Unset, GetApiPromptsByIdVersionsResponse200ConfigDataPromptingTechnique]
167
+ if isinstance(_prompting_technique, Unset):
168
+ prompting_technique = UNSET
169
+ else:
170
+ prompting_technique = GetApiPromptsByIdVersionsResponse200ConfigDataPromptingTechnique.from_dict(
171
+ _prompting_technique
172
+ )
173
+
174
+ get_api_prompts_by_id_versions_response_200_config_data = cls(
175
+ prompt=prompt,
176
+ messages=messages,
177
+ inputs=inputs,
178
+ outputs=outputs,
179
+ model=model,
180
+ demonstrations=demonstrations,
181
+ version=version,
182
+ temperature=temperature,
183
+ max_tokens=max_tokens,
184
+ prompting_technique=prompting_technique,
185
+ )
186
+
187
+ get_api_prompts_by_id_versions_response_200_config_data.additional_properties = d
188
+ return get_api_prompts_by_id_versions_response_200_config_data
189
+
190
+ @property
191
+ def additional_keys(self) -> list[str]:
192
+ return list(self.additional_properties.keys())
193
+
194
+ def __getitem__(self, key: str) -> Any:
195
+ return self.additional_properties[key]
196
+
197
+ def __setitem__(self, key: str, value: Any) -> None:
198
+ self.additional_properties[key] = value
199
+
200
+ def __delitem__(self, key: str) -> None:
201
+ del self.additional_properties[key]
202
+
203
+ def __contains__(self, key: str) -> bool:
204
+ return key in self.additional_properties