anthropic 0.72.1__tar.gz → 0.73.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 (508) hide show
  1. anthropic-0.73.0/.release-please-manifest.json +3 -0
  2. {anthropic-0.72.1 → anthropic-0.73.0}/CHANGELOG.md +8 -0
  3. {anthropic-0.72.1 → anthropic-0.73.0}/PKG-INFO +1 -1
  4. {anthropic-0.72.1 → anthropic-0.73.0}/api.md +1 -0
  5. anthropic-0.73.0/examples/structured_outputs.py +37 -0
  6. anthropic-0.73.0/examples/structured_outputs_streaming.py +38 -0
  7. {anthropic-0.72.1 → anthropic-0.73.0}/pyproject.toml +2 -2
  8. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/__init__.py +2 -0
  9. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_compat.py +6 -0
  10. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_models.py +13 -1
  11. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_transform.py +1 -1
  12. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_version.py +1 -1
  13. anthropic-0.73.0/src/anthropic/lib/_parse/_response.py +44 -0
  14. anthropic-0.73.0/src/anthropic/lib/_parse/_transform.py +167 -0
  15. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/streaming/__init__.py +14 -4
  16. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/streaming/_beta_messages.py +82 -43
  17. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/streaming/_beta_types.py +21 -13
  18. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/tools/_beta_runner.py +102 -101
  19. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/messages/batches.py +12 -12
  20. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/messages/messages.py +365 -29
  21. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/messages/batches.py +12 -12
  22. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/messages/messages.py +14 -8
  23. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/__init__.py +1 -0
  24. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_20250522_param.py +2 -0
  25. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_20250825_param.py +2 -0
  26. anthropic-0.73.0/src/anthropic/types/beta/beta_json_output_format_param.py +15 -0
  27. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_param.py +2 -0
  28. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_bash_20241022_param.py +2 -0
  29. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_bash_20250124_param.py +2 -0
  30. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_computer_use_20241022_param.py +2 -0
  31. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_computer_use_20250124_param.py +2 -0
  32. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_param.py +2 -0
  33. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20241022_param.py +2 -0
  34. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20250124_param.py +2 -0
  35. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20250429_param.py +2 -0
  36. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20250728_param.py +2 -0
  37. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_20250910_param.py +2 -0
  38. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_20250305_param.py +2 -0
  39. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/message_count_tokens_params.py +4 -0
  40. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/message_create_params.py +24 -2
  41. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/batch_create_params.py +8 -2
  42. anthropic-0.73.0/src/anthropic/types/beta/parsed_beta_message.py +68 -0
  43. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/batch_create_params.py +0 -1
  44. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/messages/test_batches.py +10 -0
  45. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/test_messages.py +65 -0
  46. anthropic-0.73.0/tests/lib/_parse/test_transform.py +191 -0
  47. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/test_beta_messages.py +7 -4
  48. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/test_partial_json.py +3 -3
  49. anthropic-0.73.0/tests/lib/tools/__inline_snapshot__/test_runners/TestSyncRunTools.test_streaming_call_sync_events/9cb114c8-69bd-4111-841b-edee30333afd.json +4 -0
  50. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/tools/test_runners.py +40 -143
  51. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/utils.py +7 -13
  52. {anthropic-0.72.1 → anthropic-0.73.0}/uv.lock +5 -5
  53. anthropic-0.72.1/.release-please-manifest.json +0 -3
  54. anthropic-0.72.1/tests/lib/tools/__inline_snapshot__/test_runners/TestSyncRunTools.test_max_iterations/ef758469-6fa6-454c-b2e6-19d0b450a8c5.json +0 -4
  55. anthropic-0.72.1/tests/lib/tools/__inline_snapshot__/test_runners/TestSyncRunTools.test_streaming_call_sync_events/9cb114c8-69bd-4111-841b-edee30333afd.json +0 -4
  56. anthropic-0.72.1/tests/lib/tools/__inline_snapshot__/test_runners/test_streaming_call_sync/e2140c0f-07db-47ee-b86b-c2ec476866d5.json +0 -4
  57. {anthropic-0.72.1 → anthropic-0.73.0}/.gitignore +0 -0
  58. {anthropic-0.72.1 → anthropic-0.73.0}/CONTRIBUTING.md +0 -0
  59. {anthropic-0.72.1 → anthropic-0.73.0}/LICENSE +0 -0
  60. {anthropic-0.72.1 → anthropic-0.73.0}/README.md +0 -0
  61. {anthropic-0.72.1 → anthropic-0.73.0}/SECURITY.md +0 -0
  62. {anthropic-0.72.1 → anthropic-0.73.0}/bin/check-release-environment +0 -0
  63. {anthropic-0.72.1 → anthropic-0.73.0}/bin/publish-pypi +0 -0
  64. {anthropic-0.72.1 → anthropic-0.73.0}/examples/.keep +0 -0
  65. {anthropic-0.72.1 → anthropic-0.73.0}/examples/batch_results.py +0 -0
  66. {anthropic-0.72.1 → anthropic-0.73.0}/examples/bedrock.py +0 -0
  67. {anthropic-0.72.1 → anthropic-0.73.0}/examples/images.py +0 -0
  68. {anthropic-0.72.1 → anthropic-0.73.0}/examples/logo.png +0 -0
  69. {anthropic-0.72.1 → anthropic-0.73.0}/examples/memory/basic.py +0 -0
  70. {anthropic-0.72.1 → anthropic-0.73.0}/examples/messages.py +0 -0
  71. {anthropic-0.72.1 → anthropic-0.73.0}/examples/messages_stream.py +0 -0
  72. {anthropic-0.72.1 → anthropic-0.73.0}/examples/text_completions_demo_async.py +0 -0
  73. {anthropic-0.72.1 → anthropic-0.73.0}/examples/text_completions_demo_sync.py +0 -0
  74. {anthropic-0.72.1 → anthropic-0.73.0}/examples/text_completions_streaming.py +0 -0
  75. {anthropic-0.72.1 → anthropic-0.73.0}/examples/thinking.py +0 -0
  76. {anthropic-0.72.1 → anthropic-0.73.0}/examples/thinking_stream.py +0 -0
  77. {anthropic-0.72.1 → anthropic-0.73.0}/examples/tools.py +0 -0
  78. {anthropic-0.72.1 → anthropic-0.73.0}/examples/tools_runner.py +0 -0
  79. {anthropic-0.72.1 → anthropic-0.73.0}/examples/tools_stream.py +0 -0
  80. {anthropic-0.72.1 → anthropic-0.73.0}/examples/vertex.py +0 -0
  81. {anthropic-0.72.1 → anthropic-0.73.0}/examples/web_search.py +0 -0
  82. {anthropic-0.72.1 → anthropic-0.73.0}/examples/web_search_stream.py +0 -0
  83. {anthropic-0.72.1 → anthropic-0.73.0}/helpers.md +0 -0
  84. {anthropic-0.72.1 → anthropic-0.73.0}/release-please-config.json +0 -0
  85. {anthropic-0.72.1 → anthropic-0.73.0}/requirements-dev.lock +0 -0
  86. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_base_client.py +0 -0
  87. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_client.py +0 -0
  88. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_constants.py +0 -0
  89. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_decoders/jsonl.py +0 -0
  90. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_exceptions.py +0 -0
  91. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_files.py +0 -0
  92. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_legacy_response.py +0 -0
  93. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_qs.py +0 -0
  94. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_resource.py +0 -0
  95. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_response.py +0 -0
  96. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_streaming.py +0 -0
  97. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_types.py +0 -0
  98. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/__init__.py +0 -0
  99. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_compat.py +0 -0
  100. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_datetime_parse.py +0 -0
  101. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_httpx.py +0 -0
  102. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_logs.py +0 -0
  103. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_proxy.py +0 -0
  104. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_reflection.py +0 -0
  105. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_resources_proxy.py +0 -0
  106. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_streams.py +0 -0
  107. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_sync.py +0 -0
  108. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_typing.py +0 -0
  109. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/_utils/_utils.py +0 -0
  110. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/.keep +0 -0
  111. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/__init__.py +0 -0
  112. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/_extras/__init__.py +0 -0
  113. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/_extras/_common.py +0 -0
  114. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/_extras/_google_auth.py +0 -0
  115. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/_files.py +0 -0
  116. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/bedrock/__init__.py +0 -0
  117. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_auth.py +0 -0
  118. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_beta.py +0 -0
  119. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_beta_messages.py +0 -0
  120. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_client.py +0 -0
  121. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_stream.py +0 -0
  122. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_stream_decoder.py +0 -0
  123. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/streaming/_messages.py +0 -0
  124. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/streaming/_types.py +0 -0
  125. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/tools/__init__.py +0 -0
  126. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/tools/_beta_builtin_memory_tool.py +0 -0
  127. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/tools/_beta_functions.py +0 -0
  128. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/vertex/__init__.py +0 -0
  129. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/vertex/_auth.py +0 -0
  130. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/vertex/_beta.py +0 -0
  131. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/vertex/_beta_messages.py +0 -0
  132. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/lib/vertex/_client.py +0 -0
  133. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/pagination.py +0 -0
  134. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/py.typed +0 -0
  135. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/__init__.py +0 -0
  136. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/__init__.py +0 -0
  137. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/beta.py +0 -0
  138. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/files.py +0 -0
  139. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/messages/__init__.py +0 -0
  140. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/models.py +0 -0
  141. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/skills/__init__.py +0 -0
  142. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/skills/skills.py +0 -0
  143. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/beta/skills/versions.py +0 -0
  144. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/completions.py +0 -0
  145. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/messages/__init__.py +0 -0
  146. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/resources/models.py +0 -0
  147. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/__init__.py +0 -0
  148. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/anthropic_beta_param.py +0 -0
  149. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/base64_image_source_param.py +0 -0
  150. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/base64_pdf_source_param.py +0 -0
  151. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_all_thinking_turns_param.py +0 -0
  152. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_image_source_param.py +0 -0
  153. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_pdf_block_param.py +0 -0
  154. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_pdf_source.py +0 -0
  155. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_pdf_source_param.py +0 -0
  156. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_output_block.py +0 -0
  157. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_output_block_param.py +0 -0
  158. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_result_block.py +0 -0
  159. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_result_block_param.py +0 -0
  160. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_block.py +0 -0
  161. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_block_param.py +0 -0
  162. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_error.py +0 -0
  163. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_error_param.py +0 -0
  164. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_cache_control_ephemeral_param.py +0 -0
  165. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_cache_creation.py +0 -0
  166. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_char_location.py +0 -0
  167. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_char_location_param.py +0 -0
  168. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_config.py +0 -0
  169. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_content_block_location.py +0 -0
  170. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_content_block_location_param.py +0 -0
  171. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_page_location.py +0 -0
  172. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_page_location_param.py +0 -0
  173. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_search_result_location.py +0 -0
  174. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_search_result_location_param.py +0 -0
  175. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_web_search_result_location_param.py +0 -0
  176. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citations_config_param.py +0 -0
  177. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citations_delta.py +0 -0
  178. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citations_web_search_result_location.py +0 -0
  179. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_thinking_20251015_edit_param.py +0 -0
  180. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_thinking_20251015_edit_response.py +0 -0
  181. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_tool_uses_20250919_edit_param.py +0 -0
  182. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_tool_uses_20250919_edit_response.py +0 -0
  183. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_output_block.py +0 -0
  184. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_output_block_param.py +0 -0
  185. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_result_block.py +0 -0
  186. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_result_block_param.py +0 -0
  187. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block.py +0 -0
  188. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block_content.py +0 -0
  189. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block_param.py +0 -0
  190. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block_param_content_param.py +0 -0
  191. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_error.py +0 -0
  192. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_error_code.py +0 -0
  193. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_error_param.py +0 -0
  194. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container.py +0 -0
  195. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container_params.py +0 -0
  196. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container_upload_block.py +0 -0
  197. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container_upload_block_param.py +0 -0
  198. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block.py +0 -0
  199. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block_param.py +0 -0
  200. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block_source_content_param.py +0 -0
  201. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block_source_param.py +0 -0
  202. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_context_management_config_param.py +0 -0
  203. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_context_management_response.py +0 -0
  204. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_count_tokens_context_management_response.py +0 -0
  205. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_document_block.py +0 -0
  206. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_file_document_source_param.py +0 -0
  207. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_file_image_source_param.py +0 -0
  208. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_image_block_param.py +0 -0
  209. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_input_json_delta.py +0 -0
  210. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_input_tokens_clear_at_least_param.py +0 -0
  211. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_input_tokens_trigger_param.py +0 -0
  212. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_mcp_tool_result_block.py +0 -0
  213. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_mcp_tool_use_block.py +0 -0
  214. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_mcp_tool_use_block_param.py +0 -0
  215. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_command.py +0 -0
  216. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_create_command.py +0 -0
  217. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_delete_command.py +0 -0
  218. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_insert_command.py +0 -0
  219. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_rename_command.py +0 -0
  220. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_str_replace_command.py +0 -0
  221. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_view_command.py +0 -0
  222. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message.py +0 -0
  223. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message_delta_usage.py +0 -0
  224. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message_param.py +0 -0
  225. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message_tokens_count.py +0 -0
  226. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_metadata_param.py +0 -0
  227. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_model_info.py +0 -0
  228. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_plain_text_source.py +0 -0
  229. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_plain_text_source_param.py +0 -0
  230. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_delta.py +0 -0
  231. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_delta_event.py +0 -0
  232. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_start_event.py +0 -0
  233. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_stop_event.py +0 -0
  234. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_delta_event.py +0 -0
  235. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_start_event.py +0 -0
  236. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_stop_event.py +0 -0
  237. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_stream_event.py +0 -0
  238. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_redacted_thinking_block.py +0 -0
  239. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_redacted_thinking_block_param.py +0 -0
  240. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_document_block_param.py +0 -0
  241. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_mcp_server_tool_configuration_param.py +0 -0
  242. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_mcp_server_url_definition_param.py +0 -0
  243. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_mcp_tool_result_block_param.py +0 -0
  244. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_search_result_block_param.py +0 -0
  245. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_server_tool_usage.py +0 -0
  246. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_server_tool_use_block.py +0 -0
  247. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_server_tool_use_block_param.py +0 -0
  248. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_signature_delta.py +0 -0
  249. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_skill.py +0 -0
  250. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_skill_params.py +0 -0
  251. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_stop_reason.py +0 -0
  252. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_block.py +0 -0
  253. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_block_param.py +0 -0
  254. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_citation.py +0 -0
  255. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_citation_param.py +0 -0
  256. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_delta.py +0 -0
  257. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_create_result_block.py +0 -0
  258. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_create_result_block_param.py +0 -0
  259. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_str_replace_result_block.py +0 -0
  260. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_str_replace_result_block_param.py +0 -0
  261. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_block.py +0 -0
  262. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_block_param.py +0 -0
  263. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_error.py +0 -0
  264. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_error_param.py +0 -0
  265. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_view_result_block.py +0 -0
  266. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_view_result_block_param.py +0 -0
  267. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_block.py +0 -0
  268. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_block_param.py +0 -0
  269. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_config_disabled_param.py +0 -0
  270. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_config_enabled_param.py +0 -0
  271. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_config_param.py +0 -0
  272. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_delta.py +0 -0
  273. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_turns_param.py +0 -0
  274. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_any_param.py +0 -0
  275. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_auto_param.py +0 -0
  276. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_none_param.py +0 -0
  277. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_param.py +0 -0
  278. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_tool_param.py +0 -0
  279. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_result_block_param.py +0 -0
  280. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_union_param.py +0 -0
  281. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_use_block.py +0 -0
  282. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_use_block_param.py +0 -0
  283. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_uses_keep_param.py +0 -0
  284. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_uses_trigger_param.py +0 -0
  285. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_url_image_source_param.py +0 -0
  286. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_url_pdf_source_param.py +0 -0
  287. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_usage.py +0 -0
  288. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_block.py +0 -0
  289. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_block_param.py +0 -0
  290. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_block.py +0 -0
  291. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_block_param.py +0 -0
  292. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_error_block.py +0 -0
  293. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_error_block_param.py +0 -0
  294. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_error_code.py +0 -0
  295. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_result_block.py +0 -0
  296. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_result_block_param.py +0 -0
  297. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_request_error_param.py +0 -0
  298. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block.py +0 -0
  299. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block_content.py +0 -0
  300. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block_param.py +0 -0
  301. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block_param_content_param.py +0 -0
  302. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_error.py +0 -0
  303. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_error_code.py +0 -0
  304. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/deleted_file.py +0 -0
  305. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/file_list_params.py +0 -0
  306. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/file_metadata.py +0 -0
  307. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/file_upload_params.py +0 -0
  308. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/__init__.py +0 -0
  309. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/batch_list_params.py +0 -0
  310. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_deleted_message_batch.py +0 -0
  311. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch.py +0 -0
  312. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_canceled_result.py +0 -0
  313. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_errored_result.py +0 -0
  314. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_expired_result.py +0 -0
  315. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_individual_response.py +0 -0
  316. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_request_counts.py +0 -0
  317. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_result.py +0 -0
  318. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_succeeded_result.py +0 -0
  319. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/model_list_params.py +0 -0
  320. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skill_create_params.py +0 -0
  321. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skill_create_response.py +0 -0
  322. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skill_delete_response.py +0 -0
  323. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skill_list_params.py +0 -0
  324. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skill_list_response.py +0 -0
  325. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skill_retrieve_response.py +0 -0
  326. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skills/__init__.py +0 -0
  327. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_create_params.py +0 -0
  328. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_create_response.py +0 -0
  329. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_delete_response.py +0 -0
  330. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_list_params.py +0 -0
  331. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_list_response.py +0 -0
  332. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_retrieve_response.py +0 -0
  333. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_api_error.py +0 -0
  334. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_authentication_error.py +0 -0
  335. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_billing_error.py +0 -0
  336. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_error.py +0 -0
  337. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_error_response.py +0 -0
  338. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_gateway_timeout_error.py +0 -0
  339. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_invalid_request_error.py +0 -0
  340. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_not_found_error.py +0 -0
  341. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_overloaded_error.py +0 -0
  342. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_permission_error.py +0 -0
  343. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/beta_rate_limit_error.py +0 -0
  344. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/cache_control_ephemeral_param.py +0 -0
  345. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/cache_creation.py +0 -0
  346. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_char_location.py +0 -0
  347. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_char_location_param.py +0 -0
  348. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_content_block_location.py +0 -0
  349. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_content_block_location_param.py +0 -0
  350. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_page_location.py +0 -0
  351. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_page_location_param.py +0 -0
  352. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_search_result_location_param.py +0 -0
  353. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citation_web_search_result_location_param.py +0 -0
  354. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citations_config_param.py +0 -0
  355. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citations_delta.py +0 -0
  356. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citations_search_result_location.py +0 -0
  357. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/citations_web_search_result_location.py +0 -0
  358. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/completion.py +0 -0
  359. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/completion_create_params.py +0 -0
  360. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/content_block.py +0 -0
  361. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/content_block_delta_event.py +0 -0
  362. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/content_block_param.py +0 -0
  363. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/content_block_source_content_param.py +0 -0
  364. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/content_block_source_param.py +0 -0
  365. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/content_block_start_event.py +0 -0
  366. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/content_block_stop_event.py +0 -0
  367. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/document_block_param.py +0 -0
  368. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/image_block_param.py +0 -0
  369. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/input_json_delta.py +0 -0
  370. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message.py +0 -0
  371. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_count_tokens_params.py +0 -0
  372. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_count_tokens_tool_param.py +0 -0
  373. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_create_params.py +0 -0
  374. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_delta_event.py +0 -0
  375. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_delta_usage.py +0 -0
  376. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_param.py +0 -0
  377. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_start_event.py +0 -0
  378. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_stop_event.py +0 -0
  379. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_stream_event.py +0 -0
  380. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/message_tokens_count.py +0 -0
  381. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/__init__.py +0 -0
  382. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/batch_list_params.py +0 -0
  383. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/deleted_message_batch.py +0 -0
  384. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch.py +0 -0
  385. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_canceled_result.py +0 -0
  386. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_errored_result.py +0 -0
  387. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_expired_result.py +0 -0
  388. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_individual_response.py +0 -0
  389. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_request_counts.py +0 -0
  390. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_result.py +0 -0
  391. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_succeeded_result.py +0 -0
  392. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/metadata_param.py +0 -0
  393. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/model.py +0 -0
  394. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/model_info.py +0 -0
  395. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/model_list_params.py +0 -0
  396. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/model_param.py +0 -0
  397. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/plain_text_source_param.py +0 -0
  398. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_delta.py +0 -0
  399. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_delta_event.py +0 -0
  400. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_start_event.py +0 -0
  401. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_stop_event.py +0 -0
  402. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_message_delta_event.py +0 -0
  403. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_message_start_event.py +0 -0
  404. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_message_stop_event.py +0 -0
  405. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/raw_message_stream_event.py +0 -0
  406. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/redacted_thinking_block.py +0 -0
  407. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/redacted_thinking_block_param.py +0 -0
  408. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/search_result_block_param.py +0 -0
  409. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/server_tool_usage.py +0 -0
  410. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/server_tool_use_block.py +0 -0
  411. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/server_tool_use_block_param.py +0 -0
  412. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/__init__.py +0 -0
  413. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/api_error_object.py +0 -0
  414. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/authentication_error.py +0 -0
  415. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/billing_error.py +0 -0
  416. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/error_object.py +0 -0
  417. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/error_response.py +0 -0
  418. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/gateway_timeout_error.py +0 -0
  419. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/invalid_request_error.py +0 -0
  420. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/not_found_error.py +0 -0
  421. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/overloaded_error.py +0 -0
  422. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/permission_error.py +0 -0
  423. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/shared/rate_limit_error.py +0 -0
  424. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/signature_delta.py +0 -0
  425. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/stop_reason.py +0 -0
  426. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/text_block.py +0 -0
  427. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/text_block_param.py +0 -0
  428. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/text_citation.py +0 -0
  429. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/text_citation_param.py +0 -0
  430. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/text_delta.py +0 -0
  431. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/thinking_block.py +0 -0
  432. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/thinking_block_param.py +0 -0
  433. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/thinking_config_disabled_param.py +0 -0
  434. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/thinking_config_enabled_param.py +0 -0
  435. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/thinking_config_param.py +0 -0
  436. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/thinking_delta.py +0 -0
  437. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_bash_20250124_param.py +0 -0
  438. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_choice_any_param.py +0 -0
  439. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_choice_auto_param.py +0 -0
  440. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_choice_none_param.py +0 -0
  441. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_choice_param.py +0 -0
  442. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_choice_tool_param.py +0 -0
  443. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_param.py +0 -0
  444. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_result_block_param.py +0 -0
  445. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_text_editor_20250124_param.py +0 -0
  446. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_text_editor_20250429_param.py +0 -0
  447. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_text_editor_20250728_param.py +0 -0
  448. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_union_param.py +0 -0
  449. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_use_block.py +0 -0
  450. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/tool_use_block_param.py +0 -0
  451. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/url_image_source_param.py +0 -0
  452. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/url_pdf_source_param.py +0 -0
  453. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/usage.py +0 -0
  454. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_result_block.py +0 -0
  455. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_result_block_param.py +0 -0
  456. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_20250305_param.py +0 -0
  457. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_request_error_param.py +0 -0
  458. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block.py +0 -0
  459. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block_content.py +0 -0
  460. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block_param.py +0 -0
  461. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block_param_content_param.py +0 -0
  462. {anthropic-0.72.1 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_error.py +0 -0
  463. {anthropic-0.72.1 → anthropic-0.73.0}/tests/__init__.py +0 -0
  464. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/__init__.py +0 -0
  465. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/__init__.py +0 -0
  466. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/messages/__init__.py +0 -0
  467. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/skills/__init__.py +0 -0
  468. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/skills/test_versions.py +0 -0
  469. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/test_files.py +0 -0
  470. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/test_models.py +0 -0
  471. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/beta/test_skills.py +0 -0
  472. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/messages/__init__.py +0 -0
  473. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/messages/test_batches.py +0 -0
  474. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/test_completions.py +0 -0
  475. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/test_messages.py +0 -0
  476. {anthropic-0.72.1 → anthropic-0.73.0}/tests/api_resources/test_models.py +0 -0
  477. {anthropic-0.72.1 → anthropic-0.73.0}/tests/conftest.py +0 -0
  478. {anthropic-0.72.1 → anthropic-0.73.0}/tests/decoders/test_jsonl.py +0 -0
  479. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/__init__.py +0 -0
  480. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/snapshots.py +0 -0
  481. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/__init__.py +0 -0
  482. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/fixtures/basic_response.txt +0 -0
  483. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/fixtures/incomplete_partial_json_response.txt +0 -0
  484. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/fixtures/tool_use_response.txt +0 -0
  485. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/helpers.py +0 -0
  486. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/streaming/test_messages.py +0 -0
  487. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/test_bedrock.py +0 -0
  488. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/test_vertex.py +0 -0
  489. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/tools/__init__.py +0 -0
  490. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/tools/__inline_snapshot__/test_runners/test_streaming_call_sync_events/9cb114c8-69bd-4111-841b-edee30333afd.json +0 -0
  491. {anthropic-0.72.1 → anthropic-0.73.0}/tests/lib/tools/test_functions.py +0 -0
  492. {anthropic-0.72.1 → anthropic-0.73.0}/tests/sample_file.txt +0 -0
  493. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_client.py +0 -0
  494. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_deepcopy.py +0 -0
  495. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_extract_files.py +0 -0
  496. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_files.py +0 -0
  497. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_legacy_response.py +0 -0
  498. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_models.py +0 -0
  499. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_qs.py +0 -0
  500. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_required_args.py +0 -0
  501. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_response.py +0 -0
  502. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_streaming.py +0 -0
  503. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_transform.py +0 -0
  504. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_utils/test_datetime_parse.py +0 -0
  505. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_utils/test_proxy.py +0 -0
  506. {anthropic-0.72.1 → anthropic-0.73.0}/tests/test_utils/test_typing.py +0 -0
  507. {anthropic-0.72.1 → anthropic-0.73.0}/tests/utils.py +0 -0
  508. {anthropic-0.72.1 → anthropic-0.73.0}/tools.md +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.73.0"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.73.0 (2025-11-14)
4
+
5
+ Full Changelog: [v0.72.1...v0.73.0](https://github.com/anthropics/anthropic-sdk-python/compare/v0.72.1...v0.73.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** add support for structured outputs beta ([688da81](https://github.com/anthropics/anthropic-sdk-python/commit/688da8126df8a304c5f01f0dc63cda437a62c217))
10
+
3
11
  ## 0.72.1 (2025-11-11)
4
12
 
5
13
  Full Changelog: [v0.72.0...v0.72.1](https://github.com/anthropics/anthropic-sdk-python/compare/v0.72.0...v0.72.1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: anthropic
3
- Version: 0.72.1
3
+ Version: 0.73.0
4
4
  Summary: The official Python library for the anthropic API
5
5
  Project-URL: Homepage, https://github.com/anthropics/anthropic-sdk-python
6
6
  Project-URL: Repository, https://github.com/anthropics/anthropic-sdk-python
@@ -263,6 +263,7 @@ from anthropic.types.beta import (
263
263
  BetaInputJSONDelta,
264
264
  BetaInputTokensClearAtLeast,
265
265
  BetaInputTokensTrigger,
266
+ BetaJSONOutputFormat,
266
267
  BetaMCPToolResultBlock,
267
268
  BetaMCPToolUseBlock,
268
269
  BetaMCPToolUseBlockParam,
@@ -0,0 +1,37 @@
1
+ # /// script
2
+ # requires-python = ">=3.9"
3
+ # dependencies = [
4
+ # "anthropic",
5
+ # ]
6
+ #
7
+ # [tool.uv.sources]
8
+ # anthropic = { path = "../", editable = true }
9
+ # ///
10
+
11
+
12
+ import pydantic
13
+
14
+ import anthropic
15
+
16
+
17
+ class Order(pydantic.BaseModel):
18
+ product_name: str
19
+ price: float
20
+ quantity: int
21
+
22
+
23
+ client = anthropic.Anthropic()
24
+
25
+ prompt = """
26
+ Extract the product name, price, and quantity from this customer message:
27
+ "Hi, I’d like to order 2 packs of Green Tea for 5.50 dollars each."
28
+ """
29
+
30
+ parsed_message = client.beta.messages.parse(
31
+ model="claude-sonnet-4-5-20250929-structured-outputs",
32
+ messages=[{"role": "user", "content": prompt}],
33
+ max_tokens=1024,
34
+ output_format=Order,
35
+ )
36
+
37
+ print(parsed_message.parsed_output) # Order(product_name='Green Tea', price=5.5, quantity=2)
@@ -0,0 +1,38 @@
1
+ # /// script
2
+ # requires-python = ">=3.9"
3
+ # dependencies = [
4
+ # "anthropic",
5
+ # ]
6
+ #
7
+ # [tool.uv.sources]
8
+ # anthropic = { path = "../", editable = true }
9
+ # ///
10
+
11
+ import pydantic
12
+
13
+ import anthropic
14
+
15
+
16
+ class Order(pydantic.BaseModel):
17
+ product_name: str
18
+ price: float
19
+ quantity: int
20
+
21
+
22
+ client = anthropic.Anthropic()
23
+
24
+ prompt = """
25
+ Extract the product name, price, and quantity from this customer message:
26
+ "Hi, I’d like to order 2 packs of Green Tea for 5.50 dollars each."
27
+ """
28
+
29
+ with client.beta.messages.stream(
30
+ model="claude-sonnet-4-5-20250929-structured-outputs",
31
+ messages=[{"role": "user", "content": prompt}],
32
+ betas=["structured-outputs-2025-09-17"],
33
+ max_tokens=1024,
34
+ output_format=Order,
35
+ ) as stream:
36
+ for event in stream:
37
+ if event.type == "text":
38
+ print(event.parsed_snapshot())
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "anthropic"
3
- version = "0.72.1"
3
+ version = "0.73.0"
4
4
  description = "The official Python library for the anthropic API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -160,7 +160,7 @@ show_error_codes = true
160
160
  #
161
161
  # We also exclude our `tests` as mypy doesn't always infer
162
162
  # types correctly and Pyright will still catch any type errors.
163
- exclude = ['src/anthropic/_files.py', '_dev/.*.py', 'tests/.*', 'examples/mcp_server_weather.py', 'examples/tools_with_mcp.py', 'examples/memory/basic.py']
163
+ exclude = ['src/anthropic/_files.py', '_dev/.*.py', 'tests/.*', 'examples/mcp_server_weather.py', 'examples/tools_with_mcp.py', 'examples/memory/basic.py', 'src/anthropic/lib/_parse/_transform.py']
164
164
 
165
165
  strict_equality = true
166
166
  implicit_reexport = true
@@ -44,6 +44,7 @@ from ._exceptions import (
44
44
  )
45
45
  from ._base_client import DefaultHttpxClient, DefaultAioHttpClient, DefaultAsyncHttpxClient
46
46
  from ._utils._logs import setup_logging as _setup_logging
47
+ from .lib._parse._transform import transform_schema
47
48
 
48
49
  __all__ = [
49
50
  "types",
@@ -91,6 +92,7 @@ __all__ = [
91
92
  "AI_PROMPT",
92
93
  "beta_tool",
93
94
  "beta_async_tool",
95
+ "transform_schema",
94
96
  ]
95
97
 
96
98
  if not _t.TYPE_CHECKING:
@@ -131,6 +131,12 @@ def model_json(model: pydantic.BaseModel, *, indent: int | None = None) -> str:
131
131
  return model.model_dump_json(indent=indent)
132
132
 
133
133
 
134
+ def model_parse_json(model: type[_ModelT], data: str | bytes) -> _ModelT:
135
+ if PYDANTIC_V1:
136
+ return model.parse_raw(data) # pyright: ignore[reportDeprecated]
137
+ return model.model_validate_json(data)
138
+
139
+
134
140
  def model_dump(
135
141
  model: pydantic.BaseModel,
136
142
  *,
@@ -774,7 +774,7 @@ else:
774
774
 
775
775
 
776
776
  if not PYDANTIC_V1:
777
- from pydantic import TypeAdapter as _TypeAdapter
777
+ from pydantic import TypeAdapter as _TypeAdapter, computed_field as computed_field
778
778
 
779
779
  _CachedTypeAdapter = cast("TypeAdapter[object]", lru_cache(maxsize=None)(_TypeAdapter))
780
780
 
@@ -811,6 +811,18 @@ elif not TYPE_CHECKING: # TODO: condition is weird
811
811
  def TypeAdapter(*_args: Any, **_kwargs: Any) -> Any:
812
812
  raise RuntimeError("attempted to use TypeAdapter in pydantic v1")
813
813
 
814
+ def computed_field(func: Any | None = None, /, **__: Any) -> Any:
815
+ def _exc_func(*_: Any, **__: Any) -> Any:
816
+ raise RuntimeError("attempted to use computed_field in pydantic v1")
817
+
818
+ def _dec(*_: Any, **__: Any) -> Any:
819
+ return _exc_func
820
+
821
+ if func is not None:
822
+ return _dec(func)
823
+ else:
824
+ return _dec
825
+
814
826
 
815
827
  class FinalRequestOptionsInput(TypedDict, total=False):
816
828
  method: Required[str]
@@ -218,7 +218,7 @@ def _transform_recursive(
218
218
  return data
219
219
 
220
220
  if isinstance(data, pydantic.BaseModel):
221
- return model_dump(data, exclude_unset=True, mode="json")
221
+ return model_dump(data, exclude_unset=True, mode="json", exclude=getattr(data, "__api_exclude__", None))
222
222
 
223
223
  annotated_type = _get_annotated_type(annotation)
224
224
  if annotated_type is None:
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "anthropic"
4
- __version__ = "0.72.1" # x-release-please-version
4
+ __version__ = "0.73.0" # x-release-please-version
@@ -0,0 +1,44 @@
1
+ from __future__ import annotations
2
+
3
+ from typing_extensions import TypeVar
4
+
5
+ from ..._types import NotGiven
6
+ from ..._models import TypeAdapter, construct_type_unchecked
7
+ from ..._utils._utils import is_given
8
+ from ...types.beta.beta_message import BetaMessage
9
+ from ...types.beta.parsed_beta_message import ParsedBetaMessage, ParsedBetaTextBlock, ParsedBetaContentBlock
10
+
11
+ ResponseFormatT = TypeVar("ResponseFormatT", default=None)
12
+
13
+
14
+ def parse_text(text: str, output_format: ResponseFormatT | NotGiven) -> ResponseFormatT | None:
15
+ if is_given(output_format):
16
+ adapted_type: TypeAdapter[ResponseFormatT] = TypeAdapter(output_format)
17
+ return adapted_type.validate_json(text)
18
+ return None
19
+
20
+
21
+ def parse_response(
22
+ *,
23
+ output_format: ResponseFormatT | NotGiven,
24
+ response: BetaMessage,
25
+ ) -> ParsedBetaMessage[ResponseFormatT]:
26
+ content_list: list[ParsedBetaContentBlock[ResponseFormatT]] = []
27
+ for content in response.content:
28
+ if content.type == "text":
29
+ content_list.append(
30
+ construct_type_unchecked(
31
+ type_=ParsedBetaTextBlock[ResponseFormatT],
32
+ value={**content.to_dict(), "parsed_output": parse_text(content.text, output_format)},
33
+ )
34
+ )
35
+ else:
36
+ content_list.append(content) # type: ignore
37
+
38
+ return construct_type_unchecked(
39
+ type_=ParsedBetaMessage[ResponseFormatT],
40
+ value={
41
+ **response.to_dict(),
42
+ "content": content_list,
43
+ },
44
+ )
@@ -0,0 +1,167 @@
1
+ from __future__ import annotations
2
+
3
+ import inspect
4
+ from typing import Any, Literal, Optional, cast
5
+ from typing_extensions import assert_never
6
+
7
+ import pydantic
8
+
9
+ from ..._utils import is_list
10
+
11
+ SupportedTypes = Literal[
12
+ "object",
13
+ "array",
14
+ "string",
15
+ "integer",
16
+ "number",
17
+ "boolean",
18
+ "null",
19
+ ]
20
+
21
+ SupportedStringFormats = {
22
+ "date-time",
23
+ "time",
24
+ "date",
25
+ "duration",
26
+ "email",
27
+ "hostname",
28
+ "uri",
29
+ "ipv4",
30
+ "ipv6",
31
+ "uuid",
32
+ }
33
+
34
+
35
+ def get_transformed_string(
36
+ schema: dict[str, Any],
37
+ ) -> dict[str, Any]:
38
+ """Transforms a JSON schema of type string to ensure it conforms to the API's expectations.
39
+
40
+ Specifically, it ensures that if the schema is of type "string" and does not already
41
+ specify a "format", it sets the format to "text".
42
+
43
+ Args:
44
+ schema: The original JSON schema.
45
+
46
+ Returns:
47
+ The transformed JSON schema.
48
+ """
49
+ if schema.get("type") == "string" and "format" not in schema:
50
+ schema["format"] = "text"
51
+ return schema
52
+
53
+
54
+ def transform_schema(
55
+ json_schema: type[pydantic.BaseModel] | dict[str, Any],
56
+ ) -> dict[str, Any]:
57
+ """
58
+ Transforms a JSON schema to ensure it conforms to the API's expectations.
59
+
60
+ Args:
61
+ json_schema (Dict[str, Any]): The original JSON schema.
62
+
63
+ Returns:
64
+ The transformed JSON schema.
65
+
66
+ Examples:
67
+ >>> transform_schema(
68
+ ... {
69
+ ... "type": "integer",
70
+ ... "minimum": 1,
71
+ ... "maximum": 10,
72
+ ... "description": "A number",
73
+ ... }
74
+ ... )
75
+ {'type': 'integer', 'description': 'A number\n\n{minimum: 1, maximum: 10}'}
76
+ """
77
+ if inspect.isclass(json_schema) and issubclass(json_schema, pydantic.BaseModel): # pyright: ignore[reportUnnecessaryIsInstance]
78
+ json_schema = json_schema.model_json_schema()
79
+
80
+ strict_schema: dict[str, Any] = {}
81
+ json_schema = {**json_schema}
82
+
83
+ ref = json_schema.pop("$ref", None)
84
+ if ref is not None:
85
+ strict_schema["$ref"] = ref
86
+ return strict_schema
87
+
88
+ defs = json_schema.pop("$defs", None)
89
+ if defs is not None:
90
+ strict_defs: dict[str, Any] = {}
91
+ strict_schema["$defs"] = strict_defs
92
+
93
+ for name, schema in defs.items():
94
+ strict_defs[name] = transform_schema(schema)
95
+
96
+ type_: Optional[SupportedTypes] = json_schema.pop("type", None)
97
+ any_of = json_schema.pop("anyOf", None)
98
+ one_of = json_schema.pop("oneOf", None)
99
+ all_of = json_schema.pop("allOf", None)
100
+
101
+ if is_list(any_of):
102
+ strict_schema["anyOf"] = [transform_schema(cast("dict[str, Any]", variant)) for variant in any_of]
103
+ elif is_list(one_of):
104
+ strict_schema["anyOf"] = [transform_schema(cast("dict[str, Any]", variant)) for variant in one_of]
105
+ elif is_list(all_of):
106
+ strict_schema["allOf"] = [transform_schema(cast("dict[str, Any]", variant)) for variant in all_of]
107
+ else:
108
+ if type_ is None:
109
+ raise ValueError("Schema must have a 'type', 'anyOf', 'oneOf', or 'allOf' field.")
110
+
111
+ strict_schema["type"] = type_
112
+
113
+ description = json_schema.pop("description", None)
114
+ if description is not None:
115
+ strict_schema["description"] = description
116
+
117
+ title = json_schema.pop("title", None)
118
+ if title is not None:
119
+ strict_schema["title"] = title
120
+
121
+ if type_ == "object":
122
+ strict_schema["properties"] = {
123
+ key: transform_schema(prop_schema) for key, prop_schema in json_schema.pop("properties", {}).items()
124
+ }
125
+ json_schema.pop("additionalProperties", None)
126
+ strict_schema["additionalProperties"] = False
127
+
128
+ required = json_schema.pop("required", None)
129
+ if required is not None:
130
+ strict_schema["required"] = required
131
+
132
+ elif type_ == "string":
133
+ format = json_schema.pop("format", None)
134
+ if format and format in SupportedStringFormats:
135
+ strict_schema["format"] = format
136
+ elif format:
137
+ # add it back so its treated as an extra property and appended to the description
138
+ json_schema["format"] = format
139
+ elif type_ == "array":
140
+ items = json_schema.pop("items", None)
141
+ if items is not None:
142
+ strict_schema["items"] = transform_schema(items)
143
+
144
+ min_items = json_schema.pop("minItems", None)
145
+ if min_items is not None and min_items == 0 or min_items == 1:
146
+ strict_schema["minItems"] = min_items
147
+ elif min_items is not None:
148
+ # add it back so its treated as an extra property and appended to the description
149
+ json_schema["minItems"] = min_items
150
+
151
+ elif type_ == "boolean" or type_ == "integer" or type_ == "number" or type_ == "null" or type_ is None:
152
+ pass
153
+ else:
154
+ assert_never(type_)
155
+
156
+ # if there are any propes leftover then they aren't supported, so we add them to the description
157
+ # so that the model *might* follow them.
158
+ if json_schema:
159
+ description = strict_schema.get("description")
160
+ strict_schema["description"] = (
161
+ (description + "\n\n" if description is not None else "")
162
+ + "{"
163
+ + ", ".join(f"{key}: {value}" for key, value in json_schema.items())
164
+ + "}"
165
+ )
166
+
167
+ return strict_schema
@@ -1,3 +1,5 @@
1
+ from typing_extensions import TypeAlias
2
+
1
3
  from ._types import (
2
4
  TextEvent as TextEvent,
3
5
  InputJsonEvent as InputJsonEvent,
@@ -12,12 +14,20 @@ from ._messages import (
12
14
  AsyncMessageStreamManager as AsyncMessageStreamManager,
13
15
  )
14
16
  from ._beta_types import (
15
- BetaTextEvent as BetaTextEvent,
16
17
  BetaInputJsonEvent as BetaInputJsonEvent,
17
- BetaMessageStopEvent as BetaMessageStopEvent,
18
- BetaMessageStreamEvent as BetaMessageStreamEvent,
19
- BetaContentBlockStopEvent as BetaContentBlockStopEvent,
18
+ ParsedBetaTextEvent as ParsedBetaTextEvent,
19
+ ParsedBetaMessageStopEvent as ParsedBetaMessageStopEvent,
20
+ ParsedBetaMessageStreamEvent as ParsedBetaMessageStreamEvent,
21
+ ParsedBetaContentBlockStopEvent as ParsedBetaContentBlockStopEvent,
20
22
  )
23
+
24
+ # For backwards compatibility
25
+ BetaTextEvent: TypeAlias = ParsedBetaTextEvent
26
+ BetaMessageStopEvent: TypeAlias = ParsedBetaMessageStopEvent[object]
27
+ BetaMessageStreamEvent: TypeAlias = ParsedBetaMessageStreamEvent
28
+ BetaContentBlockStopEvent: TypeAlias = ParsedBetaContentBlockStopEvent[object]
29
+
30
+
21
31
  from ._beta_messages import (
22
32
  BetaMessageStream as BetaMessageStream,
23
33
  BetaAsyncMessageStream as BetaAsyncMessageStream,