parallel-web 0.5.1__tar.gz → 0.6.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 (239) hide show
  1. {parallel_web-0.5.1 → parallel_web-0.6.0}/.gitignore +1 -0
  2. parallel_web-0.6.0/.release-please-manifest.json +3 -0
  3. {parallel_web-0.5.1 → parallel_web-0.6.0}/CHANGELOG.md +31 -0
  4. {parallel_web-0.5.1 → parallel_web-0.6.0}/PKG-INFO +1 -1
  5. parallel_web-0.6.0/api.md +128 -0
  6. {parallel_web-0.5.1 → parallel_web-0.6.0}/pyproject.toml +7 -2
  7. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_client.py +220 -7
  8. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_qs.py +2 -6
  9. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_types.py +3 -0
  10. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_utils.py +34 -8
  11. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_version.py +1 -1
  12. parallel_web-0.6.0/src/parallel/resources/__init__.py +47 -0
  13. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/resources/beta/api.md +12 -7
  14. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/resources/beta/beta.py +12 -78
  15. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/resources/beta/findall.py +12 -9
  16. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/resources/beta/task_group.py +95 -66
  17. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/resources/beta/task_run.py +5 -4
  18. parallel_web-0.6.0/src/parallel/resources/monitor.py +965 -0
  19. parallel_web-0.6.0/src/parallel/resources/task_group.py +787 -0
  20. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/resources/task_run.py +84 -6
  21. parallel_web-0.6.0/src/parallel/types/__init__.py +90 -0
  22. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/advanced_extract_settings_param.py +9 -14
  23. parallel_web-0.6.0/src/parallel/types/advanced_monitor_settings.py +21 -0
  24. parallel_web-0.6.0/src/parallel/types/advanced_monitor_settings_param.py +23 -0
  25. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/__init__.py +7 -0
  26. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/beta_extract_params.py +7 -13
  27. parallel_web-0.5.1/src/parallel/types/beta/findall_run_result.py → parallel_web-0.6.0/src/parallel/types/beta/findall_candidate.py +2 -28
  28. parallel_web-0.6.0/src/parallel/types/beta/findall_candidate_match_status_event.py +43 -0
  29. parallel_web-0.6.0/src/parallel/types/beta/findall_candidate_metrics.py +17 -0
  30. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_create_params.py +7 -16
  31. parallel_web-0.6.0/src/parallel/types/beta/findall_run.py +46 -0
  32. parallel_web-0.6.0/src/parallel/types/beta/findall_run_result.py +38 -0
  33. parallel_web-0.6.0/src/parallel/types/beta/findall_run_status.py +35 -0
  34. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_schema.py +2 -15
  35. parallel_web-0.6.0/src/parallel/types/beta/full_content_settings_param.py +7 -0
  36. parallel_web-0.6.0/src/parallel/types/beta/match_condition.py +19 -0
  37. parallel_web-0.6.0/src/parallel/types/beta/match_condition_param.py +21 -0
  38. parallel_web-0.6.0/src/parallel/types/beta/task_group.py +14 -0
  39. parallel_web-0.6.0/src/parallel/types/beta/task_group_events_response.py +15 -0
  40. parallel_web-0.6.0/src/parallel/types/beta/task_group_run_response.py +7 -0
  41. parallel_web-0.6.0/src/parallel/types/beta/task_group_status.py +7 -0
  42. parallel_web-0.6.0/src/parallel/types/beta/task_group_status_event.py +7 -0
  43. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_run_create_params.py +6 -7
  44. parallel_web-0.6.0/src/parallel/types/beta/task_run_events_response.py +24 -0
  45. parallel_web-0.6.0/src/parallel/types/full_content_settings_param.py +19 -0
  46. parallel_web-0.6.0/src/parallel/types/monitor.py +74 -0
  47. parallel_web-0.6.0/src/parallel/types/monitor_completion_event.py +23 -0
  48. parallel_web-0.6.0/src/parallel/types/monitor_create_params.py +56 -0
  49. parallel_web-0.6.0/src/parallel/types/monitor_error_event.py +25 -0
  50. parallel_web-0.6.0/src/parallel/types/monitor_event_stream_event.py +43 -0
  51. parallel_web-0.6.0/src/parallel/types/monitor_event_stream_response_settings.py +30 -0
  52. parallel_web-0.6.0/src/parallel/types/monitor_event_stream_settings_param.py +32 -0
  53. parallel_web-0.6.0/src/parallel/types/monitor_events_params.py +29 -0
  54. parallel_web-0.6.0/src/parallel/types/monitor_list_params.py +31 -0
  55. parallel_web-0.6.0/src/parallel/types/monitor_snapshot_event.py +51 -0
  56. parallel_web-0.6.0/src/parallel/types/monitor_snapshot_output.py +26 -0
  57. parallel_web-0.6.0/src/parallel/types/monitor_snapshot_response_settings.py +21 -0
  58. parallel_web-0.6.0/src/parallel/types/monitor_snapshot_settings_param.py +14 -0
  59. parallel_web-0.6.0/src/parallel/types/monitor_update_params.py +40 -0
  60. parallel_web-0.6.0/src/parallel/types/monitor_webhook.py +20 -0
  61. parallel_web-0.6.0/src/parallel/types/monitor_webhook_param.py +18 -0
  62. parallel_web-0.6.0/src/parallel/types/paginated_monitor_events.py +32 -0
  63. parallel_web-0.6.0/src/parallel/types/paginated_monitor_response.py +21 -0
  64. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/run_input.py +8 -9
  65. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/run_input_param.py +8 -9
  66. parallel_web-0.6.0/src/parallel/types/task_advanced_settings.py +14 -0
  67. parallel_web-0.6.0/src/parallel/types/task_advanced_settings_param.py +15 -0
  68. {parallel_web-0.5.1/src/parallel/types/beta → parallel_web-0.6.0/src/parallel/types}/task_group.py +1 -1
  69. parallel_web-0.6.0/src/parallel/types/task_group_add_runs_params.py +36 -0
  70. parallel_web-0.6.0/src/parallel/types/task_group_create_params.py +13 -0
  71. parallel_web-0.6.0/src/parallel/types/task_group_events_params.py +16 -0
  72. parallel_web-0.6.0/src/parallel/types/task_group_events_response.py +15 -0
  73. parallel_web-0.6.0/src/parallel/types/task_group_get_runs_params.py +18 -0
  74. parallel_web-0.6.0/src/parallel/types/task_group_get_runs_response.py +12 -0
  75. {parallel_web-0.5.1/src/parallel/types/beta → parallel_web-0.6.0/src/parallel/types}/task_group_run_response.py +1 -1
  76. {parallel_web-0.5.1/src/parallel/types/beta → parallel_web-0.6.0/src/parallel/types}/task_group_status.py +1 -1
  77. parallel_web-0.5.1/src/parallel/types/beta/task_group_events_response.py → parallel_web-0.6.0/src/parallel/types/task_group_status_event.py +3 -12
  78. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_run_create_params.py +6 -7
  79. parallel_web-0.6.0/src/parallel/types/task_run_events_response.py +24 -0
  80. parallel_web-0.6.0/src/parallel/types/task_run_progress_message_event.py +27 -0
  81. parallel_web-0.6.0/src/parallel/types/task_run_progress_stats_event.py +24 -0
  82. parallel_web-0.6.0/src/parallel/types/task_run_source_stats.py +20 -0
  83. parallel_web-0.6.0/src/parallel/types/update_monitor_event_stream_settings_param.py +17 -0
  84. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/api_resources/beta/test_findall.py +8 -8
  85. parallel_web-0.6.0/tests/api_resources/beta/test_task_group.py +665 -0
  86. parallel_web-0.6.0/tests/api_resources/test_monitor.py +705 -0
  87. {parallel_web-0.5.1/tests/api_resources/beta → parallel_web-0.6.0/tests/api_resources}/test_task_group.py +145 -48
  88. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/api_resources/test_task_run.py +77 -0
  89. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_extract_files.py +23 -5
  90. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_files.py +1 -1
  91. parallel_web-0.5.1/.release-please-manifest.json +0 -3
  92. parallel_web-0.5.1/api.md +0 -62
  93. parallel_web-0.5.1/src/parallel/resources/__init__.py +0 -19
  94. parallel_web-0.5.1/src/parallel/types/__init__.py +0 -49
  95. parallel_web-0.5.1/src/parallel/types/beta/findall_candidate_match_status_event.py +0 -72
  96. parallel_web-0.5.1/src/parallel/types/beta/findall_run.py +0 -73
  97. parallel_web-0.5.1/src/parallel/types/beta/task_run_events_response.py +0 -70
  98. parallel_web-0.5.1/src/parallel/types/task_run_events_response.py +0 -70
  99. {parallel_web-0.5.1 → parallel_web-0.6.0}/CONTRIBUTING.md +0 -0
  100. {parallel_web-0.5.1 → parallel_web-0.6.0}/LICENSE +0 -0
  101. {parallel_web-0.5.1 → parallel_web-0.6.0}/README.md +0 -0
  102. {parallel_web-0.5.1 → parallel_web-0.6.0}/SECURITY.md +0 -0
  103. {parallel_web-0.5.1 → parallel_web-0.6.0}/bin/check-release-environment +0 -0
  104. {parallel_web-0.5.1 → parallel_web-0.6.0}/bin/publish-pypi +0 -0
  105. {parallel_web-0.5.1 → parallel_web-0.6.0}/examples/.keep +0 -0
  106. {parallel_web-0.5.1 → parallel_web-0.6.0}/noxfile.py +0 -0
  107. {parallel_web-0.5.1 → parallel_web-0.6.0}/release-please-config.json +0 -0
  108. {parallel_web-0.5.1 → parallel_web-0.6.0}/requirements-dev.lock +0 -0
  109. {parallel_web-0.5.1 → parallel_web-0.6.0}/requirements.lock +0 -0
  110. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/__init__.py +0 -0
  111. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_base_client.py +0 -0
  112. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_compat.py +0 -0
  113. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_constants.py +0 -0
  114. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_exceptions.py +0 -0
  115. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_files.py +0 -0
  116. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_models.py +0 -0
  117. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_resource.py +0 -0
  118. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_response.py +0 -0
  119. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_streaming.py +0 -0
  120. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/__init__.py +0 -0
  121. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_compat.py +0 -0
  122. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_datetime_parse.py +0 -0
  123. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_json.py +0 -0
  124. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_logs.py +0 -0
  125. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_path.py +0 -0
  126. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_proxy.py +0 -0
  127. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_reflection.py +0 -0
  128. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_resources_proxy.py +0 -0
  129. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_streams.py +0 -0
  130. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_sync.py +0 -0
  131. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_transform.py +0 -0
  132. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/_utils/_typing.py +0 -0
  133. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/lib/.keep +0 -0
  134. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/lib/__init__.py +0 -0
  135. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/lib/_parsing/__init__.py +0 -0
  136. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/lib/_parsing/_task_run_result.py +0 -0
  137. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/lib/_parsing/_task_spec.py +0 -0
  138. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/lib/_pydantic.py +0 -0
  139. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/lib/_time.py +0 -0
  140. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/py.typed +0 -0
  141. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/resources/beta/__init__.py +0 -0
  142. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/advanced_search_settings_param.py +0 -0
  143. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/auto_schema.py +0 -0
  144. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/auto_schema_param.py +0 -0
  145. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/beta_run_input.py +0 -0
  146. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/beta_run_input_param.py +0 -0
  147. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/beta_search_params.py +0 -0
  148. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/beta_task_run_result.py +0 -0
  149. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/error_event.py +0 -0
  150. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/excerpt_settings_param.py +0 -0
  151. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/extract_error.py +0 -0
  152. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/extract_response.py +0 -0
  153. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/extract_result.py +0 -0
  154. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/fetch_policy_param.py +0 -0
  155. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_candidates_params.py +0 -0
  156. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_candidates_response.py +0 -0
  157. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_enrich_input.py +0 -0
  158. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_enrich_params.py +0 -0
  159. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_events_params.py +0 -0
  160. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_events_response.py +0 -0
  161. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_extend_params.py +0 -0
  162. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_ingest_params.py +0 -0
  163. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_run_status_event.py +0 -0
  164. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/findall_schema_updated_event.py +0 -0
  165. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/mcp_server.py +0 -0
  166. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/mcp_server_param.py +0 -0
  167. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/mcp_tool_call.py +0 -0
  168. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/parallel_beta_param.py +0 -0
  169. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/search_result.py +0 -0
  170. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_add_runs_params.py +0 -0
  171. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_create_params.py +0 -0
  172. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_events_params.py +0 -0
  173. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_get_runs_params.py +0 -0
  174. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_get_runs_response.py +0 -0
  175. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_run_event.py +0 -0
  176. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/task_run_result_params.py +0 -0
  177. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/usage_item.py +0 -0
  178. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/web_search_result.py +0 -0
  179. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/webhook.py +0 -0
  180. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/beta/webhook_param.py +0 -0
  181. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/citation.py +0 -0
  182. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/client_extract_params.py +0 -0
  183. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/client_search_params.py +0 -0
  184. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/error_event.py +0 -0
  185. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/excerpt_settings_param.py +0 -0
  186. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/extract_error.py +0 -0
  187. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/extract_response.py +0 -0
  188. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/extract_result.py +0 -0
  189. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/fetch_policy_param.py +0 -0
  190. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/field_basis.py +0 -0
  191. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/json_schema.py +0 -0
  192. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/json_schema_param.py +0 -0
  193. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/mcp_server.py +0 -0
  194. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/mcp_server_param.py +0 -0
  195. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/mcp_tool_call.py +0 -0
  196. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/parsed_task_run_result.py +0 -0
  197. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/search_result.py +0 -0
  198. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/shared/__init__.py +0 -0
  199. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/shared/error_object.py +0 -0
  200. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/shared/error_response.py +0 -0
  201. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/shared/source_policy.py +0 -0
  202. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/shared/warning.py +0 -0
  203. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/shared_params/__init__.py +0 -0
  204. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/shared_params/source_policy.py +0 -0
  205. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_run.py +0 -0
  206. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_run_event.py +0 -0
  207. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_run_json_output.py +0 -0
  208. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_run_result.py +0 -0
  209. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_run_result_params.py +0 -0
  210. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_run_text_output.py +0 -0
  211. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_spec.py +0 -0
  212. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/task_spec_param.py +0 -0
  213. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/text_schema.py +0 -0
  214. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/text_schema_param.py +0 -0
  215. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/usage_item.py +0 -0
  216. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/web_search_result.py +0 -0
  217. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/webhook.py +0 -0
  218. {parallel_web-0.5.1 → parallel_web-0.6.0}/src/parallel/types/webhook_param.py +0 -0
  219. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/__init__.py +0 -0
  220. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/api_resources/__init__.py +0 -0
  221. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/api_resources/beta/__init__.py +0 -0
  222. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/api_resources/beta/test_task_run.py +0 -0
  223. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/api_resources/test_beta.py +0 -0
  224. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/api_resources/test_client.py +0 -0
  225. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/conftest.py +0 -0
  226. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/sample_file.txt +0 -0
  227. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_client.py +0 -0
  228. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_models.py +0 -0
  229. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_qs.py +0 -0
  230. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_required_args.py +0 -0
  231. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_response.py +0 -0
  232. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_streaming.py +0 -0
  233. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_transform.py +0 -0
  234. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_utils/test_datetime_parse.py +0 -0
  235. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_utils/test_json.py +0 -0
  236. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_utils/test_path.py +0 -0
  237. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_utils/test_proxy.py +0 -0
  238. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/test_utils/test_typing.py +0 -0
  239. {parallel_web-0.5.1 → parallel_web-0.6.0}/tests/utils.py +0 -0
