anthropic 0.72.0__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 (509) hide show
  1. anthropic-0.73.0/.release-please-manifest.json +3 -0
  2. {anthropic-0.72.0 → anthropic-0.73.0}/CHANGELOG.md +25 -0
  3. {anthropic-0.72.0 → anthropic-0.73.0}/PKG-INFO +4 -5
  4. {anthropic-0.72.0 → anthropic-0.73.0}/README.md +2 -2
  5. {anthropic-0.72.0 → anthropic-0.73.0}/api.md +1 -0
  6. anthropic-0.73.0/examples/structured_outputs.py +37 -0
  7. anthropic-0.73.0/examples/structured_outputs_streaming.py +38 -0
  8. {anthropic-0.72.0 → anthropic-0.73.0}/pyproject.toml +4 -5
  9. {anthropic-0.72.0 → anthropic-0.73.0}/requirements-dev.lock +15 -50
  10. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/__init__.py +2 -0
  11. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_compat.py +6 -0
  12. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_models.py +50 -16
  13. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_streaming.py +4 -6
  14. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_sync.py +3 -31
  15. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_transform.py +1 -1
  16. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_utils.py +1 -1
  17. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_version.py +1 -1
  18. anthropic-0.73.0/src/anthropic/lib/_parse/_response.py +44 -0
  19. anthropic-0.73.0/src/anthropic/lib/_parse/_transform.py +167 -0
  20. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/streaming/__init__.py +14 -4
  21. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/streaming/_beta_messages.py +82 -43
  22. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/streaming/_beta_types.py +21 -13
  23. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/tools/_beta_runner.py +102 -101
  24. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/messages/batches.py +12 -12
  25. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/messages/messages.py +365 -29
  26. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/messages/batches.py +12 -12
  27. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/messages/messages.py +14 -8
  28. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/__init__.py +1 -0
  29. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_20250522_param.py +2 -0
  30. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_20250825_param.py +2 -0
  31. anthropic-0.73.0/src/anthropic/types/beta/beta_json_output_format_param.py +15 -0
  32. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_param.py +2 -0
  33. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_bash_20241022_param.py +2 -0
  34. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_bash_20250124_param.py +2 -0
  35. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_computer_use_20241022_param.py +2 -0
  36. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_computer_use_20250124_param.py +2 -0
  37. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_param.py +2 -0
  38. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20241022_param.py +2 -0
  39. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20250124_param.py +2 -0
  40. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20250429_param.py +2 -0
  41. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_text_editor_20250728_param.py +2 -0
  42. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_20250910_param.py +2 -0
  43. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_20250305_param.py +2 -0
  44. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/message_count_tokens_params.py +4 -0
  45. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/message_create_params.py +24 -2
  46. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/batch_create_params.py +8 -2
  47. anthropic-0.73.0/src/anthropic/types/beta/parsed_beta_message.py +68 -0
  48. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/batch_create_params.py +0 -1
  49. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/messages/test_batches.py +10 -0
  50. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/test_messages.py +65 -0
  51. anthropic-0.73.0/tests/lib/_parse/test_transform.py +191 -0
  52. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/test_beta_messages.py +7 -4
  53. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/test_partial_json.py +3 -3
  54. 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
  55. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/tools/test_runners.py +40 -143
  56. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/utils.py +7 -13
  57. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_client.py +202 -170
  58. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_models.py +4 -4
  59. anthropic-0.73.0/uv.lock +1855 -0
  60. anthropic-0.72.0/.release-please-manifest.json +0 -3
  61. anthropic-0.72.0/tests/lib/tools/__inline_snapshot__/test_runners/TestSyncRunTools.test_max_iterations/ef758469-6fa6-454c-b2e6-19d0b450a8c5.json +0 -4
  62. anthropic-0.72.0/tests/lib/tools/__inline_snapshot__/test_runners/TestSyncRunTools.test_streaming_call_sync_events/9cb114c8-69bd-4111-841b-edee30333afd.json +0 -4
  63. anthropic-0.72.0/tests/lib/tools/__inline_snapshot__/test_runners/test_streaming_call_sync/e2140c0f-07db-47ee-b86b-c2ec476866d5.json +0 -4
  64. anthropic-0.72.0/uv.lock +0 -3083
  65. {anthropic-0.72.0 → anthropic-0.73.0}/.gitignore +0 -0
  66. {anthropic-0.72.0 → anthropic-0.73.0}/CONTRIBUTING.md +0 -0
  67. {anthropic-0.72.0 → anthropic-0.73.0}/LICENSE +0 -0
  68. {anthropic-0.72.0 → anthropic-0.73.0}/SECURITY.md +0 -0
  69. {anthropic-0.72.0 → anthropic-0.73.0}/bin/check-release-environment +0 -0
  70. {anthropic-0.72.0 → anthropic-0.73.0}/bin/publish-pypi +0 -0
  71. {anthropic-0.72.0 → anthropic-0.73.0}/examples/.keep +0 -0
  72. {anthropic-0.72.0 → anthropic-0.73.0}/examples/batch_results.py +0 -0
  73. {anthropic-0.72.0 → anthropic-0.73.0}/examples/bedrock.py +0 -0
  74. {anthropic-0.72.0 → anthropic-0.73.0}/examples/images.py +0 -0
  75. {anthropic-0.72.0 → anthropic-0.73.0}/examples/logo.png +0 -0
  76. {anthropic-0.72.0 → anthropic-0.73.0}/examples/memory/basic.py +0 -0
  77. {anthropic-0.72.0 → anthropic-0.73.0}/examples/messages.py +0 -0
  78. {anthropic-0.72.0 → anthropic-0.73.0}/examples/messages_stream.py +0 -0
  79. {anthropic-0.72.0 → anthropic-0.73.0}/examples/text_completions_demo_async.py +0 -0
  80. {anthropic-0.72.0 → anthropic-0.73.0}/examples/text_completions_demo_sync.py +0 -0
  81. {anthropic-0.72.0 → anthropic-0.73.0}/examples/text_completions_streaming.py +0 -0
  82. {anthropic-0.72.0 → anthropic-0.73.0}/examples/thinking.py +0 -0
  83. {anthropic-0.72.0 → anthropic-0.73.0}/examples/thinking_stream.py +0 -0
  84. {anthropic-0.72.0 → anthropic-0.73.0}/examples/tools.py +0 -0
  85. {anthropic-0.72.0 → anthropic-0.73.0}/examples/tools_runner.py +0 -0
  86. {anthropic-0.72.0 → anthropic-0.73.0}/examples/tools_stream.py +0 -0
  87. {anthropic-0.72.0 → anthropic-0.73.0}/examples/vertex.py +0 -0
  88. {anthropic-0.72.0 → anthropic-0.73.0}/examples/web_search.py +0 -0
  89. {anthropic-0.72.0 → anthropic-0.73.0}/examples/web_search_stream.py +0 -0
  90. {anthropic-0.72.0 → anthropic-0.73.0}/helpers.md +0 -0
  91. {anthropic-0.72.0 → anthropic-0.73.0}/release-please-config.json +0 -0
  92. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_base_client.py +0 -0
  93. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_client.py +0 -0
  94. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_constants.py +0 -0
  95. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_decoders/jsonl.py +0 -0
  96. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_exceptions.py +0 -0
  97. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_files.py +0 -0
  98. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_legacy_response.py +0 -0
  99. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_qs.py +0 -0
  100. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_resource.py +0 -0
  101. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_response.py +0 -0
  102. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_types.py +0 -0
  103. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/__init__.py +0 -0
  104. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_compat.py +0 -0
  105. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_datetime_parse.py +0 -0
  106. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_httpx.py +0 -0
  107. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_logs.py +0 -0
  108. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_proxy.py +0 -0
  109. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_reflection.py +0 -0
  110. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_resources_proxy.py +0 -0
  111. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_streams.py +0 -0
  112. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/_utils/_typing.py +0 -0
  113. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/.keep +0 -0
  114. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/__init__.py +0 -0
  115. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/_extras/__init__.py +0 -0
  116. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/_extras/_common.py +0 -0
  117. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/_extras/_google_auth.py +0 -0
  118. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/_files.py +0 -0
  119. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/bedrock/__init__.py +0 -0
  120. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_auth.py +0 -0
  121. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_beta.py +0 -0
  122. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_beta_messages.py +0 -0
  123. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_client.py +0 -0
  124. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_stream.py +0 -0
  125. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/bedrock/_stream_decoder.py +0 -0
  126. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/streaming/_messages.py +0 -0
  127. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/streaming/_types.py +0 -0
  128. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/tools/__init__.py +0 -0
  129. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/tools/_beta_builtin_memory_tool.py +0 -0
  130. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/tools/_beta_functions.py +0 -0
  131. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/vertex/__init__.py +0 -0
  132. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/vertex/_auth.py +0 -0
  133. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/vertex/_beta.py +0 -0
  134. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/vertex/_beta_messages.py +0 -0
  135. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/lib/vertex/_client.py +0 -0
  136. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/pagination.py +0 -0
  137. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/py.typed +0 -0
  138. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/__init__.py +0 -0
  139. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/__init__.py +0 -0
  140. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/beta.py +0 -0
  141. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/files.py +0 -0
  142. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/messages/__init__.py +0 -0
  143. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/models.py +0 -0
  144. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/skills/__init__.py +0 -0
  145. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/skills/skills.py +0 -0
  146. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/beta/skills/versions.py +0 -0
  147. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/completions.py +0 -0
  148. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/messages/__init__.py +0 -0
  149. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/resources/models.py +0 -0
  150. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/__init__.py +0 -0
  151. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/anthropic_beta_param.py +0 -0
  152. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/base64_image_source_param.py +0 -0
  153. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/base64_pdf_source_param.py +0 -0
  154. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_all_thinking_turns_param.py +0 -0
  155. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_image_source_param.py +0 -0
  156. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_pdf_block_param.py +0 -0
  157. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_pdf_source.py +0 -0
  158. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_base64_pdf_source_param.py +0 -0
  159. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_output_block.py +0 -0
  160. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_output_block_param.py +0 -0
  161. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_result_block.py +0 -0
  162. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_result_block_param.py +0 -0
  163. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_block.py +0 -0
  164. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_block_param.py +0 -0
  165. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_error.py +0 -0
  166. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_bash_code_execution_tool_result_error_param.py +0 -0
  167. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_cache_control_ephemeral_param.py +0 -0
  168. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_cache_creation.py +0 -0
  169. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_char_location.py +0 -0
  170. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_char_location_param.py +0 -0
  171. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_config.py +0 -0
  172. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_content_block_location.py +0 -0
  173. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_content_block_location_param.py +0 -0
  174. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_page_location.py +0 -0
  175. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_page_location_param.py +0 -0
  176. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_search_result_location.py +0 -0
  177. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_search_result_location_param.py +0 -0
  178. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citation_web_search_result_location_param.py +0 -0
  179. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citations_config_param.py +0 -0
  180. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citations_delta.py +0 -0
  181. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_citations_web_search_result_location.py +0 -0
  182. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_thinking_20251015_edit_param.py +0 -0
  183. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_thinking_20251015_edit_response.py +0 -0
  184. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_tool_uses_20250919_edit_param.py +0 -0
  185. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_clear_tool_uses_20250919_edit_response.py +0 -0
  186. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_output_block.py +0 -0
  187. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_output_block_param.py +0 -0
  188. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_result_block.py +0 -0
  189. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_result_block_param.py +0 -0
  190. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block.py +0 -0
  191. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block_content.py +0 -0
  192. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block_param.py +0 -0
  193. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_block_param_content_param.py +0 -0
  194. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_error.py +0 -0
  195. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_error_code.py +0 -0
  196. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_code_execution_tool_result_error_param.py +0 -0
  197. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container.py +0 -0
  198. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container_params.py +0 -0
  199. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container_upload_block.py +0 -0
  200. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_container_upload_block_param.py +0 -0
  201. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block.py +0 -0
  202. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block_param.py +0 -0
  203. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block_source_content_param.py +0 -0
  204. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_content_block_source_param.py +0 -0
  205. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_context_management_config_param.py +0 -0
  206. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_context_management_response.py +0 -0
  207. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_count_tokens_context_management_response.py +0 -0
  208. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_document_block.py +0 -0
  209. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_file_document_source_param.py +0 -0
  210. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_file_image_source_param.py +0 -0
  211. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_image_block_param.py +0 -0
  212. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_input_json_delta.py +0 -0
  213. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_input_tokens_clear_at_least_param.py +0 -0
  214. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_input_tokens_trigger_param.py +0 -0
  215. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_mcp_tool_result_block.py +0 -0
  216. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_mcp_tool_use_block.py +0 -0
  217. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_mcp_tool_use_block_param.py +0 -0
  218. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_command.py +0 -0
  219. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_create_command.py +0 -0
  220. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_delete_command.py +0 -0
  221. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_insert_command.py +0 -0
  222. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_rename_command.py +0 -0
  223. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_str_replace_command.py +0 -0
  224. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_memory_tool_20250818_view_command.py +0 -0
  225. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message.py +0 -0
  226. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message_delta_usage.py +0 -0
  227. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message_param.py +0 -0
  228. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_message_tokens_count.py +0 -0
  229. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_metadata_param.py +0 -0
  230. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_model_info.py +0 -0
  231. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_plain_text_source.py +0 -0
  232. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_plain_text_source_param.py +0 -0
  233. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_delta.py +0 -0
  234. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_delta_event.py +0 -0
  235. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_start_event.py +0 -0
  236. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_content_block_stop_event.py +0 -0
  237. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_delta_event.py +0 -0
  238. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_start_event.py +0 -0
  239. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_stop_event.py +0 -0
  240. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_raw_message_stream_event.py +0 -0
  241. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_redacted_thinking_block.py +0 -0
  242. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_redacted_thinking_block_param.py +0 -0
  243. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_document_block_param.py +0 -0
  244. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_mcp_server_tool_configuration_param.py +0 -0
  245. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_mcp_server_url_definition_param.py +0 -0
  246. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_request_mcp_tool_result_block_param.py +0 -0
  247. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_search_result_block_param.py +0 -0
  248. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_server_tool_usage.py +0 -0
  249. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_server_tool_use_block.py +0 -0
  250. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_server_tool_use_block_param.py +0 -0
  251. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_signature_delta.py +0 -0
  252. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_skill.py +0 -0
  253. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_skill_params.py +0 -0
  254. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_stop_reason.py +0 -0
  255. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_block.py +0 -0
  256. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_block_param.py +0 -0
  257. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_citation.py +0 -0
  258. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_citation_param.py +0 -0
  259. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_delta.py +0 -0
  260. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_create_result_block.py +0 -0
  261. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_create_result_block_param.py +0 -0
  262. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_str_replace_result_block.py +0 -0
  263. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_str_replace_result_block_param.py +0 -0
  264. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_block.py +0 -0
  265. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_block_param.py +0 -0
  266. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_error.py +0 -0
  267. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_tool_result_error_param.py +0 -0
  268. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_view_result_block.py +0 -0
  269. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_text_editor_code_execution_view_result_block_param.py +0 -0
  270. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_block.py +0 -0
  271. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_block_param.py +0 -0
  272. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_config_disabled_param.py +0 -0
  273. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_config_enabled_param.py +0 -0
  274. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_config_param.py +0 -0
  275. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_delta.py +0 -0
  276. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_thinking_turns_param.py +0 -0
  277. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_any_param.py +0 -0
  278. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_auto_param.py +0 -0
  279. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_none_param.py +0 -0
  280. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_param.py +0 -0
  281. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_choice_tool_param.py +0 -0
  282. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_result_block_param.py +0 -0
  283. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_union_param.py +0 -0
  284. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_use_block.py +0 -0
  285. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_use_block_param.py +0 -0
  286. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_uses_keep_param.py +0 -0
  287. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_tool_uses_trigger_param.py +0 -0
  288. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_url_image_source_param.py +0 -0
  289. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_url_pdf_source_param.py +0 -0
  290. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_usage.py +0 -0
  291. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_block.py +0 -0
  292. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_block_param.py +0 -0
  293. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_block.py +0 -0
  294. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_block_param.py +0 -0
  295. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_error_block.py +0 -0
  296. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_error_block_param.py +0 -0
  297. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_fetch_tool_result_error_code.py +0 -0
  298. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_result_block.py +0 -0
  299. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_result_block_param.py +0 -0
  300. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_request_error_param.py +0 -0
  301. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block.py +0 -0
  302. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block_content.py +0 -0
  303. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block_param.py +0 -0
  304. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_block_param_content_param.py +0 -0
  305. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_error.py +0 -0
  306. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/beta_web_search_tool_result_error_code.py +0 -0
  307. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/deleted_file.py +0 -0
  308. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/file_list_params.py +0 -0
  309. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/file_metadata.py +0 -0
  310. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/file_upload_params.py +0 -0
  311. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/__init__.py +0 -0
  312. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/batch_list_params.py +0 -0
  313. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_deleted_message_batch.py +0 -0
  314. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch.py +0 -0
  315. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_canceled_result.py +0 -0
  316. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_errored_result.py +0 -0
  317. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_expired_result.py +0 -0
  318. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_individual_response.py +0 -0
  319. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_request_counts.py +0 -0
  320. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_result.py +0 -0
  321. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/messages/beta_message_batch_succeeded_result.py +0 -0
  322. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/model_list_params.py +0 -0
  323. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skill_create_params.py +0 -0
  324. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skill_create_response.py +0 -0
  325. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skill_delete_response.py +0 -0
  326. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skill_list_params.py +0 -0
  327. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skill_list_response.py +0 -0
  328. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skill_retrieve_response.py +0 -0
  329. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skills/__init__.py +0 -0
  330. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_create_params.py +0 -0
  331. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_create_response.py +0 -0
  332. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_delete_response.py +0 -0
  333. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_list_params.py +0 -0
  334. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_list_response.py +0 -0
  335. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta/skills/version_retrieve_response.py +0 -0
  336. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_api_error.py +0 -0
  337. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_authentication_error.py +0 -0
  338. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_billing_error.py +0 -0
  339. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_error.py +0 -0
  340. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_error_response.py +0 -0
  341. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_gateway_timeout_error.py +0 -0
  342. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_invalid_request_error.py +0 -0
  343. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_not_found_error.py +0 -0
  344. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_overloaded_error.py +0 -0
  345. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_permission_error.py +0 -0
  346. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/beta_rate_limit_error.py +0 -0
  347. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/cache_control_ephemeral_param.py +0 -0
  348. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/cache_creation.py +0 -0
  349. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_char_location.py +0 -0
  350. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_char_location_param.py +0 -0
  351. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_content_block_location.py +0 -0
  352. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_content_block_location_param.py +0 -0
  353. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_page_location.py +0 -0
  354. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_page_location_param.py +0 -0
  355. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_search_result_location_param.py +0 -0
  356. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citation_web_search_result_location_param.py +0 -0
  357. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citations_config_param.py +0 -0
  358. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citations_delta.py +0 -0
  359. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citations_search_result_location.py +0 -0
  360. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/citations_web_search_result_location.py +0 -0
  361. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/completion.py +0 -0
  362. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/completion_create_params.py +0 -0
  363. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/content_block.py +0 -0
  364. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/content_block_delta_event.py +0 -0
  365. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/content_block_param.py +0 -0
  366. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/content_block_source_content_param.py +0 -0
  367. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/content_block_source_param.py +0 -0
  368. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/content_block_start_event.py +0 -0
  369. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/content_block_stop_event.py +0 -0
  370. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/document_block_param.py +0 -0
  371. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/image_block_param.py +0 -0
  372. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/input_json_delta.py +0 -0
  373. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message.py +0 -0
  374. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_count_tokens_params.py +0 -0
  375. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_count_tokens_tool_param.py +0 -0
  376. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_create_params.py +0 -0
  377. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_delta_event.py +0 -0
  378. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_delta_usage.py +0 -0
  379. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_param.py +0 -0
  380. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_start_event.py +0 -0
  381. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_stop_event.py +0 -0
  382. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_stream_event.py +0 -0
  383. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/message_tokens_count.py +0 -0
  384. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/__init__.py +0 -0
  385. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/batch_list_params.py +0 -0
  386. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/deleted_message_batch.py +0 -0
  387. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch.py +0 -0
  388. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_canceled_result.py +0 -0
  389. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_errored_result.py +0 -0
  390. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_expired_result.py +0 -0
  391. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_individual_response.py +0 -0
  392. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_request_counts.py +0 -0
  393. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_result.py +0 -0
  394. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/messages/message_batch_succeeded_result.py +0 -0
  395. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/metadata_param.py +0 -0
  396. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/model.py +0 -0
  397. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/model_info.py +0 -0
  398. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/model_list_params.py +0 -0
  399. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/model_param.py +0 -0
  400. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/plain_text_source_param.py +0 -0
  401. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_delta.py +0 -0
  402. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_delta_event.py +0 -0
  403. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_start_event.py +0 -0
  404. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_content_block_stop_event.py +0 -0
  405. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_message_delta_event.py +0 -0
  406. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_message_start_event.py +0 -0
  407. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_message_stop_event.py +0 -0
  408. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/raw_message_stream_event.py +0 -0
  409. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/redacted_thinking_block.py +0 -0
  410. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/redacted_thinking_block_param.py +0 -0
  411. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/search_result_block_param.py +0 -0
  412. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/server_tool_usage.py +0 -0
  413. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/server_tool_use_block.py +0 -0
  414. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/server_tool_use_block_param.py +0 -0
  415. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/__init__.py +0 -0
  416. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/api_error_object.py +0 -0
  417. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/authentication_error.py +0 -0
  418. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/billing_error.py +0 -0
  419. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/error_object.py +0 -0
  420. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/error_response.py +0 -0
  421. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/gateway_timeout_error.py +0 -0
  422. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/invalid_request_error.py +0 -0
  423. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/not_found_error.py +0 -0
  424. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/overloaded_error.py +0 -0
  425. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/permission_error.py +0 -0
  426. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/shared/rate_limit_error.py +0 -0
  427. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/signature_delta.py +0 -0
  428. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/stop_reason.py +0 -0
  429. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/text_block.py +0 -0
  430. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/text_block_param.py +0 -0
  431. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/text_citation.py +0 -0
  432. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/text_citation_param.py +0 -0
  433. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/text_delta.py +0 -0
  434. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/thinking_block.py +0 -0
  435. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/thinking_block_param.py +0 -0
  436. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/thinking_config_disabled_param.py +0 -0
  437. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/thinking_config_enabled_param.py +0 -0
  438. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/thinking_config_param.py +0 -0
  439. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/thinking_delta.py +0 -0
  440. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_bash_20250124_param.py +0 -0
  441. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_choice_any_param.py +0 -0
  442. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_choice_auto_param.py +0 -0
  443. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_choice_none_param.py +0 -0
  444. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_choice_param.py +0 -0
  445. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_choice_tool_param.py +0 -0
  446. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_param.py +0 -0
  447. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_result_block_param.py +0 -0
  448. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_text_editor_20250124_param.py +0 -0
  449. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_text_editor_20250429_param.py +0 -0
  450. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_text_editor_20250728_param.py +0 -0
  451. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_union_param.py +0 -0
  452. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_use_block.py +0 -0
  453. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/tool_use_block_param.py +0 -0
  454. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/url_image_source_param.py +0 -0
  455. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/url_pdf_source_param.py +0 -0
  456. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/usage.py +0 -0
  457. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_result_block.py +0 -0
  458. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_result_block_param.py +0 -0
  459. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_20250305_param.py +0 -0
  460. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_request_error_param.py +0 -0
  461. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block.py +0 -0
  462. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block_content.py +0 -0
  463. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block_param.py +0 -0
  464. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_block_param_content_param.py +0 -0
  465. {anthropic-0.72.0 → anthropic-0.73.0}/src/anthropic/types/web_search_tool_result_error.py +0 -0
  466. {anthropic-0.72.0 → anthropic-0.73.0}/tests/__init__.py +0 -0
  467. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/__init__.py +0 -0
  468. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/__init__.py +0 -0
  469. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/messages/__init__.py +0 -0
  470. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/skills/__init__.py +0 -0
  471. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/skills/test_versions.py +0 -0
  472. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/test_files.py +0 -0
  473. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/test_models.py +0 -0
  474. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/beta/test_skills.py +0 -0
  475. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/messages/__init__.py +0 -0
  476. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/messages/test_batches.py +0 -0
  477. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/test_completions.py +0 -0
  478. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/test_messages.py +0 -0
  479. {anthropic-0.72.0 → anthropic-0.73.0}/tests/api_resources/test_models.py +0 -0
  480. {anthropic-0.72.0 → anthropic-0.73.0}/tests/conftest.py +0 -0
  481. {anthropic-0.72.0 → anthropic-0.73.0}/tests/decoders/test_jsonl.py +0 -0
  482. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/__init__.py +0 -0
  483. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/snapshots.py +0 -0
  484. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/__init__.py +0 -0
  485. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/fixtures/basic_response.txt +0 -0
  486. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/fixtures/incomplete_partial_json_response.txt +0 -0
  487. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/fixtures/tool_use_response.txt +0 -0
  488. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/helpers.py +0 -0
  489. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/streaming/test_messages.py +0 -0
  490. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/test_bedrock.py +0 -0
  491. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/test_vertex.py +0 -0
  492. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/tools/__init__.py +0 -0
  493. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/tools/__inline_snapshot__/test_runners/test_streaming_call_sync_events/9cb114c8-69bd-4111-841b-edee30333afd.json +0 -0
  494. {anthropic-0.72.0 → anthropic-0.73.0}/tests/lib/tools/test_functions.py +0 -0
  495. {anthropic-0.72.0 → anthropic-0.73.0}/tests/sample_file.txt +0 -0
  496. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_deepcopy.py +0 -0
  497. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_extract_files.py +0 -0
  498. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_files.py +0 -0
  499. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_legacy_response.py +0 -0
  500. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_qs.py +0 -0
  501. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_required_args.py +0 -0
  502. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_response.py +0 -0
  503. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_streaming.py +0 -0
  504. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_transform.py +0 -0
  505. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_utils/test_datetime_parse.py +0 -0
  506. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_utils/test_proxy.py +0 -0
  507. {anthropic-0.72.0 → anthropic-0.73.0}/tests/test_utils/test_typing.py +0 -0
  508. {anthropic-0.72.0 → anthropic-0.73.0}/tests/utils.py +0 -0
  509. {anthropic-0.72.0 → anthropic-0.73.0}/tools.md +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.73.0"
