parallel-web 0.5.0__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.
- {parallel_web-0.5.0 → parallel_web-0.6.0}/.gitignore +1 -0
- parallel_web-0.6.0/.release-please-manifest.json +3 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/CHANGELOG.md +41 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/PKG-INFO +1 -1
- parallel_web-0.6.0/api.md +128 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/pyproject.toml +7 -2
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_client.py +236 -15
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_qs.py +2 -6
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_types.py +3 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_utils.py +34 -8
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_version.py +1 -1
- parallel_web-0.6.0/src/parallel/resources/__init__.py +47 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/resources/beta/api.md +12 -7
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/resources/beta/beta.py +77 -94
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/resources/beta/findall.py +12 -9
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/resources/beta/task_group.py +95 -66
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/resources/beta/task_run.py +5 -4
- parallel_web-0.6.0/src/parallel/resources/monitor.py +965 -0
- parallel_web-0.6.0/src/parallel/resources/task_group.py +787 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/resources/task_run.py +84 -6
- parallel_web-0.6.0/src/parallel/types/__init__.py +90 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/advanced_extract_settings_param.py +9 -14
- parallel_web-0.6.0/src/parallel/types/advanced_monitor_settings.py +21 -0
- parallel_web-0.6.0/src/parallel/types/advanced_monitor_settings_param.py +23 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/__init__.py +7 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/beta_extract_params.py +13 -13
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/beta_search_params.py +6 -0
- parallel_web-0.5.0/src/parallel/types/beta/findall_run_result.py → parallel_web-0.6.0/src/parallel/types/beta/findall_candidate.py +2 -28
- parallel_web-0.6.0/src/parallel/types/beta/findall_candidate_match_status_event.py +43 -0
- parallel_web-0.6.0/src/parallel/types/beta/findall_candidate_metrics.py +17 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_create_params.py +7 -16
- parallel_web-0.6.0/src/parallel/types/beta/findall_run.py +46 -0
- parallel_web-0.6.0/src/parallel/types/beta/findall_run_result.py +38 -0
- parallel_web-0.6.0/src/parallel/types/beta/findall_run_status.py +35 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_schema.py +2 -15
- parallel_web-0.6.0/src/parallel/types/beta/full_content_settings_param.py +7 -0
- parallel_web-0.6.0/src/parallel/types/beta/match_condition.py +19 -0
- parallel_web-0.6.0/src/parallel/types/beta/match_condition_param.py +21 -0
- parallel_web-0.6.0/src/parallel/types/beta/task_group.py +14 -0
- parallel_web-0.6.0/src/parallel/types/beta/task_group_events_response.py +15 -0
- parallel_web-0.6.0/src/parallel/types/beta/task_group_run_response.py +7 -0
- parallel_web-0.6.0/src/parallel/types/beta/task_group_status.py +7 -0
- parallel_web-0.6.0/src/parallel/types/beta/task_group_status_event.py +7 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_run_create_params.py +6 -7
- parallel_web-0.6.0/src/parallel/types/beta/task_run_events_response.py +24 -0
- parallel_web-0.6.0/src/parallel/types/full_content_settings_param.py +19 -0
- parallel_web-0.6.0/src/parallel/types/monitor.py +74 -0
- parallel_web-0.6.0/src/parallel/types/monitor_completion_event.py +23 -0
- parallel_web-0.6.0/src/parallel/types/monitor_create_params.py +56 -0
- parallel_web-0.6.0/src/parallel/types/monitor_error_event.py +25 -0
- parallel_web-0.6.0/src/parallel/types/monitor_event_stream_event.py +43 -0
- parallel_web-0.6.0/src/parallel/types/monitor_event_stream_response_settings.py +30 -0
- parallel_web-0.6.0/src/parallel/types/monitor_event_stream_settings_param.py +32 -0
- parallel_web-0.6.0/src/parallel/types/monitor_events_params.py +29 -0
- parallel_web-0.6.0/src/parallel/types/monitor_list_params.py +31 -0
- parallel_web-0.6.0/src/parallel/types/monitor_snapshot_event.py +51 -0
- parallel_web-0.6.0/src/parallel/types/monitor_snapshot_output.py +26 -0
- parallel_web-0.6.0/src/parallel/types/monitor_snapshot_response_settings.py +21 -0
- parallel_web-0.6.0/src/parallel/types/monitor_snapshot_settings_param.py +14 -0
- parallel_web-0.6.0/src/parallel/types/monitor_update_params.py +40 -0
- parallel_web-0.6.0/src/parallel/types/monitor_webhook.py +20 -0
- parallel_web-0.6.0/src/parallel/types/monitor_webhook_param.py +18 -0
- parallel_web-0.6.0/src/parallel/types/paginated_monitor_events.py +32 -0
- parallel_web-0.6.0/src/parallel/types/paginated_monitor_response.py +21 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/run_input.py +8 -9
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/run_input_param.py +8 -9
- parallel_web-0.6.0/src/parallel/types/task_advanced_settings.py +14 -0
- parallel_web-0.6.0/src/parallel/types/task_advanced_settings_param.py +15 -0
- {parallel_web-0.5.0/src/parallel/types/beta → parallel_web-0.6.0/src/parallel/types}/task_group.py +1 -1
- parallel_web-0.6.0/src/parallel/types/task_group_add_runs_params.py +36 -0
- parallel_web-0.6.0/src/parallel/types/task_group_create_params.py +13 -0
- parallel_web-0.6.0/src/parallel/types/task_group_events_params.py +16 -0
- parallel_web-0.6.0/src/parallel/types/task_group_events_response.py +15 -0
- parallel_web-0.6.0/src/parallel/types/task_group_get_runs_params.py +18 -0
- parallel_web-0.6.0/src/parallel/types/task_group_get_runs_response.py +12 -0
- {parallel_web-0.5.0/src/parallel/types/beta → parallel_web-0.6.0/src/parallel/types}/task_group_run_response.py +1 -1
- {parallel_web-0.5.0/src/parallel/types/beta → parallel_web-0.6.0/src/parallel/types}/task_group_status.py +1 -1
- parallel_web-0.5.0/src/parallel/types/beta/task_group_events_response.py → parallel_web-0.6.0/src/parallel/types/task_group_status_event.py +3 -12
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_run_create_params.py +6 -7
- parallel_web-0.6.0/src/parallel/types/task_run_events_response.py +24 -0
- parallel_web-0.6.0/src/parallel/types/task_run_progress_message_event.py +27 -0
- parallel_web-0.6.0/src/parallel/types/task_run_progress_stats_event.py +24 -0
- parallel_web-0.6.0/src/parallel/types/task_run_source_stats.py +20 -0
- parallel_web-0.6.0/src/parallel/types/update_monitor_event_stream_settings_param.py +17 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/api_resources/beta/test_findall.py +8 -8
- parallel_web-0.6.0/tests/api_resources/beta/test_task_group.py +665 -0
- parallel_web-0.6.0/tests/api_resources/test_beta.py +261 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/api_resources/test_client.py +4 -4
- parallel_web-0.6.0/tests/api_resources/test_monitor.py +705 -0
- {parallel_web-0.5.0/tests/api_resources/beta → parallel_web-0.6.0/tests/api_resources}/test_task_group.py +145 -48
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/api_resources/test_task_run.py +77 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_extract_files.py +23 -5
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_files.py +1 -1
- parallel_web-0.5.0/.release-please-manifest.json +0 -3
- parallel_web-0.5.0/api.md +0 -62
- parallel_web-0.5.0/src/parallel/resources/__init__.py +0 -19
- parallel_web-0.5.0/src/parallel/types/__init__.py +0 -49
- parallel_web-0.5.0/src/parallel/types/beta/findall_candidate_match_status_event.py +0 -72
- parallel_web-0.5.0/src/parallel/types/beta/findall_run.py +0 -73
- parallel_web-0.5.0/src/parallel/types/beta/task_run_events_response.py +0 -70
- parallel_web-0.5.0/src/parallel/types/task_run_events_response.py +0 -70
- parallel_web-0.5.0/tests/api_resources/test_beta.py +0 -231
- {parallel_web-0.5.0 → parallel_web-0.6.0}/CONTRIBUTING.md +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/LICENSE +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/README.md +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/SECURITY.md +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/bin/check-release-environment +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/bin/publish-pypi +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/examples/.keep +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/noxfile.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/release-please-config.json +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/requirements-dev.lock +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/requirements.lock +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_base_client.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_compat.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_constants.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_exceptions.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_files.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_models.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_resource.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_streaming.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_compat.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_datetime_parse.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_json.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_logs.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_path.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_proxy.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_reflection.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_resources_proxy.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_streams.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_sync.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_transform.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/_utils/_typing.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/lib/.keep +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/lib/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/lib/_parsing/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/lib/_parsing/_task_run_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/lib/_parsing/_task_spec.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/lib/_pydantic.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/lib/_time.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/py.typed +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/resources/beta/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/advanced_search_settings_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/auto_schema.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/auto_schema_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/beta_run_input.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/beta_run_input_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/beta_task_run_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/error_event.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/excerpt_settings_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/extract_error.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/extract_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/extract_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/fetch_policy_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_candidates_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_candidates_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_enrich_input.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_enrich_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_events_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_events_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_extend_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_ingest_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_run_status_event.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/findall_schema_updated_event.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/mcp_server.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/mcp_server_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/mcp_tool_call.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/parallel_beta_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/search_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_add_runs_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_create_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_events_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_get_runs_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_group_get_runs_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_run_event.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/task_run_result_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/usage_item.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/web_search_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/webhook.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/beta/webhook_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/citation.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/client_extract_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/client_search_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/error_event.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/excerpt_settings_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/extract_error.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/extract_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/extract_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/fetch_policy_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/field_basis.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/json_schema.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/json_schema_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/mcp_server.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/mcp_server_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/mcp_tool_call.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/parsed_task_run_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/search_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/shared/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/shared/error_object.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/shared/error_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/shared/source_policy.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/shared/warning.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/shared_params/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/shared_params/source_policy.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_run.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_run_event.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_run_json_output.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_run_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_run_result_params.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_run_text_output.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_spec.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/task_spec_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/text_schema.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/text_schema_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/usage_item.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/web_search_result.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/webhook.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/src/parallel/types/webhook_param.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/api_resources/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/api_resources/beta/__init__.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/api_resources/beta/test_task_run.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/conftest.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/sample_file.txt +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_client.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_models.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_qs.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_required_args.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_response.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_streaming.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_transform.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_utils/test_json.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_utils/test_path.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_utils/test_proxy.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/test_utils/test_typing.py +0 -0
- {parallel_web-0.5.0 → parallel_web-0.6.0}/tests/utils.py +0 -0
|
@@ -1,5 +1,46 @@
|
|
|
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
|
+
|
|
34
|
+
## 0.5.1 (2026-04-22)
|
|
35
|
+
|
|
36
|
+
Full Changelog: [v0.5.0...v0.5.1](https://github.com/parallel-web/parallel-sdk-python/compare/v0.5.0...v0.5.1)
|
|
37
|
+
|
|
38
|
+
### Features
|
|
39
|
+
|
|
40
|
+
* **api:** manual updates ([86c7d33](https://github.com/parallel-web/parallel-sdk-python/commit/86c7d334df7c2018d0277fe3efa93fb7029f6a41))
|
|
41
|
+
* **api:** Mark search and extract as deprecated ([cfdea3b](https://github.com/parallel-web/parallel-sdk-python/commit/cfdea3b19622911e65c9359f0acdbd4b201d2d08))
|
|
42
|
+
* **api:** OpenAPI changes ([cfc5fb3](https://github.com/parallel-web/parallel-sdk-python/commit/cfc5fb373a46c73c2f79057b593712d7b847ee33))
|
|
43
|
+
|
|
3
44
|
## 0.5.0 (2026-04-21)
|
|
4
45
|
|
|
5
46
|
Full Changelog: [v0.4.2...v0.5.0](https://github.com/parallel-web/parallel-sdk-python/compare/v0.4.2...v0.5.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: parallel-web
|
|
3
|
-
Version: 0.
|
|
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.
|
|
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 = [
|
|
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
|
-
|
|
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
|
|
@@ -247,8 +291,10 @@ class Parallel(SyncAPIClient):
|
|
|
247
291
|
"""
|
|
248
292
|
Extracts relevant content from specific web URLs.
|
|
249
293
|
|
|
250
|
-
The legacy Extract API reference is available
|
|
251
|
-
[here](https://docs.parallel.ai/api-reference/legacy/extract-beta/extract)
|
|
294
|
+
The legacy Extract API reference (`/v1beta/extract` endpoint) is available
|
|
295
|
+
[here](https://docs.parallel.ai/api-reference/legacy/extract-beta/extract), and
|
|
296
|
+
migration guide is
|
|
297
|
+
[here](https://docs.parallel.ai/extract/extract-migration-guide).
|
|
252
298
|
|
|
253
299
|
Args:
|
|
254
300
|
urls: URLs to extract content from. Up to 20 URLs.
|
|
@@ -322,8 +368,10 @@ class Parallel(SyncAPIClient):
|
|
|
322
368
|
"""
|
|
323
369
|
Searches the web.
|
|
324
370
|
|
|
325
|
-
The legacy Search API reference is available
|
|
326
|
-
[here](https://docs.parallel.ai/api-reference/legacy/search-beta/search)
|
|
371
|
+
The legacy Search API reference (`/v1beta/search` endpoint) is available
|
|
372
|
+
[here](https://docs.parallel.ai/api-reference/legacy/search-beta/search), and
|
|
373
|
+
migration guide is
|
|
374
|
+
[here](https://docs.parallel.ai/search/search-migration-guide).
|
|
327
375
|
|
|
328
376
|
Args:
|
|
329
377
|
search_queries: Concise keyword search queries, 3-6 words each. At least one query is required,
|
|
@@ -460,6 +508,15 @@ class AsyncParallel(AsyncAPIClient):
|
|
|
460
508
|
if base_url is None:
|
|
461
509
|
base_url = f"https://api.parallel.ai"
|
|
462
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
|
+
|
|
463
520
|
super().__init__(
|
|
464
521
|
version=__version__,
|
|
465
522
|
base_url=base_url,
|
|
@@ -479,7 +536,7 @@ class AsyncParallel(AsyncAPIClient):
|
|
|
479
536
|
- Output metadata: citations, excerpts, reasoning, and confidence per field
|
|
480
537
|
|
|
481
538
|
Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
|
|
482
|
-
|
|
539
|
+
- Submit hundreds or thousands of Tasks as a single group
|
|
483
540
|
- Observe group progress and receive results as they complete
|
|
484
541
|
- Real-time updates via Server-Sent Events (SSE)
|
|
485
542
|
- Add tasks to an existing group while it is running
|
|
@@ -489,6 +546,38 @@ class AsyncParallel(AsyncAPIClient):
|
|
|
489
546
|
|
|
490
547
|
return AsyncTaskRunResource(self)
|
|
491
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
|
+
|
|
492
581
|
@cached_property
|
|
493
582
|
def beta(self) -> AsyncBetaResource:
|
|
494
583
|
from .resources.beta import AsyncBetaResource
|
|
@@ -594,8 +683,10 @@ class AsyncParallel(AsyncAPIClient):
|
|
|
594
683
|
"""
|
|
595
684
|
Extracts relevant content from specific web URLs.
|
|
596
685
|
|
|
597
|
-
The legacy Extract API reference is available
|
|
598
|
-
[here](https://docs.parallel.ai/api-reference/legacy/extract-beta/extract)
|
|
686
|
+
The legacy Extract API reference (`/v1beta/extract` endpoint) is available
|
|
687
|
+
[here](https://docs.parallel.ai/api-reference/legacy/extract-beta/extract), and
|
|
688
|
+
migration guide is
|
|
689
|
+
[here](https://docs.parallel.ai/extract/extract-migration-guide).
|
|
599
690
|
|
|
600
691
|
Args:
|
|
601
692
|
urls: URLs to extract content from. Up to 20 URLs.
|
|
@@ -669,8 +760,10 @@ class AsyncParallel(AsyncAPIClient):
|
|
|
669
760
|
"""
|
|
670
761
|
Searches the web.
|
|
671
762
|
|
|
672
|
-
The legacy Search API reference is available
|
|
673
|
-
[here](https://docs.parallel.ai/api-reference/legacy/search-beta/search)
|
|
763
|
+
The legacy Search API reference (`/v1beta/search` endpoint) is available
|
|
764
|
+
[here](https://docs.parallel.ai/api-reference/legacy/search-beta/search), and
|
|
765
|
+
migration guide is
|
|
766
|
+
[here](https://docs.parallel.ai/search/search-migration-guide).
|
|
674
767
|
|
|
675
768
|
Args:
|
|
676
769
|
search_queries: Concise keyword search queries, 3-6 words each. At least one query is required,
|
|
@@ -784,7 +877,7 @@ class ParallelWithRawResponse:
|
|
|
784
877
|
- Output metadata: citations, excerpts, reasoning, and confidence per field
|
|
785
878
|
|
|
786
879
|
Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
|
|
787
|
-
|
|
880
|
+
- Submit hundreds or thousands of Tasks as a single group
|
|
788
881
|
- Observe group progress and receive results as they complete
|
|
789
882
|
- Real-time updates via Server-Sent Events (SSE)
|
|
790
883
|
- Add tasks to an existing group while it is running
|
|
@@ -794,6 +887,38 @@ class ParallelWithRawResponse:
|
|
|
794
887
|
|
|
795
888
|
return TaskRunResourceWithRawResponse(self._client.task_run)
|
|
796
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
|
+
|
|
797
922
|
@cached_property
|
|
798
923
|
def beta(self) -> beta.BetaResourceWithRawResponse:
|
|
799
924
|
from .resources.beta import BetaResourceWithRawResponse
|
|
@@ -822,7 +947,7 @@ class AsyncParallelWithRawResponse:
|
|
|
822
947
|
- Output metadata: citations, excerpts, reasoning, and confidence per field
|
|
823
948
|
|
|
824
949
|
Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
|
|
825
|
-
|
|
950
|
+
- Submit hundreds or thousands of Tasks as a single group
|
|
826
951
|
- Observe group progress and receive results as they complete
|
|
827
952
|
- Real-time updates via Server-Sent Events (SSE)
|
|
828
953
|
- Add tasks to an existing group while it is running
|
|
@@ -832,6 +957,38 @@ class AsyncParallelWithRawResponse:
|
|
|
832
957
|
|
|
833
958
|
return AsyncTaskRunResourceWithRawResponse(self._client.task_run)
|
|
834
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
|
+
|
|
835
992
|
@cached_property
|
|
836
993
|
def beta(self) -> beta.AsyncBetaResourceWithRawResponse:
|
|
837
994
|
from .resources.beta import AsyncBetaResourceWithRawResponse
|
|
@@ -860,7 +1017,7 @@ class ParallelWithStreamedResponse:
|
|
|
860
1017
|
- Output metadata: citations, excerpts, reasoning, and confidence per field
|
|
861
1018
|
|
|
862
1019
|
Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
|
|
863
|
-
|
|
1020
|
+
- Submit hundreds or thousands of Tasks as a single group
|
|
864
1021
|
- Observe group progress and receive results as they complete
|
|
865
1022
|
- Real-time updates via Server-Sent Events (SSE)
|
|
866
1023
|
- Add tasks to an existing group while it is running
|
|
@@ -870,6 +1027,38 @@ class ParallelWithStreamedResponse:
|
|
|
870
1027
|
|
|
871
1028
|
return TaskRunResourceWithStreamingResponse(self._client.task_run)
|
|
872
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
|
+
|
|
873
1062
|
@cached_property
|
|
874
1063
|
def beta(self) -> beta.BetaResourceWithStreamingResponse:
|
|
875
1064
|
from .resources.beta import BetaResourceWithStreamingResponse
|
|
@@ -898,7 +1087,7 @@ class AsyncParallelWithStreamedResponse:
|
|
|
898
1087
|
- Output metadata: citations, excerpts, reasoning, and confidence per field
|
|
899
1088
|
|
|
900
1089
|
Task Groups enable batch execution of many independent Task runs with group-level monitoring and failure handling.
|
|
901
|
-
|
|
1090
|
+
- Submit hundreds or thousands of Tasks as a single group
|
|
902
1091
|
- Observe group progress and receive results as they complete
|
|
903
1092
|
- Real-time updates via Server-Sent Events (SSE)
|
|
904
1093
|
- Add tasks to an existing group while it is running
|
|
@@ -908,6 +1097,38 @@ class AsyncParallelWithStreamedResponse:
|
|
|
908
1097
|
|
|
909
1098
|
return AsyncTaskRunResourceWithStreamingResponse(self._client.task_run)
|
|
910
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
|
+
|
|
911
1132
|
@cached_property
|
|
912
1133
|
def beta(self) -> beta.AsyncBetaResourceWithStreamingResponse:
|
|
913
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
|
|
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
|