nimble_python 0.16.0__tar.gz → 0.18.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.
- nimble_python-0.18.0/.release-please-manifest.json +3 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/CHANGELOG.md +49 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/PKG-INFO +1 -1
- {nimble_python-0.16.0 → nimble_python-0.18.0}/api.md +39 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/pyproject.toml +2 -2
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_base_client.py +4 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_client.py +187 -11
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_files.py +54 -4
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_qs.py +2 -6
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_types.py +3 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/__init__.py +0 -1
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_utils.py +37 -25
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_version.py +1 -1
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/resources/__init__.py +42 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/resources/agent.py +35 -24
- nimble_python-0.18.0/src/nimble_python/resources/domain_knowledge.py +195 -0
- nimble_python-0.18.0/src/nimble_python/resources/media.py +336 -0
- nimble_python-0.18.0/src/nimble_python/resources/serp.py +624 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/__init__.py +12 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_generate_params.py +19 -4
- nimble_python-0.18.0/src/nimble_python/types/agent_generate_response.py +68 -0
- nimble_python-0.18.0/src/nimble_python/types/agent_get_generation_response.py +68 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_get_response.py +5 -3
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_run_async_params.py +1 -1
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_run_batch_params.py +2 -2
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_run_params.py +1 -1
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_run_response.py +3 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/client_extract_async_params.py +9 -2
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/client_extract_batch_params.py +18 -4
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/client_extract_params.py +9 -2
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/crawl_run_params.py +9 -2
- nimble_python-0.18.0/src/nimble_python/types/domain_knowledge_get_driver_params.py +15 -0
- nimble_python-0.18.0/src/nimble_python/types/domain_knowledge_get_driver_response.py +27 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/extract_response.py +3 -0
- nimble_python-0.18.0/src/nimble_python/types/media_run_async_params.py +44 -0
- nimble_python-0.18.0/src/nimble_python/types/media_run_async_response.py +67 -0
- nimble_python-0.18.0/src/nimble_python/types/media_run_params.py +29 -0
- nimble_python-0.18.0/src/nimble_python/types/media_run_response.py +339 -0
- nimble_python-0.18.0/src/nimble_python/types/serp_run_async_params.py +73 -0
- nimble_python-0.18.0/src/nimble_python/types/serp_run_async_response.py +67 -0
- nimble_python-0.18.0/src/nimble_python/types/serp_run_batch_params.py +155 -0
- nimble_python-0.18.0/src/nimble_python/types/serp_run_batch_response.py +68 -0
- nimble_python-0.18.0/src/nimble_python/types/serp_run_params.py +58 -0
- nimble_python-0.18.0/src/nimble_python/types/serp_run_response.py +339 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/api_resources/test_agent.py +66 -52
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/api_resources/test_client.py +24 -152
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/api_resources/test_crawl.py +6 -38
- nimble_python-0.18.0/tests/api_resources/test_domain_knowledge.py +98 -0
- nimble_python-0.18.0/tests/api_resources/test_media.py +234 -0
- nimble_python-0.18.0/tests/api_resources/test_serp.py +404 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_client.py +48 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_extract_files.py +28 -1
- nimble_python-0.18.0/tests/test_files.py +148 -0
- nimble_python-0.16.0/.release-please-manifest.json +0 -3
- nimble_python-0.16.0/src/nimble_python/types/agent_generate_response.py +0 -32
- nimble_python-0.16.0/src/nimble_python/types/agent_get_generation_response.py +0 -32
- nimble_python-0.16.0/tests/test_deepcopy.py +0 -58
- nimble_python-0.16.0/tests/test_files.py +0 -51
- {nimble_python-0.16.0 → nimble_python-0.18.0}/.gitignore +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/CONTRIBUTING.md +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/LICENSE +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/README.md +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/SECURITY.md +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/bin/check-release-environment +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/bin/publish-pypi +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/examples/.keep +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/release-please-config.json +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/requirements-dev.lock +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/__init__.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_compat.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_constants.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_exceptions.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_models.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_resource.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_streaming.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_compat.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_datetime_parse.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_json.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_logs.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_path.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_proxy.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_reflection.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_resources_proxy.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_streams.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_sync.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_transform.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/_utils/_typing.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/lib/.keep +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/py.typed +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/resources/batches.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/resources/crawl.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/resources/tasks.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_list_params.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_list_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_publish_params.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_publish_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_run_async_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/agent_run_batch_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/batch_get_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/batch_progress_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/client_map_params.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/client_search_params.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/crawl_list_params.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/crawl_list_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/crawl_run_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/crawl_status_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/crawl_terminate_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/extract_async_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/extract_batch_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/map_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/search_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/__init__.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/auto_scroll_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/click_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/eval_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/fetch_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/fill_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/get_cookies_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/goto_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/press_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/screenshot_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/scroll_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/wait_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/wait_for_element_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared/wait_for_navigation_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/__init__.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/auto_scroll_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/click_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/eval_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/fetch_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/fill_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/get_cookies_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/goto_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/press_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/screenshot_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/scroll_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/wait_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/wait_for_element_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/shared_params/wait_for_navigation_action.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/task_get_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/task_list_params.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/task_list_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimble_python/types/task_results_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/src/nimbleway/lib/.keep +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/__init__.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/api_resources/__init__.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/api_resources/test_batches.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/api_resources/test_tasks.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/conftest.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/sample_file.txt +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_models.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_qs.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_required_args.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_response.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_streaming.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_transform.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_utils/test_datetime_parse.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_utils/test_json.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_utils/test_path.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_utils/test_proxy.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/test_utils/test_typing.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/tests/utils.py +0 -0
- {nimble_python-0.16.0 → nimble_python-0.18.0}/uv.lock +0 -0
|
@@ -1,5 +1,54 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.18.0 (2026-05-10)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.17.0...v0.18.0](https://github.com/Nimbleway/nimble-python/compare/v0.17.0...v0.18.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** Add media, serp and domain_knowledge ([d1e33f1](https://github.com/Nimbleway/nimble-python/commit/d1e33f1e44507ba4a817532d58e25f109c58e776))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
* **client:** add missing f-string prefix in file type error message ([972cbcd](https://github.com/Nimbleway/nimble-python/commit/972cbcd40b4e4091a7364288d3d0b6033983826c))
|
|
15
|
+
|
|
16
|
+
## 0.17.0 (2026-05-06)
|
|
17
|
+
|
|
18
|
+
Full Changelog: [v0.16.0...v0.17.0](https://github.com/Nimbleway/nimble-python/compare/v0.16.0...v0.17.0)
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* **api:** api update ([d859e62](https://github.com/Nimbleway/nimble-python/commit/d859e62068214303e9430d093a78028b25b854a2))
|
|
23
|
+
* **api:** api update ([da41c63](https://github.com/Nimbleway/nimble-python/commit/da41c63037e82fde7af3a3e0da8cb3782a175bb8))
|
|
24
|
+
* **api:** api update ([3460f38](https://github.com/Nimbleway/nimble-python/commit/3460f38ecdf277bbebf2fdc7104015d4a7fee810))
|
|
25
|
+
* **api:** api update ([0809fc4](https://github.com/Nimbleway/nimble-python/commit/0809fc473463e746e5b1af30cfcadbfc87db7a5e))
|
|
26
|
+
* **client:** add client_source parameter, update press_action types ([346cfe7](https://github.com/Nimbleway/nimble-python/commit/346cfe70ff7a237c9f0bd52ae699d2012cf5cec7))
|
|
27
|
+
* support setting headers via env ([74b98e0](https://github.com/Nimbleway/nimble-python/commit/74b98e0af4a71cedc34d53f4b33efd6126b91439))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### Bug Fixes
|
|
31
|
+
|
|
32
|
+
* **client:** preserve hardcoded query params when merging with user params ([c07dd33](https://github.com/Nimbleway/nimble-python/commit/c07dd33a98b0dc7a365153ebe13aa8e4f41035fc))
|
|
33
|
+
* ensure file data are only sent as 1 parameter ([58d7d07](https://github.com/Nimbleway/nimble-python/commit/58d7d07475836f0d4ce1c4f68bba7e3631e68d34))
|
|
34
|
+
* use correct field name format for multipart file arrays ([d33d6b7](https://github.com/Nimbleway/nimble-python/commit/d33d6b7599d29d0508fa14ba03a8e0eb7c756aad))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
### Performance Improvements
|
|
38
|
+
|
|
39
|
+
* **client:** optimize file structure copying in multipart requests ([77a1d14](https://github.com/Nimbleway/nimble-python/commit/77a1d14ebc143548bcca089d281babc094e01a7e))
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Chores
|
|
43
|
+
|
|
44
|
+
* **internal:** more robust bootstrap script ([ea52394](https://github.com/Nimbleway/nimble-python/commit/ea52394a5adbf1ef83a2d0a5b378d7feb0e0a5f8))
|
|
45
|
+
* **internal:** reformat pyproject.toml ([7d5cec6](https://github.com/Nimbleway/nimble-python/commit/7d5cec6274e237ab69a2b32e79f72a9baad78fff))
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Documentation
|
|
49
|
+
|
|
50
|
+
* improve examples ([a86f0ef](https://github.com/Nimbleway/nimble-python/commit/a86f0ef01987c3063ab465d4ab61bd04229a4911))
|
|
51
|
+
|
|
3
52
|
## 0.16.0 (2026-03-30)
|
|
4
53
|
|
|
5
54
|
Full Changelog: [v0.15.0...v0.16.0](https://github.com/Nimbleway/nimble-python/compare/v0.15.0...v0.16.0)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: nimble_python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.18.0
|
|
4
4
|
Summary: The official Python library for the nimble API
|
|
5
5
|
Project-URL: Homepage, https://github.com/Nimbleway/nimble-python
|
|
6
6
|
Project-URL: Repository, https://github.com/Nimbleway/nimble-python
|
|
@@ -115,3 +115,42 @@ Methods:
|
|
|
115
115
|
- <code title="get /v1/batches">client.batches.<a href="./src/nimble_python/resources/batches.py">list</a>() -> None</code>
|
|
116
116
|
- <code title="get /v1/batches/{batch_id}">client.batches.<a href="./src/nimble_python/resources/batches.py">get</a>(batch_id) -> <a href="./src/nimble_python/types/batch_get_response.py">BatchGetResponse</a></code>
|
|
117
117
|
- <code title="get /v1/batches/{batch_id}/progress">client.batches.<a href="./src/nimble_python/resources/batches.py">progress</a>(batch_id) -> <a href="./src/nimble_python/types/batch_progress_response.py">BatchProgressResponse</a></code>
|
|
118
|
+
|
|
119
|
+
# DomainKnowledge
|
|
120
|
+
|
|
121
|
+
Types:
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
from nimble_python.types import DomainKnowledgeGetDriverResponse
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Methods:
|
|
128
|
+
|
|
129
|
+
- <code title="get /v1/domain-knowledge/driver">client.domain_knowledge.<a href="./src/nimble_python/resources/domain_knowledge.py">get_driver</a>(\*\*<a href="src/nimble_python/types/domain_knowledge_get_driver_params.py">params</a>) -> <a href="./src/nimble_python/types/domain_knowledge_get_driver_response.py">DomainKnowledgeGetDriverResponse</a></code>
|
|
130
|
+
|
|
131
|
+
# Media
|
|
132
|
+
|
|
133
|
+
Types:
|
|
134
|
+
|
|
135
|
+
```python
|
|
136
|
+
from nimble_python.types import MediaRunResponse, MediaRunAsyncResponse
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Methods:
|
|
140
|
+
|
|
141
|
+
- <code title="post /v1/media">client.media.<a href="./src/nimble_python/resources/media.py">run</a>(\*\*<a href="src/nimble_python/types/media_run_params.py">params</a>) -> <a href="./src/nimble_python/types/media_run_response.py">MediaRunResponse</a></code>
|
|
142
|
+
- <code title="post /v1/media/async">client.media.<a href="./src/nimble_python/resources/media.py">run_async</a>(\*\*<a href="src/nimble_python/types/media_run_async_params.py">params</a>) -> <a href="./src/nimble_python/types/media_run_async_response.py">MediaRunAsyncResponse</a></code>
|
|
143
|
+
|
|
144
|
+
# Serp
|
|
145
|
+
|
|
146
|
+
Types:
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
from nimble_python.types import SerpRunResponse, SerpRunAsyncResponse, SerpRunBatchResponse
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Methods:
|
|
153
|
+
|
|
154
|
+
- <code title="post /v1/serp">client.serp.<a href="./src/nimble_python/resources/serp.py">run</a>(\*\*<a href="src/nimble_python/types/serp_run_params.py">params</a>) -> <a href="./src/nimble_python/types/serp_run_response.py">SerpRunResponse</a></code>
|
|
155
|
+
- <code title="post /v1/serp/async">client.serp.<a href="./src/nimble_python/resources/serp.py">run_async</a>(\*\*<a href="src/nimble_python/types/serp_run_async_params.py">params</a>) -> <a href="./src/nimble_python/types/serp_run_async_response.py">SerpRunAsyncResponse</a></code>
|
|
156
|
+
- <code title="post /v1/serp/batch">client.serp.<a href="./src/nimble_python/resources/serp.py">run_batch</a>(\*\*<a href="src/nimble_python/types/serp_run_batch_params.py">params</a>) -> <a href="./src/nimble_python/types/serp_run_batch_response.py">SerpRunBatchResponse</a></code>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "nimble_python"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.18.0"
|
|
4
4
|
description = "The official Python library for the nimble API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -154,7 +154,7 @@ show_error_codes = true
|
|
|
154
154
|
#
|
|
155
155
|
# We also exclude our `tests` as mypy doesn't always infer
|
|
156
156
|
# types correctly and Pyright will still catch any type errors.
|
|
157
|
-
exclude = [
|
|
157
|
+
exclude = ["src/nimble_python/_files.py", "_dev/.*.py", "tests/.*"]
|
|
158
158
|
|
|
159
159
|
strict_equality = true
|
|
160
160
|
implicit_reexport = true
|
|
@@ -540,6 +540,10 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
540
540
|
files = cast(HttpxRequestFiles, ForceMultipartDict())
|
|
541
541
|
|
|
542
542
|
prepared_url = self._prepare_url(options.url)
|
|
543
|
+
# preserve hard-coded query params from the url
|
|
544
|
+
if params and prepared_url.query:
|
|
545
|
+
params = {**dict(prepared_url.params.items()), **params}
|
|
546
|
+
prepared_url = prepared_url.copy_with(raw_path=prepared_url.raw_path.split(b"?", 1)[0])
|
|
543
547
|
if "_" in prepared_url.host:
|
|
544
548
|
# work around https://github.com/encode/httpx/discussions/2880
|
|
545
549
|
kwargs["extensions"] = {"sni_hostname": prepared_url.host.replace("_", "-")}
|
|
@@ -33,6 +33,7 @@ from ._types import (
|
|
|
33
33
|
)
|
|
34
34
|
from ._utils import (
|
|
35
35
|
is_given,
|
|
36
|
+
is_mapping_t,
|
|
36
37
|
maybe_transform,
|
|
37
38
|
get_async_library,
|
|
38
39
|
async_maybe_transform,
|
|
@@ -60,11 +61,14 @@ from .types.extract_async_response import ExtractAsyncResponse
|
|
|
60
61
|
from .types.extract_batch_response import ExtractBatchResponse
|
|
61
62
|
|
|
62
63
|
if TYPE_CHECKING:
|
|
63
|
-
from .resources import agent, crawl, tasks, batches
|
|
64
|
+
from .resources import serp, agent, crawl, media, tasks, batches, domain_knowledge
|
|
65
|
+
from .resources.serp import SerpResource, AsyncSerpResource
|
|
64
66
|
from .resources.agent import AgentResource, AsyncAgentResource
|
|
65
67
|
from .resources.crawl import CrawlResource, AsyncCrawlResource
|
|
68
|
+
from .resources.media import MediaResource, AsyncMediaResource
|
|
66
69
|
from .resources.tasks import TasksResource, AsyncTasksResource
|
|
67
70
|
from .resources.batches import BatchesResource, AsyncBatchesResource
|
|
71
|
+
from .resources.domain_knowledge import DomainKnowledgeResource, AsyncDomainKnowledgeResource
|
|
68
72
|
|
|
69
73
|
__all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Nimble", "AsyncNimble", "Client", "AsyncClient"]
|
|
70
74
|
|
|
@@ -72,11 +76,13 @@ __all__ = ["Timeout", "Transport", "ProxiesTypes", "RequestOptions", "Nimble", "
|
|
|
72
76
|
class Nimble(SyncAPIClient):
|
|
73
77
|
# client options
|
|
74
78
|
api_key: str | None
|
|
79
|
+
client_source: str | None
|
|
75
80
|
|
|
76
81
|
def __init__(
|
|
77
82
|
self,
|
|
78
83
|
*,
|
|
79
84
|
api_key: str | None = None,
|
|
85
|
+
client_source: str | None = None,
|
|
80
86
|
base_url: str | httpx.URL | None = None,
|
|
81
87
|
timeout: float | Timeout | None | NotGiven = not_given,
|
|
82
88
|
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
@@ -98,17 +104,32 @@ class Nimble(SyncAPIClient):
|
|
|
98
104
|
) -> None:
|
|
99
105
|
"""Construct a new synchronous Nimble client instance.
|
|
100
106
|
|
|
101
|
-
This automatically infers the
|
|
107
|
+
This automatically infers the following arguments from their corresponding environment variables if they are not provided:
|
|
108
|
+
- `api_key` from `NIMBLE_API_KEY`
|
|
109
|
+
- `client_source` from `CLIENT_SOURCE`
|
|
102
110
|
"""
|
|
103
111
|
if api_key is None:
|
|
104
112
|
api_key = os.environ.get("NIMBLE_API_KEY")
|
|
105
113
|
self.api_key = api_key
|
|
106
114
|
|
|
115
|
+
if client_source is None:
|
|
116
|
+
client_source = os.environ.get("CLIENT_SOURCE") or "sdk"
|
|
117
|
+
self.client_source = client_source
|
|
118
|
+
|
|
107
119
|
if base_url is None:
|
|
108
120
|
base_url = os.environ.get("NIMBLE_BASE_URL")
|
|
109
121
|
if base_url is None:
|
|
110
122
|
base_url = f"https://sdk.nimbleway.com"
|
|
111
123
|
|
|
124
|
+
custom_headers_env = os.environ.get("NIMBLE_CUSTOM_HEADERS")
|
|
125
|
+
if custom_headers_env is not None:
|
|
126
|
+
parsed: dict[str, str] = {}
|
|
127
|
+
for line in custom_headers_env.split("\n"):
|
|
128
|
+
colon = line.find(":")
|
|
129
|
+
if colon >= 0:
|
|
130
|
+
parsed[line[:colon].strip()] = line[colon + 1 :].strip()
|
|
131
|
+
default_headers = {**parsed, **(default_headers if is_mapping_t(default_headers) else {})}
|
|
132
|
+
|
|
112
133
|
super().__init__(
|
|
113
134
|
version=__version__,
|
|
114
135
|
base_url=base_url,
|
|
@@ -144,6 +165,24 @@ class Nimble(SyncAPIClient):
|
|
|
144
165
|
|
|
145
166
|
return BatchesResource(self)
|
|
146
167
|
|
|
168
|
+
@cached_property
|
|
169
|
+
def domain_knowledge(self) -> DomainKnowledgeResource:
|
|
170
|
+
from .resources.domain_knowledge import DomainKnowledgeResource
|
|
171
|
+
|
|
172
|
+
return DomainKnowledgeResource(self)
|
|
173
|
+
|
|
174
|
+
@cached_property
|
|
175
|
+
def media(self) -> MediaResource:
|
|
176
|
+
from .resources.media import MediaResource
|
|
177
|
+
|
|
178
|
+
return MediaResource(self)
|
|
179
|
+
|
|
180
|
+
@cached_property
|
|
181
|
+
def serp(self) -> SerpResource:
|
|
182
|
+
from .resources.serp import SerpResource
|
|
183
|
+
|
|
184
|
+
return SerpResource(self)
|
|
185
|
+
|
|
147
186
|
@cached_property
|
|
148
187
|
def with_raw_response(self) -> NimbleWithRawResponse:
|
|
149
188
|
return NimbleWithRawResponse(self)
|
|
@@ -171,6 +210,7 @@ class Nimble(SyncAPIClient):
|
|
|
171
210
|
return {
|
|
172
211
|
**super().default_headers,
|
|
173
212
|
"X-Stainless-Async": "false",
|
|
213
|
+
"X-Client-Source": self.client_source if self.client_source is not None else Omit(),
|
|
174
214
|
**self._custom_headers,
|
|
175
215
|
}
|
|
176
216
|
|
|
@@ -187,6 +227,7 @@ class Nimble(SyncAPIClient):
|
|
|
187
227
|
self,
|
|
188
228
|
*,
|
|
189
229
|
api_key: str | None = None,
|
|
230
|
+
client_source: str | None = None,
|
|
190
231
|
base_url: str | httpx.URL | None = None,
|
|
191
232
|
timeout: float | Timeout | None | NotGiven = not_given,
|
|
192
233
|
http_client: httpx.Client | None = None,
|
|
@@ -221,6 +262,7 @@ class Nimble(SyncAPIClient):
|
|
|
221
262
|
http_client = http_client or self._client
|
|
222
263
|
return self.__class__(
|
|
223
264
|
api_key=api_key or self.api_key,
|
|
265
|
+
client_source=client_source or self.client_source,
|
|
224
266
|
base_url=base_url or self.base_url,
|
|
225
267
|
timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
|
|
226
268
|
http_client=http_client,
|
|
@@ -498,9 +540,9 @@ class Nimble(SyncAPIClient):
|
|
|
498
540
|
]
|
|
499
541
|
| Omit = omit,
|
|
500
542
|
device: Literal["desktop", "mobile", "tablet"] | Omit = omit,
|
|
501
|
-
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro"] | Omit = omit,
|
|
543
|
+
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro", "media-vx6"] | Omit = omit,
|
|
502
544
|
expected_status_codes: Iterable[int] | Omit = omit,
|
|
503
|
-
formats: List[Literal["html", "markdown", "screenshot", "headers"]] | Omit = omit,
|
|
545
|
+
formats: List[Literal["html", "markdown", "screenshot", "headers", "links"]] | Omit = omit,
|
|
504
546
|
headers: Dict[str, Union[str, SequenceNotStr[str], None]] | Omit = omit,
|
|
505
547
|
http2: bool | Omit = omit,
|
|
506
548
|
is_xhr: bool | Omit = omit,
|
|
@@ -1040,6 +1082,7 @@ class Nimble(SyncAPIClient):
|
|
|
1040
1082
|
"auto",
|
|
1041
1083
|
]
|
|
1042
1084
|
| Omit = omit,
|
|
1085
|
+
markdown_backend: Literal["full_page", "main_content"] | Omit = omit,
|
|
1043
1086
|
method: Literal["GET", "POST", "PUT", "PATCH", "DELETE"] | Omit = omit,
|
|
1044
1087
|
network_capture: Iterable[client_extract_params.NetworkCapture] | Omit = omit,
|
|
1045
1088
|
os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit,
|
|
@@ -1154,6 +1197,10 @@ class Nimble(SyncAPIClient):
|
|
|
1154
1197
|
|
|
1155
1198
|
locale: Locale for browser language and region settings
|
|
1156
1199
|
|
|
1200
|
+
markdown_backend: Selects which markdown conversion strategy to use. "full_page" converts the
|
|
1201
|
+
entire HTML page. "main_content" uses Mozilla Readability to extract the main
|
|
1202
|
+
article content before converting.
|
|
1203
|
+
|
|
1157
1204
|
method: HTTP method for the request
|
|
1158
1205
|
|
|
1159
1206
|
network_capture: Filters for capturing network traffic
|
|
@@ -1203,6 +1250,7 @@ class Nimble(SyncAPIClient):
|
|
|
1203
1250
|
"http2": http2,
|
|
1204
1251
|
"is_xhr": is_xhr,
|
|
1205
1252
|
"locale": locale,
|
|
1253
|
+
"markdown_backend": markdown_backend,
|
|
1206
1254
|
"method": method,
|
|
1207
1255
|
"network_capture": network_capture,
|
|
1208
1256
|
"os": os,
|
|
@@ -1489,9 +1537,9 @@ class Nimble(SyncAPIClient):
|
|
|
1489
1537
|
]
|
|
1490
1538
|
| Omit = omit,
|
|
1491
1539
|
device: Literal["desktop", "mobile", "tablet"] | Omit = omit,
|
|
1492
|
-
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro"] | Omit = omit,
|
|
1540
|
+
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro", "media-vx6"] | Omit = omit,
|
|
1493
1541
|
expected_status_codes: Iterable[int] | Omit = omit,
|
|
1494
|
-
formats: List[Literal["html", "markdown", "screenshot", "headers"]] | Omit = omit,
|
|
1542
|
+
formats: List[Literal["html", "markdown", "screenshot", "headers", "links"]] | Omit = omit,
|
|
1495
1543
|
headers: Dict[str, Union[str, SequenceNotStr[str], None]] | Omit = omit,
|
|
1496
1544
|
http2: bool | Omit = omit,
|
|
1497
1545
|
is_xhr: bool | Omit = omit,
|
|
@@ -2031,6 +2079,7 @@ class Nimble(SyncAPIClient):
|
|
|
2031
2079
|
"auto",
|
|
2032
2080
|
]
|
|
2033
2081
|
| Omit = omit,
|
|
2082
|
+
markdown_backend: Literal["full_page", "main_content"] | Omit = omit,
|
|
2034
2083
|
method: Literal["GET", "POST", "PUT", "PATCH", "DELETE"] | Omit = omit,
|
|
2035
2084
|
network_capture: Iterable[client_extract_async_params.NetworkCapture] | Omit = omit,
|
|
2036
2085
|
os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit,
|
|
@@ -2151,6 +2200,10 @@ class Nimble(SyncAPIClient):
|
|
|
2151
2200
|
|
|
2152
2201
|
locale: Locale for browser language and region settings
|
|
2153
2202
|
|
|
2203
|
+
markdown_backend: Selects which markdown conversion strategy to use. "full_page" converts the
|
|
2204
|
+
entire HTML page. "main_content" uses Mozilla Readability to extract the main
|
|
2205
|
+
article content before converting.
|
|
2206
|
+
|
|
2154
2207
|
method: HTTP method for the request
|
|
2155
2208
|
|
|
2156
2209
|
network_capture: Filters for capturing network traffic
|
|
@@ -2209,6 +2262,7 @@ class Nimble(SyncAPIClient):
|
|
|
2209
2262
|
"http2": http2,
|
|
2210
2263
|
"is_xhr": is_xhr,
|
|
2211
2264
|
"locale": locale,
|
|
2265
|
+
"markdown_backend": markdown_backend,
|
|
2212
2266
|
"method": method,
|
|
2213
2267
|
"network_capture": network_capture,
|
|
2214
2268
|
"os": os,
|
|
@@ -3272,11 +3326,13 @@ class Nimble(SyncAPIClient):
|
|
|
3272
3326
|
class AsyncNimble(AsyncAPIClient):
|
|
3273
3327
|
# client options
|
|
3274
3328
|
api_key: str | None
|
|
3329
|
+
client_source: str | None
|
|
3275
3330
|
|
|
3276
3331
|
def __init__(
|
|
3277
3332
|
self,
|
|
3278
3333
|
*,
|
|
3279
3334
|
api_key: str | None = None,
|
|
3335
|
+
client_source: str | None = None,
|
|
3280
3336
|
base_url: str | httpx.URL | None = None,
|
|
3281
3337
|
timeout: float | Timeout | None | NotGiven = not_given,
|
|
3282
3338
|
max_retries: int = DEFAULT_MAX_RETRIES,
|
|
@@ -3298,17 +3354,32 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
3298
3354
|
) -> None:
|
|
3299
3355
|
"""Construct a new async AsyncNimble client instance.
|
|
3300
3356
|
|
|
3301
|
-
This automatically infers the
|
|
3357
|
+
This automatically infers the following arguments from their corresponding environment variables if they are not provided:
|
|
3358
|
+
- `api_key` from `NIMBLE_API_KEY`
|
|
3359
|
+
- `client_source` from `CLIENT_SOURCE`
|
|
3302
3360
|
"""
|
|
3303
3361
|
if api_key is None:
|
|
3304
3362
|
api_key = os.environ.get("NIMBLE_API_KEY")
|
|
3305
3363
|
self.api_key = api_key
|
|
3306
3364
|
|
|
3365
|
+
if client_source is None:
|
|
3366
|
+
client_source = os.environ.get("CLIENT_SOURCE") or "sdk"
|
|
3367
|
+
self.client_source = client_source
|
|
3368
|
+
|
|
3307
3369
|
if base_url is None:
|
|
3308
3370
|
base_url = os.environ.get("NIMBLE_BASE_URL")
|
|
3309
3371
|
if base_url is None:
|
|
3310
3372
|
base_url = f"https://sdk.nimbleway.com"
|
|
3311
3373
|
|
|
3374
|
+
custom_headers_env = os.environ.get("NIMBLE_CUSTOM_HEADERS")
|
|
3375
|
+
if custom_headers_env is not None:
|
|
3376
|
+
parsed: dict[str, str] = {}
|
|
3377
|
+
for line in custom_headers_env.split("\n"):
|
|
3378
|
+
colon = line.find(":")
|
|
3379
|
+
if colon >= 0:
|
|
3380
|
+
parsed[line[:colon].strip()] = line[colon + 1 :].strip()
|
|
3381
|
+
default_headers = {**parsed, **(default_headers if is_mapping_t(default_headers) else {})}
|
|
3382
|
+
|
|
3312
3383
|
super().__init__(
|
|
3313
3384
|
version=__version__,
|
|
3314
3385
|
base_url=base_url,
|
|
@@ -3344,6 +3415,24 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
3344
3415
|
|
|
3345
3416
|
return AsyncBatchesResource(self)
|
|
3346
3417
|
|
|
3418
|
+
@cached_property
|
|
3419
|
+
def domain_knowledge(self) -> AsyncDomainKnowledgeResource:
|
|
3420
|
+
from .resources.domain_knowledge import AsyncDomainKnowledgeResource
|
|
3421
|
+
|
|
3422
|
+
return AsyncDomainKnowledgeResource(self)
|
|
3423
|
+
|
|
3424
|
+
@cached_property
|
|
3425
|
+
def media(self) -> AsyncMediaResource:
|
|
3426
|
+
from .resources.media import AsyncMediaResource
|
|
3427
|
+
|
|
3428
|
+
return AsyncMediaResource(self)
|
|
3429
|
+
|
|
3430
|
+
@cached_property
|
|
3431
|
+
def serp(self) -> AsyncSerpResource:
|
|
3432
|
+
from .resources.serp import AsyncSerpResource
|
|
3433
|
+
|
|
3434
|
+
return AsyncSerpResource(self)
|
|
3435
|
+
|
|
3347
3436
|
@cached_property
|
|
3348
3437
|
def with_raw_response(self) -> AsyncNimbleWithRawResponse:
|
|
3349
3438
|
return AsyncNimbleWithRawResponse(self)
|
|
@@ -3371,6 +3460,7 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
3371
3460
|
return {
|
|
3372
3461
|
**super().default_headers,
|
|
3373
3462
|
"X-Stainless-Async": f"async:{get_async_library()}",
|
|
3463
|
+
"X-Client-Source": self.client_source if self.client_source is not None else Omit(),
|
|
3374
3464
|
**self._custom_headers,
|
|
3375
3465
|
}
|
|
3376
3466
|
|
|
@@ -3387,6 +3477,7 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
3387
3477
|
self,
|
|
3388
3478
|
*,
|
|
3389
3479
|
api_key: str | None = None,
|
|
3480
|
+
client_source: str | None = None,
|
|
3390
3481
|
base_url: str | httpx.URL | None = None,
|
|
3391
3482
|
timeout: float | Timeout | None | NotGiven = not_given,
|
|
3392
3483
|
http_client: httpx.AsyncClient | None = None,
|
|
@@ -3421,6 +3512,7 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
3421
3512
|
http_client = http_client or self._client
|
|
3422
3513
|
return self.__class__(
|
|
3423
3514
|
api_key=api_key or self.api_key,
|
|
3515
|
+
client_source=client_source or self.client_source,
|
|
3424
3516
|
base_url=base_url or self.base_url,
|
|
3425
3517
|
timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
|
|
3426
3518
|
http_client=http_client,
|
|
@@ -3698,9 +3790,9 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
3698
3790
|
]
|
|
3699
3791
|
| Omit = omit,
|
|
3700
3792
|
device: Literal["desktop", "mobile", "tablet"] | Omit = omit,
|
|
3701
|
-
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro"] | Omit = omit,
|
|
3793
|
+
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro", "media-vx6"] | Omit = omit,
|
|
3702
3794
|
expected_status_codes: Iterable[int] | Omit = omit,
|
|
3703
|
-
formats: List[Literal["html", "markdown", "screenshot", "headers"]] | Omit = omit,
|
|
3795
|
+
formats: List[Literal["html", "markdown", "screenshot", "headers", "links"]] | Omit = omit,
|
|
3704
3796
|
headers: Dict[str, Union[str, SequenceNotStr[str], None]] | Omit = omit,
|
|
3705
3797
|
http2: bool | Omit = omit,
|
|
3706
3798
|
is_xhr: bool | Omit = omit,
|
|
@@ -4240,6 +4332,7 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
4240
4332
|
"auto",
|
|
4241
4333
|
]
|
|
4242
4334
|
| Omit = omit,
|
|
4335
|
+
markdown_backend: Literal["full_page", "main_content"] | Omit = omit,
|
|
4243
4336
|
method: Literal["GET", "POST", "PUT", "PATCH", "DELETE"] | Omit = omit,
|
|
4244
4337
|
network_capture: Iterable[client_extract_params.NetworkCapture] | Omit = omit,
|
|
4245
4338
|
os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit,
|
|
@@ -4354,6 +4447,10 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
4354
4447
|
|
|
4355
4448
|
locale: Locale for browser language and region settings
|
|
4356
4449
|
|
|
4450
|
+
markdown_backend: Selects which markdown conversion strategy to use. "full_page" converts the
|
|
4451
|
+
entire HTML page. "main_content" uses Mozilla Readability to extract the main
|
|
4452
|
+
article content before converting.
|
|
4453
|
+
|
|
4357
4454
|
method: HTTP method for the request
|
|
4358
4455
|
|
|
4359
4456
|
network_capture: Filters for capturing network traffic
|
|
@@ -4403,6 +4500,7 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
4403
4500
|
"http2": http2,
|
|
4404
4501
|
"is_xhr": is_xhr,
|
|
4405
4502
|
"locale": locale,
|
|
4503
|
+
"markdown_backend": markdown_backend,
|
|
4406
4504
|
"method": method,
|
|
4407
4505
|
"network_capture": network_capture,
|
|
4408
4506
|
"os": os,
|
|
@@ -4689,9 +4787,9 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
4689
4787
|
]
|
|
4690
4788
|
| Omit = omit,
|
|
4691
4789
|
device: Literal["desktop", "mobile", "tablet"] | Omit = omit,
|
|
4692
|
-
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro"] | Omit = omit,
|
|
4790
|
+
driver: Literal["vx6", "vx8", "vx8-pro", "vx10", "vx10-pro", "vx12", "vx12-pro", "media-vx6"] | Omit = omit,
|
|
4693
4791
|
expected_status_codes: Iterable[int] | Omit = omit,
|
|
4694
|
-
formats: List[Literal["html", "markdown", "screenshot", "headers"]] | Omit = omit,
|
|
4792
|
+
formats: List[Literal["html", "markdown", "screenshot", "headers", "links"]] | Omit = omit,
|
|
4695
4793
|
headers: Dict[str, Union[str, SequenceNotStr[str], None]] | Omit = omit,
|
|
4696
4794
|
http2: bool | Omit = omit,
|
|
4697
4795
|
is_xhr: bool | Omit = omit,
|
|
@@ -5231,6 +5329,7 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
5231
5329
|
"auto",
|
|
5232
5330
|
]
|
|
5233
5331
|
| Omit = omit,
|
|
5332
|
+
markdown_backend: Literal["full_page", "main_content"] | Omit = omit,
|
|
5234
5333
|
method: Literal["GET", "POST", "PUT", "PATCH", "DELETE"] | Omit = omit,
|
|
5235
5334
|
network_capture: Iterable[client_extract_async_params.NetworkCapture] | Omit = omit,
|
|
5236
5335
|
os: Literal["windows", "mac os", "linux", "android", "ios"] | Omit = omit,
|
|
@@ -5351,6 +5450,10 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
5351
5450
|
|
|
5352
5451
|
locale: Locale for browser language and region settings
|
|
5353
5452
|
|
|
5453
|
+
markdown_backend: Selects which markdown conversion strategy to use. "full_page" converts the
|
|
5454
|
+
entire HTML page. "main_content" uses Mozilla Readability to extract the main
|
|
5455
|
+
article content before converting.
|
|
5456
|
+
|
|
5354
5457
|
method: HTTP method for the request
|
|
5355
5458
|
|
|
5356
5459
|
network_capture: Filters for capturing network traffic
|
|
@@ -5409,6 +5512,7 @@ class AsyncNimble(AsyncAPIClient):
|
|
|
5409
5512
|
"http2": http2,
|
|
5410
5513
|
"is_xhr": is_xhr,
|
|
5411
5514
|
"locale": locale,
|
|
5515
|
+
"markdown_backend": markdown_backend,
|
|
5412
5516
|
"method": method,
|
|
5413
5517
|
"network_capture": network_capture,
|
|
5414
5518
|
"os": os,
|
|
@@ -6515,6 +6619,24 @@ class NimbleWithRawResponse:
|
|
|
6515
6619
|
|
|
6516
6620
|
return BatchesResourceWithRawResponse(self._client.batches)
|
|
6517
6621
|
|
|
6622
|
+
@cached_property
|
|
6623
|
+
def domain_knowledge(self) -> domain_knowledge.DomainKnowledgeResourceWithRawResponse:
|
|
6624
|
+
from .resources.domain_knowledge import DomainKnowledgeResourceWithRawResponse
|
|
6625
|
+
|
|
6626
|
+
return DomainKnowledgeResourceWithRawResponse(self._client.domain_knowledge)
|
|
6627
|
+
|
|
6628
|
+
@cached_property
|
|
6629
|
+
def media(self) -> media.MediaResourceWithRawResponse:
|
|
6630
|
+
from .resources.media import MediaResourceWithRawResponse
|
|
6631
|
+
|
|
6632
|
+
return MediaResourceWithRawResponse(self._client.media)
|
|
6633
|
+
|
|
6634
|
+
@cached_property
|
|
6635
|
+
def serp(self) -> serp.SerpResourceWithRawResponse:
|
|
6636
|
+
from .resources.serp import SerpResourceWithRawResponse
|
|
6637
|
+
|
|
6638
|
+
return SerpResourceWithRawResponse(self._client.serp)
|
|
6639
|
+
|
|
6518
6640
|
|
|
6519
6641
|
class AsyncNimbleWithRawResponse:
|
|
6520
6642
|
_client: AsyncNimble
|
|
@@ -6562,6 +6684,24 @@ class AsyncNimbleWithRawResponse:
|
|
|
6562
6684
|
|
|
6563
6685
|
return AsyncBatchesResourceWithRawResponse(self._client.batches)
|
|
6564
6686
|
|
|
6687
|
+
@cached_property
|
|
6688
|
+
def domain_knowledge(self) -> domain_knowledge.AsyncDomainKnowledgeResourceWithRawResponse:
|
|
6689
|
+
from .resources.domain_knowledge import AsyncDomainKnowledgeResourceWithRawResponse
|
|
6690
|
+
|
|
6691
|
+
return AsyncDomainKnowledgeResourceWithRawResponse(self._client.domain_knowledge)
|
|
6692
|
+
|
|
6693
|
+
@cached_property
|
|
6694
|
+
def media(self) -> media.AsyncMediaResourceWithRawResponse:
|
|
6695
|
+
from .resources.media import AsyncMediaResourceWithRawResponse
|
|
6696
|
+
|
|
6697
|
+
return AsyncMediaResourceWithRawResponse(self._client.media)
|
|
6698
|
+
|
|
6699
|
+
@cached_property
|
|
6700
|
+
def serp(self) -> serp.AsyncSerpResourceWithRawResponse:
|
|
6701
|
+
from .resources.serp import AsyncSerpResourceWithRawResponse
|
|
6702
|
+
|
|
6703
|
+
return AsyncSerpResourceWithRawResponse(self._client.serp)
|
|
6704
|
+
|
|
6565
6705
|
|
|
6566
6706
|
class NimbleWithStreamedResponse:
|
|
6567
6707
|
_client: Nimble
|
|
@@ -6609,6 +6749,24 @@ class NimbleWithStreamedResponse:
|
|
|
6609
6749
|
|
|
6610
6750
|
return BatchesResourceWithStreamingResponse(self._client.batches)
|
|
6611
6751
|
|
|
6752
|
+
@cached_property
|
|
6753
|
+
def domain_knowledge(self) -> domain_knowledge.DomainKnowledgeResourceWithStreamingResponse:
|
|
6754
|
+
from .resources.domain_knowledge import DomainKnowledgeResourceWithStreamingResponse
|
|
6755
|
+
|
|
6756
|
+
return DomainKnowledgeResourceWithStreamingResponse(self._client.domain_knowledge)
|
|
6757
|
+
|
|
6758
|
+
@cached_property
|
|
6759
|
+
def media(self) -> media.MediaResourceWithStreamingResponse:
|
|
6760
|
+
from .resources.media import MediaResourceWithStreamingResponse
|
|
6761
|
+
|
|
6762
|
+
return MediaResourceWithStreamingResponse(self._client.media)
|
|
6763
|
+
|
|
6764
|
+
@cached_property
|
|
6765
|
+
def serp(self) -> serp.SerpResourceWithStreamingResponse:
|
|
6766
|
+
from .resources.serp import SerpResourceWithStreamingResponse
|
|
6767
|
+
|
|
6768
|
+
return SerpResourceWithStreamingResponse(self._client.serp)
|
|
6769
|
+
|
|
6612
6770
|
|
|
6613
6771
|
class AsyncNimbleWithStreamedResponse:
|
|
6614
6772
|
_client: AsyncNimble
|
|
@@ -6656,6 +6814,24 @@ class AsyncNimbleWithStreamedResponse:
|
|
|
6656
6814
|
|
|
6657
6815
|
return AsyncBatchesResourceWithStreamingResponse(self._client.batches)
|
|
6658
6816
|
|
|
6817
|
+
@cached_property
|
|
6818
|
+
def domain_knowledge(self) -> domain_knowledge.AsyncDomainKnowledgeResourceWithStreamingResponse:
|
|
6819
|
+
from .resources.domain_knowledge import AsyncDomainKnowledgeResourceWithStreamingResponse
|
|
6820
|
+
|
|
6821
|
+
return AsyncDomainKnowledgeResourceWithStreamingResponse(self._client.domain_knowledge)
|
|
6822
|
+
|
|
6823
|
+
@cached_property
|
|
6824
|
+
def media(self) -> media.AsyncMediaResourceWithStreamingResponse:
|
|
6825
|
+
from .resources.media import AsyncMediaResourceWithStreamingResponse
|
|
6826
|
+
|
|
6827
|
+
return AsyncMediaResourceWithStreamingResponse(self._client.media)
|
|
6828
|
+
|
|
6829
|
+
@cached_property
|
|
6830
|
+
def serp(self) -> serp.AsyncSerpResourceWithStreamingResponse:
|
|
6831
|
+
from .resources.serp import AsyncSerpResourceWithStreamingResponse
|
|
6832
|
+
|
|
6833
|
+
return AsyncSerpResourceWithStreamingResponse(self._client.serp)
|
|
6834
|
+
|
|
6659
6835
|
|
|
6660
6836
|
Client = Nimble
|
|
6661
6837
|
|