parallel-web 0.3.3__tar.gz → 0.4.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 (156) hide show
  1. parallel_web-0.4.0/.release-please-manifest.json +3 -0
  2. {parallel_web-0.3.3 → parallel_web-0.4.0}/CHANGELOG.md +50 -0
  3. {parallel_web-0.3.3 → parallel_web-0.4.0}/LICENSE +1 -1
  4. {parallel_web-0.3.3 → parallel_web-0.4.0}/PKG-INFO +5 -5
  5. {parallel_web-0.3.3 → parallel_web-0.4.0}/README.md +2 -2
  6. {parallel_web-0.3.3 → parallel_web-0.4.0}/api.md +32 -0
  7. {parallel_web-0.3.3 → parallel_web-0.4.0}/pyproject.toml +13 -11
  8. {parallel_web-0.3.3 → parallel_web-0.4.0}/requirements-dev.lock +63 -51
  9. {parallel_web-0.3.3 → parallel_web-0.4.0}/requirements.lock +20 -19
  10. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_base_client.py +8 -2
  11. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_client.py +105 -29
  12. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_models.py +37 -15
  13. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_streaming.py +12 -10
  14. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_types.py +3 -2
  15. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_sync.py +3 -31
  16. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_version.py +1 -1
  17. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/resources/__init__.py +0 -14
  18. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/resources/beta/__init__.py +26 -0
  19. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/resources/beta/beta.py +44 -24
  20. parallel_web-0.4.0/src/parallel/resources/beta/findall.py +1287 -0
  21. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/auto_schema.py +2 -0
  22. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/auto_schema_param.py +2 -0
  23. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/__init__.py +40 -0
  24. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/beta_extract_params.py +5 -3
  25. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/beta_run_input.py +2 -0
  26. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/beta_run_input_param.py +2 -0
  27. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/beta_search_params.py +1 -1
  28. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/beta_task_run_result.py +17 -3
  29. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/error_event.py +3 -1
  30. parallel_web-0.4.0/src/parallel/types/beta/excerpt_settings_param.py +27 -0
  31. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/extract_error.py +2 -0
  32. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/extract_response.py +2 -0
  33. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/extract_result.py +2 -0
  34. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/fetch_policy_param.py +2 -0
  35. parallel_web-0.4.0/src/parallel/types/beta/findall_candidate_match_status_event.py +72 -0
  36. parallel_web-0.4.0/src/parallel/types/beta/findall_create_params.py +72 -0
  37. parallel_web-0.4.0/src/parallel/types/beta/findall_enrich_input.py +26 -0
  38. parallel_web-0.4.0/src/parallel/types/beta/findall_enrich_params.py +31 -0
  39. parallel_web-0.4.0/src/parallel/types/beta/findall_events_params.py +24 -0
  40. parallel_web-0.4.0/src/parallel/types/beta/findall_events_response.py +21 -0
  41. parallel_web-0.4.0/src/parallel/types/beta/findall_extend_params.py +27 -0
  42. parallel_web-0.4.0/src/parallel/types/beta/findall_ingest_params.py +23 -0
  43. parallel_web-0.4.0/src/parallel/types/beta/findall_run.py +67 -0
  44. parallel_web-0.4.0/src/parallel/types/beta/findall_run_result.py +71 -0
  45. parallel_web-0.4.0/src/parallel/types/beta/findall_run_status_event.py +29 -0
  46. parallel_web-0.4.0/src/parallel/types/beta/findall_schema.py +49 -0
  47. parallel_web-0.4.0/src/parallel/types/beta/findall_schema_updated_event.py +29 -0
  48. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/mcp_server.py +2 -0
  49. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/mcp_server_param.py +2 -0
  50. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/mcp_tool_call.py +2 -0
  51. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/parallel_beta_param.py +9 -1
  52. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/search_result.py +2 -0
  53. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group.py +3 -1
  54. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_events_response.py +3 -1
  55. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_run_response.py +3 -1
  56. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_status.py +2 -0
  57. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_run_event.py +6 -1
  58. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_run_events_response.py +7 -1
  59. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/usage_item.py +2 -0
  60. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/web_search_result.py +2 -0
  61. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/webhook.py +2 -0
  62. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/webhook_param.py +2 -0
  63. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/citation.py +2 -0
  64. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/field_basis.py +2 -0
  65. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/json_schema.py +2 -0
  66. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/json_schema_param.py +2 -0
  67. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/shared/error_object.py +2 -0
  68. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/shared/error_response.py +3 -1
  69. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/shared/source_policy.py +13 -0
  70. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/shared/warning.py +2 -0
  71. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/shared_params/source_policy.py +16 -1
  72. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_run.py +2 -0
  73. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_run_json_output.py +7 -1
  74. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_run_result.py +3 -1
  75. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_run_text_output.py +2 -0
  76. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_spec.py +8 -0
  77. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_spec_param.py +8 -0
  78. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/text_schema.py +2 -0
  79. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/text_schema_param.py +2 -0
  80. parallel_web-0.4.0/tests/api_resources/beta/test_findall.py +1046 -0
  81. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/api_resources/beta/test_task_group.py +3 -0
  82. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/api_resources/beta/test_task_run.py +3 -0
  83. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/api_resources/test_beta.py +19 -4
  84. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/api_resources/test_task_run.py +3 -0
  85. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_models.py +4 -4
  86. parallel_web-0.3.3/.release-please-manifest.json +0 -3
  87. parallel_web-0.3.3/src/parallel/types/beta/excerpt_settings_param.py +0 -17
  88. {parallel_web-0.3.3 → parallel_web-0.4.0}/.gitignore +0 -0
  89. {parallel_web-0.3.3 → parallel_web-0.4.0}/CONTRIBUTING.md +0 -0
  90. {parallel_web-0.3.3 → parallel_web-0.4.0}/SECURITY.md +0 -0
  91. {parallel_web-0.3.3 → parallel_web-0.4.0}/bin/check-release-environment +0 -0
  92. {parallel_web-0.3.3 → parallel_web-0.4.0}/bin/publish-pypi +0 -0
  93. {parallel_web-0.3.3 → parallel_web-0.4.0}/examples/.keep +0 -0
  94. {parallel_web-0.3.3 → parallel_web-0.4.0}/noxfile.py +0 -0
  95. {parallel_web-0.3.3 → parallel_web-0.4.0}/release-please-config.json +0 -0
  96. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/__init__.py +0 -0
  97. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_compat.py +0 -0
  98. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_constants.py +0 -0
  99. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_exceptions.py +0 -0
  100. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_files.py +0 -0
  101. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_qs.py +0 -0
  102. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_resource.py +0 -0
  103. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_response.py +0 -0
  104. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/__init__.py +0 -0
  105. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_compat.py +0 -0
  106. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_datetime_parse.py +0 -0
  107. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_logs.py +0 -0
  108. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_proxy.py +0 -0
  109. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_reflection.py +0 -0
  110. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_resources_proxy.py +0 -0
  111. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_streams.py +0 -0
  112. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_transform.py +0 -0
  113. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_typing.py +0 -0
  114. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/_utils/_utils.py +0 -0
  115. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/lib/.keep +0 -0
  116. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/lib/__init__.py +0 -0
  117. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/lib/_parsing/__init__.py +0 -0
  118. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/lib/_parsing/_task_run_result.py +0 -0
  119. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/lib/_parsing/_task_spec.py +0 -0
  120. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/lib/_pydantic.py +0 -0
  121. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/lib/_time.py +0 -0
  122. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/py.typed +0 -0
  123. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/resources/beta/task_group.py +0 -0
  124. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/resources/beta/task_run.py +0 -0
  125. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/resources/task_run.py +0 -0
  126. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/__init__.py +0 -0
  127. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_add_runs_params.py +0 -0
  128. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_create_params.py +0 -0
  129. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_events_params.py +0 -0
  130. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_get_runs_params.py +0 -0
  131. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_group_get_runs_response.py +0 -0
  132. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_run_create_params.py +0 -0
  133. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/beta/task_run_result_params.py +0 -0
  134. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/parsed_task_run_result.py +0 -0
  135. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/shared/__init__.py +0 -0
  136. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/shared_params/__init__.py +0 -0
  137. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_run_create_params.py +0 -0
  138. {parallel_web-0.3.3 → parallel_web-0.4.0}/src/parallel/types/task_run_result_params.py +0 -0
  139. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/__init__.py +0 -0
  140. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/api_resources/__init__.py +0 -0
  141. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/api_resources/beta/__init__.py +0 -0
  142. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/conftest.py +0 -0
  143. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/sample_file.txt +0 -0
  144. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_client.py +0 -0
  145. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_deepcopy.py +0 -0
  146. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_extract_files.py +0 -0
  147. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_files.py +0 -0
  148. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_qs.py +0 -0
  149. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_required_args.py +0 -0
  150. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_response.py +0 -0
  151. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_streaming.py +0 -0
  152. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_transform.py +0 -0
  153. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_utils/test_datetime_parse.py +0 -0
  154. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_utils/test_proxy.py +0 -0
  155. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/test_utils/test_typing.py +0 -0
  156. {parallel_web-0.3.3 → parallel_web-0.4.0}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.4.0"