3
+ }
@@ -1,5 +1,30 @@
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
+
11
+ ## 0.72.1 (2025-11-11)
12
+
13
+ Full Changelog: [v0.72.0...v0.72.1](https://github.com/anthropics/anthropic-sdk-python/compare/v0.72.0...v0.72.1)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **client:** close streams without requiring full consumption ([109b771](https://github.com/anthropics/anthropic-sdk-python/commit/109b77175c844c37e6e57899a732a0ba293a2942))
18
+ * compat with Python 3.14 ([bd2a137](https://github.com/anthropics/anthropic-sdk-python/commit/bd2a137a46cd899e28e81dd8d445dad23440674c))
19
+ * **compat:** update signatures of `model_dump` and `model_dump_json` for Pydantic v1 ([540f0f8](https://github.com/anthropics/anthropic-sdk-python/commit/540f0f8fdb0aa5d0d104259a59a0ee359296953e))
20
+
21
+
22
+ ### Chores
23
+
24
+ * **internal/tests:** avoid race condition with implicit client cleanup ([72767ce](https://github.com/anthropics/anthropic-sdk-python/commit/72767cebc31a9d5608f08533888a1cf69862a598))
25
+ * **internal:** grammar fix (it's -> its) ([9efe993](https://github.com/anthropics/anthropic-sdk-python/commit/9efe99371577c3ff51050aeab5d480a442577b46))
26
+ * **package:** drop Python 3.8 support ([e9af5d3](https://github.com/anthropics/anthropic-sdk-python/commit/e9af5d3676a0a77881a18bc9b4e8a30ecf46b017))
27
+
3
28
  ## 0.72.0 (2025-10-28)
4
29
 
5
30
  Full Changelog: [v0.71.1...v0.72.0](https://github.com/anthropics/anthropic-sdk-python/compare/v0.71.1...v0.72.0)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: anthropic
3
- Version: 0.72.0
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
@@ -13,7 +13,6 @@ Classifier: Operating System :: Microsoft :: Windows
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Operating System :: POSIX
15
15
  Classifier: Operating System :: POSIX :: Linux
16
- Classifier: Programming Language :: Python :: 3.8
17
16
  Classifier: Programming Language :: Python :: 3.9
18
17
  Classifier: Programming Language :: Python :: 3.10
19
18
  Classifier: Programming Language :: Python :: 3.11
@@ -21,7 +20,7 @@ Classifier: Programming Language :: Python :: 3.12
21
20
  Classifier: Programming Language :: Python :: 3.13
22
21
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
22
  Classifier: Typing :: Typed
24
- Requires-Python: >=3.8
23
+ Requires-Python: >=3.9
25
24
  Requires-Dist: anyio<5,>=3.5.0
26
25
  Requires-Dist: distro<2,>=1.7.0
27
26
  Requires-Dist: docstring-parser<1,>=0.15
@@ -45,7 +44,7 @@ Description-Content-Type: text/markdown
45
44
  <!-- prettier-ignore -->
46
45
  [![PyPI version](https://img.shields.io/pypi/v/anthropic.svg?label=pypi%20(stable))](https://pypi.org/project/anthropic/)
47
46
 
48
- The Anthropic Python library provides convenient access to the Anthropic REST API from any Python 3.8+
47
+ The Anthropic Python library provides convenient access to the Anthropic REST API from any Python 3.9+
49
48
  application. It includes type definitions for all request params and response fields,
50
49
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
51
50
 
@@ -909,7 +908,7 @@ print(anthropic.__version__)
909
908
 
910
909
  ## Requirements
911
910
 
912
- Python 3.8 or higher.
911
+ Python 3.9 or higher.
913
912
 
914
913
  ## Contributing
915
914
 
@@ -3,7 +3,7 @@
3
3
  <!-- prettier-ignore -->
4
4
  [![PyPI version](https://img.shields.io/pypi/v/anthropic.svg?label=pypi%20(stable))](https://pypi.org/project/anthropic/)
5
5
 
6
- The Anthropic Python library provides convenient access to the Anthropic REST API from any Python 3.8+
6
+ The Anthropic Python library provides convenient access to the Anthropic REST API from any Python 3.9+
7
7
  application. It includes type definitions for all request params and response fields,
8
8
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
9
9
 
@@ -867,7 +867,7 @@ print(anthropic.__version__)
867
867
 
868
868
  ## Requirements
869
869
 
870
- Python 3.8 or higher.
870
+ Python 3.9 or higher.
871
871
 
872
872
  ## Contributing
873
873
 
@@ -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.0"
3
+ version = "0.73.0"
4
4
  description = "The official Python library for the anthropic API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -17,11 +17,10 @@ dependencies = [
17
17
  "jiter>=0.4.0, <1",
18
18
  "docstring-parser>=0.15,<1",
19
19
  ]
20
- requires-python = ">= 3.8"
20
+ requires-python = ">= 3.9"
21
21
  classifiers = [
22
22
  "Typing :: Typed",
23
23
  "Intended Audience :: Developers",
24
- "Programming Language :: Python :: 3.8",
25
24
  "Programming Language :: Python :: 3.9",
26
25
  "Programming Language :: Python :: 3.10",
27
26
  "Programming Language :: Python :: 3.11",
@@ -136,7 +135,7 @@ format-command="ruff format --stdin-filename {filename}"
136
135
  # there are a couple of flags that are still disabled by
137
136
  # default in strict mode as they are experimental and niche.
138
137
  typeCheckingMode = "strict"
139
- pythonVersion = "3.8"
138
+ pythonVersion = "3.9"
140
139
 
141
140
  exclude = [
142
141
  ".git",
@@ -161,7 +160,7 @@ show_error_codes = true
161
160
  #
162
161
  # We also exclude our `tests` as mypy doesn't always infer
163
162
  # types correctly and Pyright will still catch any type errors.
164
- 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']
165
164
 
166
165
  strict_equality = true
167
166
  implicit_reexport = true
@@ -3,22 +3,14 @@
3
3
  -e .
4
4
  annotated-types==0.7.0
5
5
  # via pydantic
6
- anyio==4.5.2 ; python_full_version < '3.9'
7
- # via
8
- # anthropic
9
- # httpx
10
- anyio==4.8.0 ; python_full_version >= '3.9'
6
+ anyio==4.8.0
11
7
  # via
12
8
  # anthropic
13
9
  # httpx
14
10
  asttokens==3.0.0
15
11
  # via inline-snapshot
16
- astunparse==1.6.3 ; python_full_version < '3.9'
17
- # via griffe
18
- boto3-stubs==1.40.54
19
- botocore-stubs==1.38.30 ; python_full_version < '3.9'
20
- # via boto3-stubs
21
- botocore-stubs==1.40.54 ; python_full_version >= '3.9'
12
+ boto3-stubs==1.40.69
13
+ botocore-stubs==1.40.69
22
14
  # via boto3-stubs
23
15
  certifi==2024.12.14
24
16
  # via
@@ -41,8 +33,7 @@ execnet==2.1.1
41
33
  # via pytest-xdist
42
34
  executing==2.2.1
43
35
  # via inline-snapshot
44
- griffe==1.4.0 ; python_full_version < '3.9'
45
- griffe==1.13.0 ; python_full_version >= '3.9'
36
+ griffe==1.13.0
46
37
  h11==0.16.0
47
38
  # via httpcore
48
39
  httpcore==1.0.9
@@ -55,14 +46,11 @@ idna==3.10
55
46
  # via
56
47
  # anyio
57
48
  # httpx
58
- importlib-metadata==8.5.0 ; python_full_version < '3.9'
59
- importlib-metadata==8.6.1 ; python_full_version >= '3.9'
49
+ importlib-metadata==8.6.1
60
50
  iniconfig==2.0.0
61
51
  # via pytest
62
- inline-snapshot==0.30.0
63
- jiter==0.9.1 ; python_full_version < '3.9'
64
- # via anthropic
65
- jiter==0.11.0 ; python_full_version >= '3.9'
52
+ inline-snapshot==0.31.1
53
+ jiter==0.12.0
66
54
  # via anthropic
67
55
  markdown-it-py==3.0.0
68
56
  # via rich
@@ -77,62 +65,46 @@ packaging==24.2
77
65
  # via pytest
78
66
  pluggy==1.5.0
79
67
  # via pytest
80
- pydantic==2.10.6 ; python_full_version < '3.9'
81
- # via anthropic
82
- pydantic==2.11.9 ; python_full_version >= '3.9'
68
+ pydantic==2.10.3
83
69
  # via anthropic
84
- pydantic-core==2.27.2 ; python_full_version < '3.9'
85
- # via pydantic
86
- pydantic-core==2.33.2 ; python_full_version >= '3.9'
70
+ pydantic-core==2.27.1
87
71
  # via pydantic
88
72
  pygments==2.19.1
89
73
  # via
90
74
  # pytest
91
75
  # rich
92
76
  pyright==1.1.399
93
- pytest==8.3.5 ; python_full_version < '3.9'
94
- # via
95
- # inline-snapshot
96
- # pytest-asyncio
97
- # pytest-xdist
98
- pytest==8.4.1 ; python_full_version >= '3.9'
77
+ pytest==8.4.1
99
78
  # via
100
79
  # inline-snapshot
101
80
  # pytest-asyncio
102
81
  # pytest-xdist
103
82
  pytest-asyncio==0.24.0
104
- pytest-xdist==3.6.1 ; python_full_version < '3.9'
105
- pytest-xdist==3.7.0 ; python_full_version >= '3.9'
83
+ pytest-xdist==3.7.0
106
84
  python-dateutil==2.9.0.post0
107
85
  # via time-machine
108
- pytz==2024.2 ; python_full_version < '3.9'
109
- # via dirty-equals
110
86
  respx==0.22.0
111
87
  rich==13.9.4
112
88
  # via inline-snapshot
113
89
  ruff==0.9.4
114
90
  six==1.17.0
115
- # via
116
- # astunparse
117
- # python-dateutil
91
+ # via python-dateutil
118
92
  sniffio==1.3.1
119
93
  # via
120
94
  # anthropic
121
95
  # anyio
122
- time-machine==2.15.0 ; python_full_version < '3.9'
123
- time-machine==2.16.0 ; python_full_version >= '3.9'
96
+ time-machine==2.16.0
124
97
  tomli==2.2.1 ; python_full_version < '3.11'
125
98
  # via
126
99
  # inline-snapshot
127
100
  # mypy
128
101
  # pytest
129
- types-awscrt==0.28.1
102
+ types-awscrt==0.28.2
130
103
  # via botocore-stubs
131
104
  types-s3transfer==0.14.0
132
105
  # via boto3-stubs
133
106
  typing-extensions==4.12.2
134
107
  # via
135
- # annotated-types
136
108
  # anthropic
137
109
  # anyio
138
110
  # boto3-stubs
@@ -141,12 +113,5 @@ typing-extensions==4.12.2
141
113
  # pydantic-core
142
114
  # pyright
143
115
  # rich
144
- # typing-inspection
145
- typing-inspection==0.4.1 ; python_full_version >= '3.9'
146
- # via pydantic
147
- wheel==0.45.1 ; python_full_version < '3.9'
148
- # via astunparse
149
- zipp==3.20.2 ; python_full_version < '3.9'
150
- # via importlib-metadata
151
- zipp==3.21.0 ; python_full_version >= '3.9'
116
+ zipp==3.21.0
152
117
  # via importlib-metadata
@@ -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
  *,
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import os
4
4
  import inspect
5
+ import weakref
5
6
  from typing import TYPE_CHECKING, Any, Type, Union, Generic, TypeVar, Callable, Optional, cast
6
7
  from datetime import date, datetime
7
8
  from typing_extensions import (
@@ -272,15 +273,16 @@ class BaseModel(pydantic.BaseModel):
272
273
  mode: Literal["json", "python"] | str = "python",
273
274
  include: IncEx | None = None,
274
275
  exclude: IncEx | None = None,
276
+ context: Any | None = None,
275
277
  by_alias: bool | None = None,
276
278
  exclude_unset: bool = False,
277
279
  exclude_defaults: bool = False,
278
280
  exclude_none: bool = False,
281
+ exclude_computed_fields: bool = False,
279
282
  round_trip: bool = False,
280
283
  warnings: bool | Literal["none", "warn", "error"] = True,
281
- context: dict[str, Any] | None = None,
282
- serialize_as_any: bool = False,
283
284
  fallback: Callable[[Any], Any] | None = None,
285
+ serialize_as_any: bool = False,
284
286
  ) -> dict[str, Any]:
285
287
  """Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump
286
288
 
@@ -288,16 +290,24 @@ class BaseModel(pydantic.BaseModel):
288
290
 
289
291
  Args:
290
292
  mode: The mode in which `to_python` should run.
291
- If mode is 'json', the dictionary will only contain JSON serializable types.
292
- If mode is 'python', the dictionary may contain any Python objects.
293
- include: A list of fields to include in the output.
294
- exclude: A list of fields to exclude from the output.
293
+ If mode is 'json', the output will only contain JSON serializable types.
294
+ If mode is 'python', the output may contain non-JSON-serializable Python objects.
295
+ include: A set of fields to include in the output.
296
+ exclude: A set of fields to exclude from the output.
297
+ context: Additional context to pass to the serializer.
295
298
  by_alias: Whether to use the field's alias in the dictionary key if defined.
296
- exclude_unset: Whether to exclude fields that are unset or None from the output.
297
- exclude_defaults: Whether to exclude fields that are set to their default value from the output.
298
- exclude_none: Whether to exclude fields that have a value of `None` from the output.
299
- round_trip: Whether to enable serialization and deserialization round-trip support.
300
- warnings: Whether to log warnings when invalid fields are encountered.
299
+ exclude_unset: Whether to exclude fields that have not been explicitly set.
300
+ exclude_defaults: Whether to exclude fields that are set to their default value.
301
+ exclude_none: Whether to exclude fields that have a value of `None`.
302
+ exclude_computed_fields: Whether to exclude computed fields.
303
+ While this can be useful for round-tripping, it is usually recommended to use the dedicated
304
+ `round_trip` parameter instead.
305
+ round_trip: If True, dumped values should be valid as input for non-idempotent types such as Json[T].
306
+ warnings: How to handle serialization errors. False/"none" ignores them, True/"warn" logs errors,
307
+ "error" raises a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError].
308
+ fallback: A function to call when an unknown value is encountered. If not provided,
309
+ a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError] error is raised.
310
+ serialize_as_any: Whether to serialize fields with duck-typing serialization behavior.
301
311
 
302
312
  Returns:
303
313
  A dictionary representation of the model.
@@ -314,6 +324,8 @@ class BaseModel(pydantic.BaseModel):
314
324
  raise ValueError("serialize_as_any is only supported in Pydantic v2")
315
325
  if fallback is not None:
316
326
  raise ValueError("fallback is only supported in Pydantic v2")
327
+ if exclude_computed_fields != False:
328
+ raise ValueError("exclude_computed_fields is only supported in Pydantic v2")
317
329
  dumped = super().dict( # pyright: ignore[reportDeprecated]
318
330
  include=include,
319
331
  exclude=exclude,
@@ -330,15 +342,17 @@ class BaseModel(pydantic.BaseModel):
330
342
  self,
331
343
  *,
332
344
  indent: int | None = None,
345
+ ensure_ascii: bool = False,
333
346
  include: IncEx | None = None,
334
347
  exclude: IncEx | None = None,
348
+ context: Any | None = None,
335
349
  by_alias: bool | None = None,
336
350
  exclude_unset: bool = False,
337
351
  exclude_defaults: bool = False,
338
352
  exclude_none: bool = False,
353
+ exclude_computed_fields: bool = False,
339
354
  round_trip: bool = False,
340
355
  warnings: bool | Literal["none", "warn", "error"] = True,
341
- context: dict[str, Any] | None = None,
342
356
  fallback: Callable[[Any], Any] | None = None,
343
357
  serialize_as_any: bool = False,
344
358
  ) -> str:
@@ -370,6 +384,10 @@ class BaseModel(pydantic.BaseModel):
370
384
  raise ValueError("serialize_as_any is only supported in Pydantic v2")
371
385
  if fallback is not None:
372
386
  raise ValueError("fallback is only supported in Pydantic v2")
387
+ if ensure_ascii != False:
388
+ raise ValueError("ensure_ascii is only supported in Pydantic v2")
389
+ if exclude_computed_fields != False:
390
+ raise ValueError("exclude_computed_fields is only supported in Pydantic v2")
373
391
  return super().json( # type: ignore[reportDeprecated]
374
392
  indent=indent,
375
393
  include=include,
@@ -589,6 +607,9 @@ class CachedDiscriminatorType(Protocol):
589
607
  __discriminator__: DiscriminatorDetails
590
608
 
591
609
 
610
+ DISCRIMINATOR_CACHE: weakref.WeakKeyDictionary[type, DiscriminatorDetails] = weakref.WeakKeyDictionary()
611
+
612
+
592
613
  class DiscriminatorDetails:
593
614
  field_name: str
594
615
  """The name of the discriminator field in the variant class, e.g.
@@ -631,8 +652,9 @@ class DiscriminatorDetails:
631
652
 
632
653
 
633
654
  def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any, ...]) -> DiscriminatorDetails | None:
634
- if isinstance(union, CachedDiscriminatorType):
635
- return union.__discriminator__
655
+ cached = DISCRIMINATOR_CACHE.get(union)
656
+ if cached is not None:
657
+ return cached
636
658
 
637
659
  discriminator_field_name: str | None = None
638
660
 
@@ -685,7 +707,7 @@ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any,
685
707
  discriminator_field=discriminator_field_name,
686
708
  discriminator_alias=discriminator_alias,
687
709
  )
688
- cast(CachedDiscriminatorType, union).__discriminator__ = details
710
+ DISCRIMINATOR_CACHE.setdefault(union, details)
689
711
  return details
690
712
 
691
713
 
@@ -752,7 +774,7 @@ else:
752
774
 
753
775
 
754
776
  if not PYDANTIC_V1:
755
- from pydantic import TypeAdapter as _TypeAdapter
777
+ from pydantic import TypeAdapter as _TypeAdapter, computed_field as computed_field
756
778
 
757
779
  _CachedTypeAdapter = cast("TypeAdapter[object]", lru_cache(maxsize=None)(_TypeAdapter))
758
780
 
@@ -789,6 +811,18 @@ elif not TYPE_CHECKING: # TODO: condition is weird
789
811
  def TypeAdapter(*_args: Any, **_kwargs: Any) -> Any:
790
812
  raise RuntimeError("attempted to use TypeAdapter in pydantic v1")
791
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
+
792
826
 
793
827
  class FinalRequestOptionsInput(TypedDict, total=False):
794
828
  method: Required[str]
@@ -113,9 +113,8 @@ class Stream(Generic[_T], metaclass=_SyncStreamMeta):
113
113
  response=self.response,
114
114
  )
115
115
 
116
- # Ensure the entire stream is consumed
117
- for _sse in iterator:
118
- ...
116
+ # As we might not fully consume the response stream, we need to close it explicitly
117
+ response.close()
119
118
 
120
119
  def __enter__(self) -> Self:
121
120
  return self
@@ -231,9 +230,8 @@ class AsyncStream(Generic[_T], metaclass=_AsyncStreamMeta):
231
230
  response=self.response,
232
231
  )
233
232
 
234
- # Ensure the entire stream is consumed
235
- async for _sse in iterator:
236
- ...
233
+ # As we might not fully consume the response stream, we need to close it explicitly
234
+ await response.aclose()
237
235
 
238
236
  async def __aenter__(self) -> Self:
239
237
  return self
@@ -1,10 +1,8 @@
1
1
  from __future__ import annotations
2
2
 
3
- import sys
4
3
  import asyncio
5
4
  import functools
6
- import contextvars
7
- from typing import Any, TypeVar, Callable, Awaitable
5
+ from typing import TypeVar, Callable, Awaitable
8
6
  from typing_extensions import ParamSpec
9
7
 
10
8
  import anyio
@@ -15,34 +13,11 @@ T_Retval = TypeVar("T_Retval")
15
13
  T_ParamSpec = ParamSpec("T_ParamSpec")
16
14
 
17
15
 
18
- if sys.version_info >= (3, 9):
19
- _asyncio_to_thread = asyncio.to_thread
20
- else:
21
- # backport of https://docs.python.org/3/library/asyncio-task.html#asyncio.to_thread
22
- # for Python 3.8 support
23
- async def _asyncio_to_thread(
24
- func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
25
- ) -> Any:
26
- """Asynchronously run function *func* in a separate thread.
27
-
28
- Any *args and **kwargs supplied for this function are directly passed
29
- to *func*. Also, the current :class:`contextvars.Context` is propagated,
30
- allowing context variables from the main thread to be accessed in the
31
- separate thread.
32
-
33
- Returns a coroutine that can be awaited to get the eventual result of *func*.
34
- """
35
- loop = asyncio.events.get_running_loop()
36
- ctx = contextvars.copy_context()
37
- func_call = functools.partial(ctx.run, func, *args, **kwargs)
38
- return await loop.run_in_executor(None, func_call)
39
-
40
-
41
16
  async def to_thread(
42
17
  func: Callable[T_ParamSpec, T_Retval], /, *args: T_ParamSpec.args, **kwargs: T_ParamSpec.kwargs
43
18
  ) -> T_Retval:
44
19
  if sniffio.current_async_library() == "asyncio":
45
- return await _asyncio_to_thread(func, *args, **kwargs)
20
+ return await asyncio.to_thread(func, *args, **kwargs)
46
21
 
47
22
  return await anyio.to_thread.run_sync(
48
23
  functools.partial(func, *args, **kwargs),
@@ -53,10 +28,7 @@ async def to_thread(
53
28
  def asyncify(function: Callable[T_ParamSpec, T_Retval]) -> Callable[T_ParamSpec, Awaitable[T_Retval]]:
54
29
  """
55
30
  Take a blocking function and create an async one that receives the same
56
- positional and keyword arguments. For python version 3.9 and above, it uses
57
- asyncio.to_thread to run the function in a separate thread. For python version
58
- 3.8, it uses locally defined copy of the asyncio.to_thread function which was
59
- introduced in python 3.9.
31
+ positional and keyword arguments.
60
32
 
61
33
  Usage:
62
34
 
@@ -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:
@@ -133,7 +133,7 @@ def is_given(obj: _T | NotGiven | Omit) -> TypeGuard[_T]:
133
133
  # Type safe methods for narrowing types with TypeVars.
134
134
  # The default narrowing for isinstance(obj, dict) is dict[unknown, unknown],
135
135
  # however this cause Pyright to rightfully report errors. As we know we don't
136
- # care about the contained types we can safely use `object` in it's place.
136
+ # care about the contained types we can safely use `object` in its place.
137
137
  #
138
138
  # There are two separate functions defined, `is_*` and `is_*_t` for different use cases.
139
139
  # `is_*` is for when you're dealing with an unknown input
@@ -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.0" # x-release-please-version
4
+ __version__ = "0.73.0" # x-release-please-version