@@ -14,3 +14,4 @@ dist
14
14
  .envrc
15
15
  codegen.log
16
16
  Brewfile.lock.json
17
+ uv.lock
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.6.0"
3
+ }
@@ -1,5 +1,36 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.6.0 (2026-05-06)
4
+
5
+ Full Changelog: [v0.5.1...v0.6.0](https://github.com/parallel-web/parallel-sdk-python/compare/v0.5.1...v0.6.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** manual updates ([8cb17ac](https://github.com/parallel-web/parallel-sdk-python/commit/8cb17ac6d6c9a5a9e6443d9ecf5c121250b2eed2))
10
+ * **api:** manual updates ([e4008e4](https://github.com/parallel-web/parallel-sdk-python/commit/e4008e4f8432a6c3e2341d18fee37fcedf8a530e))
11
+ * **api:** manual updates ([174407f](https://github.com/parallel-web/parallel-sdk-python/commit/174407ff7467789e19d3abeffcaccd36fd35e786))
12
+ * **api:** manual updates ([1c47c8b](https://github.com/parallel-web/parallel-sdk-python/commit/1c47c8baa579a403064e59a5fbb75400315951c9))
13
+ * **api:** Task Groups v1 added to SDK ([198e317](https://github.com/parallel-web/parallel-sdk-python/commit/198e317bb3b5e5961e63c1c04bac0eb593385b7b))
14
+ * support setting headers via env ([6dd2b05](https://github.com/parallel-web/parallel-sdk-python/commit/6dd2b05bcf25259ae50e650376c3182913439487))
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * re-export TaskGroup from parallel.types.beta and silence reportDeprecated ([dc6119f](https://github.com/parallel-web/parallel-sdk-python/commit/dc6119f6dccdef75bdbe4ce838dd8ba51cc2428a))
20
+ * **scripts:** remove unreachable check and redundant type annotation ([f63ad0a](https://github.com/parallel-web/parallel-sdk-python/commit/f63ad0ae48994be8b16c20438bb80c61cd943fec))
21
+ * **scripts:** satisfy pyright in alias resolver ([892f474](https://github.com/parallel-web/parallel-sdk-python/commit/892f4743488ae5d8c4683123193da4f4e61d2464))
22
+ * **types:** preserve back-compat aliases for renamed inline classes ([532ee8f](https://github.com/parallel-web/parallel-sdk-python/commit/532ee8f32ecbaf611f0ff5f6c80a532e2f0bcd66))
23
+ * **types:** use module-level alias instead of import-as ([b1b9858](https://github.com/parallel-web/parallel-sdk-python/commit/b1b9858ffa95d90871ce36b06e510638e3546bde))
24
+ * use correct field name format for multipart file arrays ([1e34228](https://github.com/parallel-web/parallel-sdk-python/commit/1e3422859a25c66804f7f588fd24276417c52057))
25
+
26
+
27
+ ### Chores
28
+
29
+ * **internal:** more robust bootstrap script ([d4c7737](https://github.com/parallel-web/parallel-sdk-python/commit/d4c773762e983a657fb4c6f5d39529c3467e0994))
30
+ * **internal:** reformat pyproject.toml ([b3c0639](https://github.com/parallel-web/parallel-sdk-python/commit/b3c063982542886a490679f840ca0fad94695227))
31
+ * **scripts:** follow alias and attribute redirections in breaking-change detection ([89b1495](https://github.com/parallel-web/parallel-sdk-python/commit/89b1495236f280eee8af7c48ecff3ff2453291bd))
32
+ * stop tracking uv.lock (project uses requirements*.lock from rye) ([540471a](https://github.com/parallel-web/parallel-sdk-python/commit/540471afb4da3a6ed485af15554cb548e7086bbd))
33
+
3
34
  ## 0.5.1 (2026-04-22)
4
35
 
5
36
  Full Changelog: [v0.5.0...v0.5.1](https://github.com/parallel-web/parallel-sdk-python/compare/v0.5.0...v0.5.1)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: parallel-web
3
- Version: 0.5.1
3
+ Version: 0.6.0
4
4
  Summary: The official Python library for the Parallel API
5
5
  Project-URL: Homepage, https://github.com/parallel-web/parallel-sdk-python
6
6
  Project-URL: Repository, https://github.com/parallel-web/parallel-sdk-python
@@ -0,0 +1,128 @@
1
+ # Shared Types
2
+
3
+ ```python
4
+ from parallel.types import ErrorObject, ErrorResponse, SourcePolicy, Warning
5
+ ```
6
+
7
+ # Parallel
8
+
9
+ Types:
10
+
11
+ ```python
12
+ from parallel.types import (
13
+ AdvancedExtractSettings,
14
+ AdvancedSearchSettings,
15
+ ExcerptSettings,
16
+ ExtractError,
17
+ ExtractResponse,
18
+ ExtractResult,
19
+ FetchPolicy,
20
+ FullContentSettings,
21
+ SearchResult,
22
+ UsageItem,
23
+ WebSearchResult,
24
+ )
25
+ ```
26
+
27
+ Methods:
28
+
29
+ - <code title="post /v1/extract">client.<a href="./src/parallel/_client.py">extract</a>(\*\*<a href="src/parallel/types/client_extract_params.py">params</a>) -> <a href="./src/parallel/types/extract_response.py">ExtractResponse</a></code>
30
+ - <code title="post /v1/search">client.<a href="./src/parallel/_client.py">search</a>(\*\*<a href="src/parallel/types/client_search_params.py">params</a>) -> <a href="./src/parallel/types/search_result.py">SearchResult</a></code>
31
+
32
+ # TaskRun
33
+
34
+ Types:
35
+
36
+ ```python
37
+ from parallel.types import (
38
+ AutoSchema,
39
+ Citation,
40
+ FieldBasis,
41
+ JsonSchema,
42
+ ParsedTaskRunResult,
43
+ RunInput,
44
+ TaskAdvancedSettings,
45
+ TaskRun,
46
+ TaskRunJsonOutput,
47
+ TaskRunProgressMessageEvent,
48
+ TaskRunProgressStatsEvent,
49
+ TaskRunResult,
50
+ TaskRunSourceStats,
51
+ TaskRunTextOutput,
52
+ TaskSpec,
53
+ TextSchema,
54
+ )
55
+ ```
56
+
57
+ Methods:
58
+
59
+ - <code title="post /v1/tasks/runs">client.task_run.<a href="./src/parallel/resources/task_run.py">create</a>(\*\*<a href="src/parallel/types/task_run_create_params.py">params</a>) -> <a href="./src/parallel/types/task_run.py">TaskRun</a></code>
60
+ - <code title="get /v1/tasks/runs/{run_id}">client.task_run.<a href="./src/parallel/resources/task_run.py">retrieve</a>(run_id) -> <a href="./src/parallel/types/task_run.py">TaskRun</a></code>
61
+ - <code title="get /v1/tasks/runs/{run_id}/result">client.task_run.<a href="./src/parallel/resources/task_run.py">result</a>(run_id, \*\*<a href="src/parallel/types/task_run_result_params.py">params</a>) -> <a href="./src/parallel/types/task_run_result.py">TaskRunResult</a></code>
62
+ - <code title="get /v1/tasks/runs/{run_id}/input">client.task_run.<a href="./src/parallel/resources/task_run.py">retrieve_input</a>(run_id) -> <a href="./src/parallel/types/run_input.py">RunInput</a></code>
63
+
64
+ Convenience methods:
65
+
66
+ - <code title="post /v1/tasks/runs">client.task_run.<a href="./src/parallel/resources/task_run.py">execute</a>(input, processor, output: <a href="./src/parallel/types/task_spec_param.py">OutputSchema</a>) -> <a href="./src/parallel/types/task_run_result.py">TaskRunResult</a></code>
67
+ - <code title="post /v1/tasks/runs">client.task_run.<a href="./src/parallel/resources/task_run.py">execute</a>(input, processor, output: Type[OutputT]) -> <a href="./src/parallel/types/parsed_task_run_result.py">ParsedTaskRunResult[OutputT]</a></code>
68
+ # TaskGroup
69
+
70
+ Types:
71
+
72
+ ```python
73
+ from parallel.types import (
74
+ TaskGroup,
75
+ TaskGroupRunResponse,
76
+ TaskGroupStatus,
77
+ TaskGroupStatusEvent,
78
+ TaskGroupEventsResponse,
79
+ TaskGroupGetRunsResponse,
80
+ )
81
+ ```
82
+
83
+ Methods:
84
+
85
+ - <code title="post /v1/tasks/groups">client.task_group.<a href="./src/parallel/resources/task_group.py">create</a>(\*\*<a href="src/parallel/types/task_group_create_params.py">params</a>) -> <a href="./src/parallel/types/task_group.py">TaskGroup</a></code>
86
+ - <code title="get /v1/tasks/groups/{taskgroup_id}">client.task_group.<a href="./src/parallel/resources/task_group.py">retrieve</a>(task_group_id) -> <a href="./src/parallel/types/task_group.py">TaskGroup</a></code>
87
+ - <code title="post /v1/tasks/groups/{taskgroup_id}/runs">client.task_group.<a href="./src/parallel/resources/task_group.py">add_runs</a>(task_group_id, \*\*<a href="src/parallel/types/task_group_add_runs_params.py">params</a>) -> <a href="./src/parallel/types/task_group_run_response.py">TaskGroupRunResponse</a></code>
88
+ - <code title="get /v1/tasks/groups/{taskgroup_id}/events">client.task_group.<a href="./src/parallel/resources/task_group.py">events</a>(task_group_id, \*\*<a href="src/parallel/types/task_group_events_params.py">params</a>) -> <a href="./src/parallel/types/task_group_events_response.py">TaskGroupEventsResponse</a></code>
89
+ - <code title="get /v1/tasks/groups/{taskgroup_id}/runs">client.task_group.<a href="./src/parallel/resources/task_group.py">get_runs</a>(task_group_id, \*\*<a href="src/parallel/types/task_group_get_runs_params.py">params</a>) -> <a href="./src/parallel/types/task_group_get_runs_response.py">TaskGroupGetRunsResponse</a></code>
90
+ - <code title="get /v1/tasks/groups/{taskgroup_id}/runs/{run_id}">client.task_group.<a href="./src/parallel/resources/task_group.py">retrieve_run</a>(run_id, \*, task_group_id) -> <a href="./src/parallel/types/task_run.py">TaskRun</a></code>
91
+
92
+ # Monitor
93
+
94
+ Types:
95
+
96
+ ```python
97
+ from parallel.types import (
98
+ AdvancedMonitorSettings,
99
+ CreateMonitorRequest,
100
+ Monitor,
101
+ MonitorCompletionEvent,
102
+ MonitorErrorEvent,
103
+ MonitorEventStreamEvent,
104
+ MonitorEventStreamResponseSettings,
105
+ MonitorEventStreamSettings,
106
+ MonitorSnapshotEvent,
107
+ MonitorSnapshotOutput,
108
+ MonitorSnapshotResponseSettings,
109
+ MonitorSnapshotSettings,
110
+ MonitorWebhook,
111
+ PaginatedMonitorEvents,
112
+ PaginatedMonitorResponse,
113
+ UpdateMonitorEventStreamSettings,
114
+ UpdateMonitorRequest,
115
+ )
116
+ ```
117
+
118
+ Methods:
119
+
120
+ - <code title="post /v1/monitors">client.monitor.<a href="./src/parallel/resources/monitor.py">create</a>(\*\*<a href="src/parallel/types/monitor_create_params.py">params</a>) -> <a href="./src/parallel/types/monitor.py">Monitor</a></code>
121
+ - <code title="get /v1/monitors/{monitor_id}">client.monitor.<a href="./src/parallel/resources/monitor.py">retrieve</a>(monitor_id) -> <a href="./src/parallel/types/monitor.py">Monitor</a></code>
122
+ - <code title="post /v1/monitors/{monitor_id}/update">client.monitor.<a href="./src/parallel/resources/monitor.py">update</a>(monitor_id, \*\*<a href="src/parallel/types/monitor_update_params.py">params</a>) -> <a href="./src/parallel/types/monitor.py">Monitor</a></code>
123
+ - <code title="get /v1/monitors">client.monitor.<a href="./src/parallel/resources/monitor.py">list</a>(\*\*<a href="src/parallel/types/monitor_list_params.py">params</a>) -> <a href="./src/parallel/types/paginated_monitor_response.py">PaginatedMonitorResponse</a></code>
124
+ - <code title="post /v1/monitors/{monitor_id}/cancel">client.monitor.<a href="./src/parallel/resources/monitor.py">cancel</a>(monitor_id) -> <a href="./src/parallel/types/monitor.py">Monitor</a></code>
125
+ - <code title="get /v1/monitors/{monitor_id}/events">client.monitor.<a href="./src/parallel/resources/monitor.py">events</a>(monitor_id, \*\*<a href="src/parallel/types/monitor_events_params.py">params</a>) -> <a href="./src/parallel/types/paginated_monitor_events.py">PaginatedMonitorEvents</a></code>
126
+ - <code title="post /v1/monitors/{monitor_id}/trigger">client.monitor.<a href="./src/parallel/resources/monitor.py">trigger</a>(monitor_id) -> None</code>
127
+
128
+ # [Beta](src/parallel/resources/beta/api.md)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "parallel-web"
3
- version = "0.5.1"
3
+ version = "0.6.0"
4
4
  description = "The official Python library for the Parallel API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
@@ -158,6 +158,11 @@ reportOverlappingOverload = false
158
158
 
159
159
  reportImportCycles = false
160
160
  reportPrivateUsage = false
161
+ # Deprecation is a runtime concern; type-check warnings produce noise when the
162
+ # breaking-change detector compares against pre-deprecation baseline tests.
163
+ # Newly-generated tests already add a per-file `# pyright: reportDeprecated=false`
164
+ # marker for deprecated resources, so this just promotes that to project-level.
165
+ reportDeprecated = false
161
166
 
162
167
  [tool.mypy]
163
168
  pretty = true
@@ -169,7 +174,7 @@ show_error_codes = true
169
174
  #
170
175
  # We also exclude our `tests` as mypy doesn't always infer
171
176
  # types correctly and Pyright will still catch any type errors.
172
- exclude = ['src/parallel/_files.py', '_dev/.*.py', 'tests/.*']
177
+ exclude = ["src/parallel/_files.py", "_dev/.*.py", "tests/.*"]
173
178
 
174
179
  strict_equality = true
175
180
  implicit_reexport = true
@@ -27,6 +27,7 @@ from ._types import (
27
27
  )
28
28
  from ._utils import (
29
29
  is_given,
30
+ is_mapping_t,
30
31
  maybe_transform,
31
32
  get_async_library,
32
33
  async_maybe_transform,
@@ -53,9 +54,11 @@ from .types.advanced_search_settings_param import AdvancedSearchSettingsParam
53
54
  from .types.advanced_extract_settings_param import AdvancedExtractSettingsParam
54
55
 
55
56
  if TYPE_CHECKING:
56
- from .resources import beta, task_run
57
+ from .resources import beta, monitor, task_run, task_group
58
+ from .resources.monitor import MonitorResource, AsyncMonitorResource
57
59
  from .resources.task_run import TaskRunResource, AsyncTaskRunResource
58
60
  from .resources.beta.beta import BetaResource, AsyncBetaResource
61
+ from .resources.task_group import TaskGroupResource, AsyncTaskGroupResource
59
62
 
60
63
  __all__ = [
61
64
  "Timeout",
@@ -113,6 +116,15 @@ class Parallel(SyncAPIClient):
113
116
  if base_url is None:
114
117
  base_url = f"https://api.parallel.ai"
115
118
 
119
+ custom_headers_env = os.environ.get("PARALLEL_CUSTOM_HEADERS")
120
+ if custom_headers_env is not None:
121
+ parsed: dict[str, str] = {}
122
+ for line in custom_headers_env.split("\n"):
123
+ colon = line.find(":")
124
+ if colon >= 0:
125
+ parsed[line[:colon].strip()] = line[colon + 1 :].strip()
126
+ default_headers = {**parsed, **(default_headers if is_mapping_t(default_headers) else {})}
127
+
116
128
  super().__init__(
117
129
  version=__version__,
118
130
  base_url=base_url,
@@ -132,7 +144,7 @@ class Parallel(SyncAPIClient):
132
144
  - Output metadata: citations, excerpts, reasoning, and confidence per field
133
145
 
134
146
  Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
135
- - Submit hundreds or thousands of Tasks as a single group
147
+ - Submit hundreds or thousands of Tasks as a single group
136
148
  - Observe group progress and receive results as they complete
137
149
  - Real-time updates via Server-Sent Events (SSE)
138
150
  - Add tasks to an existing group while it is running
@@ -142,6 +154,38 @@ class Parallel(SyncAPIClient):
142
154
 
143
155
  return TaskRunResource(self)
144
156
 
157
+ @cached_property
158
+ def task_group(self) -> TaskGroupResource:
159
+ """The Task API executes web research and extraction tasks.
160
+
161
+ Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.
162
+ - Output metadata: citations, excerpts, reasoning, and confidence per field
163
+
164
+ Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
165
+ - Submit hundreds or thousands of Tasks as a single group
166
+ - Observe group progress and receive results as they complete
167
+ - Real-time updates via Server-Sent Events (SSE)
168
+ - Add tasks to an existing group while it is running
169
+ - Group-level retry and error aggregation
170
+ """
171
+ from .resources.task_group import TaskGroupResource
172
+
173
+ return TaskGroupResource(self)
174
+
175
+ @cached_property
176
+ def monitor(self) -> MonitorResource:
177
+ """The Monitor API watches the web for material changes on a fixed frequency.
178
+
179
+ Each monitor runs once on creation and then on its configured schedule, emitting events when meaningful changes are detected.
180
+ - `event_stream` monitors track a search query and emit an event for each new material change.
181
+ - `snapshot` monitors track a specific task run's output and emit an event when the output changes.
182
+
183
+ Results can be polled via the events endpoint or delivered via webhooks.
184
+ """
185
+ from .resources.monitor import MonitorResource
186
+
187
+ return MonitorResource(self)
188
+
145
189
  @cached_property
146
190
  def beta(self) -> BetaResource:
147
191
  from .resources.beta import BetaResource
@@ -464,6 +508,15 @@ class AsyncParallel(AsyncAPIClient):
464
508
  if base_url is None:
465
509
  base_url = f"https://api.parallel.ai"
466
510
 
511
+ custom_headers_env = os.environ.get("PARALLEL_CUSTOM_HEADERS")
512
+ if custom_headers_env is not None:
513
+ parsed: dict[str, str] = {}
514
+ for line in custom_headers_env.split("\n"):
515
+ colon = line.find(":")
516
+ if colon >= 0:
517
+ parsed[line[:colon].strip()] = line[colon + 1 :].strip()
518
+ default_headers = {**parsed, **(default_headers if is_mapping_t(default_headers) else {})}
519
+
467
520
  super().__init__(
468
521
  version=__version__,
469
522
  base_url=base_url,
@@ -483,7 +536,7 @@ class AsyncParallel(AsyncAPIClient):
483
536
  - Output metadata: citations, excerpts, reasoning, and confidence per field
484
537
 
485
538
  Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
486
- - Submit hundreds or thousands of Tasks as a single group
539
+ - Submit hundreds or thousands of Tasks as a single group
487
540
  - Observe group progress and receive results as they complete
488
541
  - Real-time updates via Server-Sent Events (SSE)
489
542
  - Add tasks to an existing group while it is running
@@ -493,6 +546,38 @@ class AsyncParallel(AsyncAPIClient):
493
546
 
494
547
  return AsyncTaskRunResource(self)
495
548
 
549
+ @cached_property
550
+ def task_group(self) -> AsyncTaskGroupResource:
551
+ """The Task API executes web research and extraction tasks.
552
+
553
+ Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.
554
+ - Output metadata: citations, excerpts, reasoning, and confidence per field
555
+
556
+ Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
557
+ - Submit hundreds or thousands of Tasks as a single group
558
+ - Observe group progress and receive results as they complete
559
+ - Real-time updates via Server-Sent Events (SSE)
560
+ - Add tasks to an existing group while it is running
561
+ - Group-level retry and error aggregation
562
+ """
563
+ from .resources.task_group import AsyncTaskGroupResource
564
+
565
+ return AsyncTaskGroupResource(self)
566
+
567
+ @cached_property
568
+ def monitor(self) -> AsyncMonitorResource:
569
+ """The Monitor API watches the web for material changes on a fixed frequency.
570
+
571
+ Each monitor runs once on creation and then on its configured schedule, emitting events when meaningful changes are detected.
572
+ - `event_stream` monitors track a search query and emit an event for each new material change.
573
+ - `snapshot` monitors track a specific task run's output and emit an event when the output changes.
574
+
575
+ Results can be polled via the events endpoint or delivered via webhooks.
576
+ """
577
+ from .resources.monitor import AsyncMonitorResource
578
+
579
+ return AsyncMonitorResource(self)
580
+
496
581
  @cached_property
497
582
  def beta(self) -> AsyncBetaResource:
498
583
  from .resources.beta import AsyncBetaResource
@@ -792,7 +877,7 @@ class ParallelWithRawResponse:
792
877
  - Output metadata: citations, excerpts, reasoning, and confidence per field
793
878
 
794
879
  Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
795
- - Submit hundreds or thousands of Tasks as a single group
880
+ - Submit hundreds or thousands of Tasks as a single group
796
881
  - Observe group progress and receive results as they complete
797
882
  - Real-time updates via Server-Sent Events (SSE)
798
883
  - Add tasks to an existing group while it is running
@@ -802,6 +887,38 @@ class ParallelWithRawResponse:
802
887
 
803
888
  return TaskRunResourceWithRawResponse(self._client.task_run)
804
889
 
890
+ @cached_property
891
+ def task_group(self) -> task_group.TaskGroupResourceWithRawResponse:
892
+ """The Task API executes web research and extraction tasks.
893
+
894
+ Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.
895
+ - Output metadata: citations, excerpts, reasoning, and confidence per field
896
+
897
+ Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
898
+ - Submit hundreds or thousands of Tasks as a single group
899
+ - Observe group progress and receive results as they complete
900
+ - Real-time updates via Server-Sent Events (SSE)
901
+ - Add tasks to an existing group while it is running
902
+ - Group-level retry and error aggregation
903
+ """
904
+ from .resources.task_group import TaskGroupResourceWithRawResponse
905
+
906
+ return TaskGroupResourceWithRawResponse(self._client.task_group)
907
+
908
+ @cached_property
909
+ def monitor(self) -> monitor.MonitorResourceWithRawResponse:
910
+ """The Monitor API watches the web for material changes on a fixed frequency.
911
+
912
+ Each monitor runs once on creation and then on its configured schedule, emitting events when meaningful changes are detected.
913
+ - `event_stream` monitors track a search query and emit an event for each new material change.
914
+ - `snapshot` monitors track a specific task run's output and emit an event when the output changes.
915
+
916
+ Results can be polled via the events endpoint or delivered via webhooks.
917
+ """
918
+ from .resources.monitor import MonitorResourceWithRawResponse
919
+
920
+ return MonitorResourceWithRawResponse(self._client.monitor)
921
+
805
922
  @cached_property
806
923
  def beta(self) -> beta.BetaResourceWithRawResponse:
807
924
  from .resources.beta import BetaResourceWithRawResponse
@@ -830,7 +947,7 @@ class AsyncParallelWithRawResponse:
830
947
  - Output metadata: citations, excerpts, reasoning, and confidence per field
831
948
 
832
949
  Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
833
- - Submit hundreds or thousands of Tasks as a single group
950
+ - Submit hundreds or thousands of Tasks as a single group
834
951
  - Observe group progress and receive results as they complete
835
952
  - Real-time updates via Server-Sent Events (SSE)
836
953
  - Add tasks to an existing group while it is running
@@ -840,6 +957,38 @@ class AsyncParallelWithRawResponse:
840
957
 
841
958
  return AsyncTaskRunResourceWithRawResponse(self._client.task_run)
842
959
 
960
+ @cached_property
961
+ def task_group(self) -> task_group.AsyncTaskGroupResourceWithRawResponse:
962
+ """The Task API executes web research and extraction tasks.
963
+
964
+ Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.
965
+ - Output metadata: citations, excerpts, reasoning, and confidence per field
966
+
967
+ Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
968
+ - Submit hundreds or thousands of Tasks as a single group
969
+ - Observe group progress and receive results as they complete
970
+ - Real-time updates via Server-Sent Events (SSE)
971
+ - Add tasks to an existing group while it is running
972
+ - Group-level retry and error aggregation
973
+ """
974
+ from .resources.task_group import AsyncTaskGroupResourceWithRawResponse
975
+
976
+ return AsyncTaskGroupResourceWithRawResponse(self._client.task_group)
977
+
978
+ @cached_property
979
+ def monitor(self) -> monitor.AsyncMonitorResourceWithRawResponse:
980
+ """The Monitor API watches the web for material changes on a fixed frequency.
981
+
982
+ Each monitor runs once on creation and then on its configured schedule, emitting events when meaningful changes are detected.
983
+ - `event_stream` monitors track a search query and emit an event for each new material change.
984
+ - `snapshot` monitors track a specific task run's output and emit an event when the output changes.
985
+
986
+ Results can be polled via the events endpoint or delivered via webhooks.
987
+ """
988
+ from .resources.monitor import AsyncMonitorResourceWithRawResponse
989
+
990
+ return AsyncMonitorResourceWithRawResponse(self._client.monitor)
991
+
843
992
  @cached_property
844
993
  def beta(self) -> beta.AsyncBetaResourceWithRawResponse:
845
994
  from .resources.beta import AsyncBetaResourceWithRawResponse
@@ -868,7 +1017,7 @@ class ParallelWithStreamedResponse:
868
1017
  - Output metadata: citations, excerpts, reasoning, and confidence per field
869
1018
 
870
1019
  Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
871
- - Submit hundreds or thousands of Tasks as a single group
1020
+ - Submit hundreds or thousands of Tasks as a single group
872
1021
  - Observe group progress and receive results as they complete
873
1022
  - Real-time updates via Server-Sent Events (SSE)
874
1023
  - Add tasks to an existing group while it is running
@@ -878,6 +1027,38 @@ class ParallelWithStreamedResponse:
878
1027
 
879
1028
  return TaskRunResourceWithStreamingResponse(self._client.task_run)
880
1029
 
1030
+ @cached_property
1031
+ def task_group(self) -> task_group.TaskGroupResourceWithStreamingResponse:
1032
+ """The Task API executes web research and extraction tasks.
1033
+
1034
+ Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.
1035
+ - Output metadata: citations, excerpts, reasoning, and confidence per field
1036
+
1037
+ Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
1038
+ - Submit hundreds or thousands of Tasks as a single group
1039
+ - Observe group progress and receive results as they complete
1040
+ - Real-time updates via Server-Sent Events (SSE)
1041
+ - Add tasks to an existing group while it is running
1042
+ - Group-level retry and error aggregation
1043
+ """
1044
+ from .resources.task_group import TaskGroupResourceWithStreamingResponse
1045
+
1046
+ return TaskGroupResourceWithStreamingResponse(self._client.task_group)
1047
+
1048
+ @cached_property
1049
+ def monitor(self) -> monitor.MonitorResourceWithStreamingResponse:
1050
+ """The Monitor API watches the web for material changes on a fixed frequency.
1051
+
1052
+ Each monitor runs once on creation and then on its configured schedule, emitting events when meaningful changes are detected.
1053
+ - `event_stream` monitors track a search query and emit an event for each new material change.
1054
+ - `snapshot` monitors track a specific task run's output and emit an event when the output changes.
1055
+
1056
+ Results can be polled via the events endpoint or delivered via webhooks.
1057
+ """
1058
+ from .resources.monitor import MonitorResourceWithStreamingResponse
1059
+
1060
+ return MonitorResourceWithStreamingResponse(self._client.monitor)
1061
+
881
1062
  @cached_property
882
1063
  def beta(self) -> beta.BetaResourceWithStreamingResponse:
883
1064
  from .resources.beta import BetaResourceWithStreamingResponse
@@ -906,7 +1087,7 @@ class AsyncParallelWithStreamedResponse:
906
1087
  - Output metadata: citations, excerpts, reasoning, and confidence per field
907
1088
 
908
1089
  Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
909
- - Submit hundreds or thousands of Tasks as a single group
1090
+ - Submit hundreds or thousands of Tasks as a single group
910
1091
  - Observe group progress and receive results as they complete
911
1092
  - Real-time updates via Server-Sent Events (SSE)
912
1093
  - Add tasks to an existing group while it is running
@@ -916,6 +1097,38 @@ class AsyncParallelWithStreamedResponse:
916
1097
 
917
1098
  return AsyncTaskRunResourceWithStreamingResponse(self._client.task_run)
918
1099
 
1100
+ @cached_property
1101
+ def task_group(self) -> task_group.AsyncTaskGroupResourceWithStreamingResponse:
1102
+ """The Task API executes web research and extraction tasks.
1103
+
1104
+ Clients submit a natural-language objective with an optional input schema; the service plans retrieval, fetches relevant URLs, and returns outputs that conform to a provided or inferred JSON schema. Supports deep research style queries and can return rich structured JSON outputs. Processors trade-off between cost, latency, and quality. Each processor supports calibrated confidences.
1105
+ - Output metadata: citations, excerpts, reasoning, and confidence per field
1106
+
1107
+ Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
1108
+ - Submit hundreds or thousands of Tasks as a single group
1109
+ - Observe group progress and receive results as they complete
1110
+ - Real-time updates via Server-Sent Events (SSE)
1111
+ - Add tasks to an existing group while it is running
1112
+ - Group-level retry and error aggregation
1113
+ """
1114
+ from .resources.task_group import AsyncTaskGroupResourceWithStreamingResponse
1115
+
1116
+ return AsyncTaskGroupResourceWithStreamingResponse(self._client.task_group)
1117
+
1118
+ @cached_property
1119
+ def monitor(self) -> monitor.AsyncMonitorResourceWithStreamingResponse:
1120
+ """The Monitor API watches the web for material changes on a fixed frequency.
1121
+
1122
+ Each monitor runs once on creation and then on its configured schedule, emitting events when meaningful changes are detected.
1123
+ - `event_stream` monitors track a search query and emit an event for each new material change.
1124
+ - `snapshot` monitors track a specific task run's output and emit an event when the output changes.
1125
+
1126
+ Results can be polled via the events endpoint or delivered via webhooks.
1127
+ """
1128
+ from .resources.monitor import AsyncMonitorResourceWithStreamingResponse
1129
+
1130
+ return AsyncMonitorResourceWithStreamingResponse(self._client.monitor)
1131
+
919
1132
  @cached_property
920
1133
  def beta(self) -> beta.AsyncBetaResourceWithStreamingResponse:
921
1134
  from .resources.beta import AsyncBetaResourceWithStreamingResponse
@@ -2,17 +2,13 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Any, List, Tuple, Union, Mapping, TypeVar
4
4
  from urllib.parse import parse_qs, urlencode
5
- from typing_extensions import Literal, get_args
5
+ from typing_extensions import get_args
6
6
 
7
- from ._types import NotGiven, not_given
7
+ from ._types import NotGiven, ArrayFormat, NestedFormat, not_given
8
8
  from ._utils import flatten
9
9
 
10
10
  _T = TypeVar("_T")
11
11
 
12
-
13
- ArrayFormat = Literal["comma", "repeat", "indices", "brackets"]
14
- NestedFormat = Literal["dots", "brackets"]
15
-
16
12
  PrimitiveData = Union[str, int, float, bool, None]
17
13
  # this should be Data = Union[PrimitiveData, "List[Data]", "Tuple[Data]", "Mapping[str, Data]"]
18
14
  # https://github.com/microsoft/pyright/issues/3555
@@ -47,6 +47,9 @@ AnyMapping = Mapping[str, object]
47
47
  ModelT = TypeVar("ModelT", bound=pydantic.BaseModel)
48
48
  _T = TypeVar("_T")
49
49
 
50
+ ArrayFormat = Literal["comma", "repeat", "indices", "brackets"]
51
+ NestedFormat = Literal["dots", "brackets"]
52
+
50
53
 
51
54
  # Approximates httpx internal ProxiesTypes and RequestFiles types
52
55
  # while adding support for `PathLike` instances