3
+ }
@@ -1,5 +1,55 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.0 (2026-01-13)
4
+
5
+ Full Changelog: [v0.3.4...v0.4.0](https://github.com/parallel-web/parallel-sdk-python/compare/v0.3.4...v0.4.0)
6
+
7
+ ### Features
8
+
9
+ * **api:** add after_date, update findAll nomenclature ([3641ac6](https://github.com/parallel-web/parallel-sdk-python/commit/3641ac619abdf3f0acd9085c515f3bed19c9bdd2))
10
+ * **api:** Update excerpt settings ([bafa464](https://github.com/parallel-web/parallel-sdk-python/commit/bafa464c3f124690387410b0d17bf8a1253e8e63))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * ensure streams are always closed ([3251033](https://github.com/parallel-web/parallel-sdk-python/commit/325103322362df0fe730362841dbc0d4b3a60c18))
16
+ * **types:** allow pyright to infer TypedDict types within SequenceNotStr ([f134f9b](https://github.com/parallel-web/parallel-sdk-python/commit/f134f9bf488bdcd80088fc7752b5d33d84fcca66))
17
+ * use async_to_httpx_files in patch method ([b147da5](https://github.com/parallel-web/parallel-sdk-python/commit/b147da50e3d4b13868908c5c40e0ddecc5489e19))
18
+
19
+
20
+ ### Chores
21
+
22
+ * add missing docstrings ([05118fc](https://github.com/parallel-web/parallel-sdk-python/commit/05118fc081e6907ac0cdde365e5ed364f49b769c))
23
+ * add Python 3.14 classifier and testing ([5588224](https://github.com/parallel-web/parallel-sdk-python/commit/558822483f60eb430a795e0ee5c6ac780c5f56c1))
24
+ * **api:** update default headers ([16949bf](https://github.com/parallel-web/parallel-sdk-python/commit/16949bfab087cf2f6e6e4f2dc3a503a4a7fa285f))
25
+ * **deps:** mypy 1.18.1 has a regression, pin to 1.17 ([e327c6e](https://github.com/parallel-web/parallel-sdk-python/commit/e327c6e2ba27b3dd565c3f36537643889b4c43e8))
26
+ * **docs:** use environment variables for authentication in code snippets ([e44bc95](https://github.com/parallel-web/parallel-sdk-python/commit/e44bc9528e5e16f243aa8dee4633730d2899c72d))
27
+ * **internal:** add `--fix` argument to lint script ([8b25ed1](https://github.com/parallel-web/parallel-sdk-python/commit/8b25ed10edef5697bce6bc74a3f628029da28d12))
28
+ * **internal:** add missing files argument to base client ([9bc7dc6](https://github.com/parallel-web/parallel-sdk-python/commit/9bc7dc653a4f75da0c5af3297170a16b1df91875))
29
+ * **internal:** codegen related update ([2eb1adc](https://github.com/parallel-web/parallel-sdk-python/commit/2eb1adc9884c03202107eb5987b6ea0717dd3a6a))
30
+ * speedup initial import ([2927603](https://github.com/parallel-web/parallel-sdk-python/commit/2927603782bc242da5b6d7622963452dd24154e7))
31
+ * update lockfile ([37bb7a6](https://github.com/parallel-web/parallel-sdk-python/commit/37bb7a6d321646946f52d37455fc5ad1a2458154))
32
+
33
+ ## 0.3.4 (2025-11-12)
34
+
35
+ Full Changelog: [v0.3.3...v0.3.4](https://github.com/parallel-web/parallel-sdk-python/compare/v0.3.3...v0.3.4)
36
+
37
+ ### Features
38
+
39
+ * **api:** FindAll sdk updates ([e07fd1e](https://github.com/parallel-web/parallel-sdk-python/commit/e07fd1e75f5562f471454d5ab4d7ecb4334f42ad))
40
+ * **api:** manual updates ([f9957bf](https://github.com/parallel-web/parallel-sdk-python/commit/f9957bf3721b8efe0138c8f8bd96a929419087a1))
41
+
42
+
43
+ ### Bug Fixes
44
+
45
+ * compat with Python 3.14 ([a63f4ee](https://github.com/parallel-web/parallel-sdk-python/commit/a63f4eeeb7d7193765d4dbcac1781e67615a5580))
46
+ * **compat:** update signatures of `model_dump` and `model_dump_json` for Pydantic v1 ([cf9de5f](https://github.com/parallel-web/parallel-sdk-python/commit/cf9de5f7a8c1f6e026c441b24aad6e5712d7845b))
47
+
48
+
49
+ ### Chores
50
+
51
+ * **package:** drop Python 3.8 support ([ba0bf24](https://github.com/parallel-web/parallel-sdk-python/commit/ba0bf24b6476e341fc497a70e6fdfb890b0923a4))
52
+
3
53
  ## 0.3.3 (2025-11-06)
4
54
 
5
55
  Full Changelog: [v0.3.2...v0.3.3](https://github.com/parallel-web/parallel-sdk-python/compare/v0.3.2...v0.3.3)
@@ -1,4 +1,4 @@
1
- Copyright 2025 Parallel
1
+ Copyright 2026 Parallel
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
4
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: parallel-web
3
- Version: 0.3.3
3
+ Version: 0.4.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
@@ -13,15 +13,15 @@ Classifier: Operating System :: Microsoft :: Windows
13
13
  Classifier: Operating System :: OS Independent
14
14
  Classifier: Operating System :: POSIX
15
15
  Classifier: Operating System :: POSIX :: Linux
16
- Classifier: Programming Language :: Python :: 3.8
17
16
  Classifier: Programming Language :: Python :: 3.9
18
17
  Classifier: Programming Language :: Python :: 3.10
19
18
  Classifier: Programming Language :: Python :: 3.11
20
19
  Classifier: Programming Language :: Python :: 3.12
21
20
  Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
22
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
23
  Classifier: Typing :: Typed
24
- Requires-Python: >=3.8
24
+ Requires-Python: >=3.9
25
25
  Requires-Dist: anyio<5,>=3.5.0
26
26
  Requires-Dist: distro<2,>=1.7.0
27
27
  Requires-Dist: httpx<1,>=0.23.0
@@ -38,7 +38,7 @@ Description-Content-Type: text/markdown
38
38
  <!-- prettier-ignore -->
39
39
  [![PyPI version](https://img.shields.io/pypi/v/parallel-web.svg?label=pypi%20(stable))](https://pypi.org/project/parallel-web/)
40
40
 
41
- The Parallel Python library provides convenient access to the Parallel REST API from any Python 3.8+
41
+ The Parallel Python library provides convenient access to the Parallel REST API from any Python 3.9+
42
42
  application. The library includes type definitions for all request params and response fields,
43
43
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
44
44
  It is strongly encouraged to use the asynchronous client for best performance.
@@ -453,7 +453,7 @@ print(parallel.__version__)
453
453
 
454
454
  ## Requirements
455
455
 
456
- Python 3.8 or higher.
456
+ Python 3.9 or higher.
457
457
 
458
458
  ## Contributing
459
459
 
@@ -3,7 +3,7 @@
3
3
  <!-- prettier-ignore -->
4
4
  [![PyPI version](https://img.shields.io/pypi/v/parallel-web.svg?label=pypi%20(stable))](https://pypi.org/project/parallel-web/)
5
5
 
6
- The Parallel Python library provides convenient access to the Parallel REST API from any Python 3.8+
6
+ The Parallel Python library provides convenient access to the Parallel REST API from any Python 3.9+
7
7
  application. The library includes type definitions for all request params and response fields,
8
8
  and offers both synchronous and asynchronous clients powered by [httpx](https://github.com/encode/httpx).
9
9
  It is strongly encouraged to use the asynchronous client for best performance.
@@ -418,7 +418,7 @@ print(parallel.__version__)
418
418
 
419
419
  ## Requirements
420
420
 
421
- Python 3.8 or higher.
421
+ Python 3.9 or higher.
422
422
 
423
423
  ## Contributing
424
424
 
@@ -102,3 +102,35 @@ Methods:
102
102
  - <code title="post /v1beta/tasks/groups/{taskgroup_id}/runs">client.beta.task_group.<a href="./src/parallel/resources/beta/task_group.py">add_runs</a>(task_group_id, \*\*<a href="src/parallel/types/beta/task_group_add_runs_params.py">params</a>) -> <a href="./src/parallel/types/beta/task_group_run_response.py">TaskGroupRunResponse</a></code>
103
103
  - <code title="get /v1beta/tasks/groups/{taskgroup_id}/events">client.beta.task_group.<a href="./src/parallel/resources/beta/task_group.py">events</a>(task_group_id, \*\*<a href="src/parallel/types/beta/task_group_events_params.py">params</a>) -> <a href="./src/parallel/types/beta/task_group_events_response.py">TaskGroupEventsResponse</a></code>
104
104
  - <code title="get /v1beta/tasks/groups/{taskgroup_id}/runs">client.beta.task_group.<a href="./src/parallel/resources/beta/task_group.py">get_runs</a>(task_group_id, \*\*<a href="src/parallel/types/beta/task_group_get_runs_params.py">params</a>) -> <a href="./src/parallel/types/beta/task_group_get_runs_response.py">TaskGroupGetRunsResponse</a></code>
105
+
106
+ ## FindAll
107
+
108
+ Types:
109
+
110
+ ```python
111
+ from parallel.types.beta import (
112
+ FindAllCandidateMatchStatusEvent,
113
+ FindAllEnrichInput,
114
+ FindAllExtendInput,
115
+ FindAllRun,
116
+ FindAllRunInput,
117
+ FindAllRunResult,
118
+ FindAllRunStatusEvent,
119
+ FindAllSchema,
120
+ FindAllSchemaUpdatedEvent,
121
+ IngestInput,
122
+ FindAllEventsResponse,
123
+ )
124
+ ```
125
+
126
+ Methods:
127
+
128
+ - <code title="post /v1beta/findall/runs">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">create</a>(\*\*<a href="src/parallel/types/beta/findall_create_params.py">params</a>) -> <a href="./src/parallel/types/beta/findall_run.py">FindAllRun</a></code>
129
+ - <code title="get /v1beta/findall/runs/{findall_id}">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">retrieve</a>(findall_id) -> <a href="./src/parallel/types/beta/findall_run.py">FindAllRun</a></code>
130
+ - <code title="post /v1beta/findall/runs/{findall_id}/cancel">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">cancel</a>(findall_id) -> object</code>
131
+ - <code title="post /v1beta/findall/runs/{findall_id}/enrich">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">enrich</a>(findall_id, \*\*<a href="src/parallel/types/beta/findall_enrich_params.py">params</a>) -> <a href="./src/parallel/types/beta/findall_schema.py">FindAllSchema</a></code>
132
+ - <code title="get /v1beta/findall/runs/{findall_id}/events">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">events</a>(findall_id, \*\*<a href="src/parallel/types/beta/findall_events_params.py">params</a>) -> <a href="./src/parallel/types/beta/findall_events_response.py">FindAllEventsResponse</a></code>
133
+ - <code title="post /v1beta/findall/runs/{findall_id}/extend">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">extend</a>(findall_id, \*\*<a href="src/parallel/types/beta/findall_extend_params.py">params</a>) -> <a href="./src/parallel/types/beta/findall_schema.py">FindAllSchema</a></code>
134
+ - <code title="post /v1beta/findall/ingest">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">ingest</a>(\*\*<a href="src/parallel/types/beta/findall_ingest_params.py">params</a>) -> <a href="./src/parallel/types/beta/findall_schema.py">FindAllSchema</a></code>
135
+ - <code title="get /v1beta/findall/runs/{findall_id}/result">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">result</a>(findall_id) -> <a href="./src/parallel/types/beta/findall_run_result.py">FindAllRunResult</a></code>
136
+ - <code title="get /v1beta/findall/runs/{findall_id}/schema">client.beta.findall.<a href="./src/parallel/resources/beta/findall.py">schema</a>(findall_id) -> <a href="./src/parallel/types/beta/findall_schema.py">FindAllSchema</a></code>
@@ -1,30 +1,32 @@
1
1
  [project]
2
2
  name = "parallel-web"
3
- version = "0.3.3"
3
+ version = "0.4.0"
4
4
  description = "The official Python library for the Parallel API"
5
5
  dynamic = ["readme"]
6
6
  license = "MIT"
7
7
  authors = [
8
8
  { name = "Parallel", email = "support@parallel.ai" },
9
9
  ]
10
+
10
11
  dependencies = [
11
- "httpx>=0.23.0, <1",
12
- "pydantic>=1.9.0, <3",
13
- "typing-extensions>=4.10, <5",
14
- "anyio>=3.5.0, <5",
15
- "distro>=1.7.0, <2",
16
- "sniffio",
12
+ "httpx>=0.23.0, <1",
13
+ "pydantic>=1.9.0, <3",
14
+ "typing-extensions>=4.10, <5",
15
+ "anyio>=3.5.0, <5",
16
+ "distro>=1.7.0, <2",
17
+ "sniffio",
17
18
  ]
18
- requires-python = ">= 3.8"
19
+
20
+ requires-python = ">= 3.9"
19
21
  classifiers = [
20
22
  "Typing :: Typed",
21
23
  "Intended Audience :: Developers",
22
- "Programming Language :: Python :: 3.8",
23
24
  "Programming Language :: Python :: 3.9",
24
25
  "Programming Language :: Python :: 3.10",
25
26
  "Programming Language :: Python :: 3.11",
26
27
  "Programming Language :: Python :: 3.12",
27
28
  "Programming Language :: Python :: 3.13",
29
+ "Programming Language :: Python :: 3.14",
28
30
  "Operating System :: OS Independent",
29
31
  "Operating System :: POSIX",
30
32
  "Operating System :: MacOS",
@@ -46,7 +48,7 @@ managed = true
46
48
  # version pins are in requirements-dev.lock
47
49
  dev-dependencies = [
48
50
  "pyright==1.1.399",
49
- "mypy",
51
+ "mypy==1.17",
50
52
  "respx",
51
53
  "pytest",
52
54
  "pytest-asyncio",
@@ -142,7 +144,7 @@ filterwarnings = [
142
144
  # there are a couple of flags that are still disabled by
143
145
  # default in strict mode as they are experimental and niche.
144
146
  typeCheckingMode = "strict"
145
- pythonVersion = "3.8"
147
+ pythonVersion = "3.9"
146
148
 
147
149
  exclude = [
148
150
  "_dev",
@@ -12,45 +12,50 @@
12
12
  -e file:.
13
13
  aiohappyeyeballs==2.6.1
14
14
  # via aiohttp
15
- aiohttp==3.12.8
15
+ aiohttp==3.13.2
16
16
  # via httpx-aiohttp
17
17
  # via parallel-web
18
- aiosignal==1.3.2
18
+ aiosignal==1.4.0
19
19
  # via aiohttp
20
- annotated-types==0.6.0
20
+ annotated-types==0.7.0
21
21
  # via pydantic
22
- anyio==4.4.0
22
+ anyio==4.12.0
23
23
  # via httpx
24
24
  # via parallel-web
25
- argcomplete==3.1.2
25
+ argcomplete==3.6.3
26
26
  # via nox
27
27
  async-timeout==5.0.1
28
28
  # via aiohttp
29
- attrs==25.3.0
29
+ attrs==25.4.0
30
30
  # via aiohttp
31
- certifi==2023.7.22
31
+ # via nox
32
+ backports-asyncio-runner==1.2.0
33
+ # via pytest-asyncio
34
+ certifi==2025.11.12
32
35
  # via httpcore
33
36
  # via httpx
34
37
  colorama==0.4.6
35
38
  # via griffe
36
- colorlog==6.7.0
39
+ colorlog==6.10.1
40
+ # via nox
41
+ dependency-groups==1.3.1
37
42
  # via nox
38
- dirty-equals==0.6.0
39
- distlib==0.3.7
43
+ dirty-equals==0.11
44
+ distlib==0.4.0
40
45
  # via virtualenv
41
- distro==1.8.0
46
+ distro==1.9.0
42
47
  # via parallel-web
43
- exceptiongroup==1.2.2
48
+ exceptiongroup==1.3.1
44
49
  # via anyio
45
50
  # via pytest
46
- execnet==2.1.1
51
+ execnet==2.1.2
47
52
  # via pytest-xdist
48
- filelock==3.12.4
53
+ filelock==3.19.1
49
54
  # via virtualenv
50
- frozenlist==1.6.2
55
+ frozenlist==1.8.0
51
56
  # via aiohttp
52
57
  # via aiosignal
53
- griffe==1.13.0
58
+ griffe==1.14.0
54
59
  h11==0.16.0
55
60
  # via httpcore
56
61
  httpcore==1.0.9
@@ -61,80 +66,87 @@ httpx==0.28.1
61
66
  # via respx
62
67
  httpx-aiohttp==0.1.9
63
68
  # via parallel-web
64
- idna==3.4
69
+ humanize==4.13.0
70
+ # via nox
71
+ idna==3.11
65
72
  # via anyio
66
73
  # via httpx
67
74
  # via yarl
68
- importlib-metadata==7.0.0
69
- iniconfig==2.0.0
75
+ importlib-metadata==8.7.0
76
+ iniconfig==2.1.0
70
77
  # via pytest
71
78
  markdown-it-py==3.0.0
72
79
  # via rich
73
80
  mdurl==0.1.2
74
81
  # via markdown-it-py
75
- multidict==6.4.4
82
+ multidict==6.7.0
76
83
  # via aiohttp
77
84
  # via yarl
78
- mypy==1.14.1
79
- mypy-extensions==1.0.0
85
+ mypy==1.17.0
86
+ mypy-extensions==1.1.0
80
87
  # via mypy
81
- nodeenv==1.8.0
88
+ nodeenv==1.9.1
82
89
  # via pyright
83
- nox==2023.4.22
84
- packaging==23.2
90
+ nox==2025.11.12
91
+ packaging==25.0
92
+ # via dependency-groups
85
93
  # via nox
86
94
  # via pytest
87
- platformdirs==3.11.0
95
+ pathspec==0.12.1
96
+ # via mypy
97
+ platformdirs==4.4.0
88
98
  # via virtualenv
89
- pluggy==1.5.0
99
+ pluggy==1.6.0
90
100
  # via pytest
91
- propcache==0.3.1
101
+ propcache==0.4.1
92
102
  # via aiohttp
93
103
  # via yarl
94
- pydantic==2.11.9
104
+ pydantic==2.12.5
95
105
  # via parallel-web
96
- pydantic-core==2.33.2
106
+ pydantic-core==2.41.5
97
107
  # via pydantic
98
- pygments==2.18.0
108
+ pygments==2.19.2
109
+ # via pytest
99
110
  # via rich
100
111
  pyright==1.1.399
101
- pytest==8.3.3
112
+ pytest==8.4.2
102
113
  # via pytest-asyncio
103
114
  # via pytest-xdist
104
- pytest-asyncio==0.24.0
105
- pytest-xdist==3.7.0
106
- python-dateutil==2.8.2
115
+ pytest-asyncio==1.2.0
116
+ pytest-xdist==3.8.0
117
+ python-dateutil==2.9.0.post0
107
118
  # via time-machine
108
- pytz==2023.3.post1
109
- # via dirty-equals
110
119
  respx==0.22.0
111
- rich==13.7.1
112
- ruff==0.9.4
113
- setuptools==68.2.2
114
- # via nodeenv
115
- six==1.16.0
120
+ rich==14.2.0
121
+ ruff==0.14.7
122
+ six==1.17.0
116
123
  # via python-dateutil
117
- sniffio==1.3.0
118
- # via anyio
124
+ sniffio==1.3.1
119
125
  # via parallel-web
120
- time-machine==2.9.0
121
- tomli==2.0.2
126
+ time-machine==2.19.0
127
+ tomli==2.3.0
128
+ # via dependency-groups
122
129
  # via mypy
130
+ # via nox
123
131
  # via pytest
124
- typing-extensions==4.12.2
132
+ typing-extensions==4.15.0
133
+ # via aiosignal
125
134
  # via anyio
135
+ # via exceptiongroup
126
136
  # via multidict
127
137
  # via mypy
128
138
  # via parallel-web
129
139
  # via pydantic
130
140
  # via pydantic-core
131
141
  # via pyright
142
+ # via pytest-asyncio
132
143
  # via typing-inspection
133
- typing-inspection==0.4.1
144
+ # via virtualenv
145
+ typing-inspection==0.4.2
134
146
  # via pydantic
135
- virtualenv==20.24.5
147
+ virtualenv==20.35.4
136
148
  # via nox
137
- yarl==1.20.0
149
+ yarl==1.22.0
138
150
  # via aiohttp
139
- zipp==3.17.0
151
+ zipp==3.23.0
140
152
  # via importlib-metadata
@@ -12,28 +12,28 @@
12
12
  -e file:.
13
13
  aiohappyeyeballs==2.6.1
14
14
  # via aiohttp
15
- aiohttp==3.12.8
15
+ aiohttp==3.13.2
16
16
  # via httpx-aiohttp
17
17
  # via parallel-web
18
- aiosignal==1.3.2
18
+ aiosignal==1.4.0
19
19
  # via aiohttp
20
- annotated-types==0.6.0
20
+ annotated-types==0.7.0
21
21
  # via pydantic
22
- anyio==4.4.0
22
+ anyio==4.12.0
23
23
  # via httpx
24
24
  # via parallel-web
25
25
  async-timeout==5.0.1
26
26
  # via aiohttp
27
- attrs==25.3.0
27
+ attrs==25.4.0
28
28
  # via aiohttp
29
- certifi==2023.7.22
29
+ certifi==2025.11.12
30
30
  # via httpcore
31
31
  # via httpx
32
- distro==1.8.0
32
+ distro==1.9.0
33
33
  # via parallel-web
34
- exceptiongroup==1.2.2
34
+ exceptiongroup==1.3.1
35
35
  # via anyio
36
- frozenlist==1.6.2
36
+ frozenlist==1.8.0
37
37
  # via aiohttp
38
38
  # via aiosignal
39
39
  h11==0.16.0
@@ -45,31 +45,32 @@ httpx==0.28.1
45
45
  # via parallel-web
46
46
  httpx-aiohttp==0.1.9
47
47
  # via parallel-web
48
- idna==3.4
48
+ idna==3.11
49
49
  # via anyio
50
50
  # via httpx
51
51
  # via yarl
52
- multidict==6.4.4
52
+ multidict==6.7.0
53
53
  # via aiohttp
54
54
  # via yarl
55
- propcache==0.3.1
55
+ propcache==0.4.1
56
56
  # via aiohttp
57
57
  # via yarl
58
- pydantic==2.11.9
58
+ pydantic==2.12.5
59
59
  # via parallel-web
60
- pydantic-core==2.33.2
60
+ pydantic-core==2.41.5
61
61
  # via pydantic
62
- sniffio==1.3.0
63
- # via anyio
62
+ sniffio==1.3.1
64
63
  # via parallel-web
65
- typing-extensions==4.12.2
64
+ typing-extensions==4.15.0
65
+ # via aiosignal
66
66
  # via anyio
67
+ # via exceptiongroup
67
68
  # via multidict
68
69
  # via parallel-web
69
70
  # via pydantic
70
71
  # via pydantic-core
71
72
  # via typing-inspection
72
- typing-inspection==0.4.1
73
+ typing-inspection==0.4.2
73
74
  # via pydantic
74
- yarl==1.20.0
75
+ yarl==1.22.0
75
76
  # via aiohttp
@@ -1247,9 +1247,12 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
1247
1247
  *,
1248
1248
  cast_to: Type[ResponseT],
1249
1249
  body: Body | None = None,
1250
+ files: RequestFiles | None = None,
1250
1251
  options: RequestOptions = {},
1251
1252
  ) -> ResponseT:
1252
- opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options)
1253
+ opts = FinalRequestOptions.construct(
1254
+ method="patch", url=path, json_data=body, files=to_httpx_files(files), **options
1255
+ )
1253
1256
  return self.request(cast_to, opts)
1254
1257
 
1255
1258
  def put(
@@ -1767,9 +1770,12 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
1767
1770
  *,
1768
1771
  cast_to: Type[ResponseT],
1769
1772
  body: Body | None = None,
1773
+ files: RequestFiles | None = None,
1770
1774
  options: RequestOptions = {},
1771
1775
  ) -> ResponseT:
1772
- opts = FinalRequestOptions.construct(method="patch", url=path, json_data=body, **options)
1776
+ opts = FinalRequestOptions.construct(
1777
+ method="patch", url=path, json_data=body, files=await async_to_httpx_files(files), **options
1778
+ )
1773
1779
  return await self.request(cast_to, opts)
1774
1780
 
1775
1781
  async def put(