anchorbrowser 0.1.0a3__tar.gz → 0.2.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.
- anchorbrowser-0.2.0/.release-please-manifest.json +3 -0
- anchorbrowser-0.2.0/CHANGELOG.md +71 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/PKG-INFO +13 -14
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/README.md +6 -6
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/api.md +77 -5
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/pyproject.toml +106 -34
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/requirements-dev.lock +13 -28
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/requirements.lock +12 -38
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/__init__.py +3 -1
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_base_client.py +16 -13
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_client.py +38 -9
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_compat.py +48 -48
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_files.py +4 -4
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_models.py +54 -45
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_qs.py +7 -7
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_types.py +53 -12
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/__init__.py +9 -2
- anchorbrowser-0.2.0/src/anchorbrowser/_utils/_compat.py +45 -0
- anchorbrowser-0.2.0/src/anchorbrowser/_utils/_datetime_parse.py +136 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_transform.py +13 -3
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_typing.py +6 -1
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_utils.py +4 -5
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_version.py +1 -1
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/lib/browser.py +1 -1
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/__init__.py +42 -0
- anchorbrowser-0.2.0/src/anchorbrowser/resources/batch_sessions.py +288 -0
- anchorbrowser-0.2.0/src/anchorbrowser/resources/events.py +270 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/extensions.py +9 -9
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/profiles.py +24 -150
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/__init__.py +14 -0
- anchorbrowser-0.2.0/src/anchorbrowser/resources/sessions/agent/__init__.py +33 -0
- anchorbrowser-0.2.0/src/anchorbrowser/resources/sessions/agent/agent.py +273 -0
- anchorbrowser-0.2.0/src/anchorbrowser/resources/sessions/agent/files.py +280 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/all.py +5 -5
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/clipboard.py +5 -5
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/keyboard.py +11 -13
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/mouse.py +12 -244
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/recordings/primary.py +3 -3
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/recordings/recordings.py +7 -7
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/sessions.py +345 -30
- anchorbrowser-0.2.0/src/anchorbrowser/resources/task/__init__.py +33 -0
- anchorbrowser-0.2.0/src/anchorbrowser/resources/task/run.py +225 -0
- anchorbrowser-0.2.0/src/anchorbrowser/resources/task/task.py +358 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/tools.py +107 -37
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/__init__.py +14 -1
- anchorbrowser-0.2.0/src/anchorbrowser/types/batch_session_create_params.py +487 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/batch_session_create_response.py +27 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/batch_session_retrieve_response.py +90 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/event_signal_params.py +13 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/event_wait_for_params.py +14 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/event_wait_for_response.py +12 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_manifest.py +6 -1
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/profile_create_params.py +3 -6
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/profile_list_response.py +0 -3
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/profile_retrieve_response.py +0 -3
- anchorbrowser-0.2.0/src/anchorbrowser/types/session_create_params.py +475 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/session_list_pages_response.py +25 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/session_retrieve_response.py +46 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_scroll_params.py +3 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/session_upload_file_params.py +14 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/session_upload_file_response.py +17 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/__init__.py +0 -4
- anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/__init__.py +7 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/file_list_response.py +32 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/file_upload_params.py +14 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/file_upload_response.py +17 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_shortcut_params.py +2 -2
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recording_list_response.py +4 -8
- anchorbrowser-0.2.0/src/anchorbrowser/types/task/__init__.py +6 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/task/run_execute_params.py +324 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/task/run_execute_response.py +33 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/task_create_params.py +317 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/task_create_response.py +345 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/task_list_params.py +15 -0
- anchorbrowser-0.2.0/src/anchorbrowser/types/task_list_response.py +361 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_fetch_webpage_params.py +15 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_perform_web_task_params.py +17 -1
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_perform_web_task_response.py +3 -3
- anchorbrowser-0.2.0/tests/api_resources/sessions/agent/test_files.py +200 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/recordings/test_primary.py +0 -8
- anchorbrowser-0.2.0/tests/api_resources/sessions/test_agent.py +192 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_all.py +12 -12
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_clipboard.py +24 -24
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_keyboard.py +44 -44
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_mouse.py +28 -274
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_recordings.py +24 -24
- anchorbrowser-0.2.0/tests/api_resources/task/__init__.py +1 -0
- anchorbrowser-0.2.0/tests/api_resources/task/test_run.py +154 -0
- anchorbrowser-0.2.0/tests/api_resources/test_batch_sessions.py +288 -0
- anchorbrowser-0.2.0/tests/api_resources/test_events.py +251 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_extensions.py +46 -46
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_profiles.py +57 -168
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_sessions.py +457 -174
- anchorbrowser-0.2.0/tests/api_resources/test_task.py +226 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_tools.py +60 -86
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/conftest.py +1 -1
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_client.py +23 -64
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_models.py +24 -24
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_transform.py +17 -10
- anchorbrowser-0.2.0/tests/test_utils/test_datetime_parse.py +110 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/utils.py +13 -5
- anchorbrowser-0.1.0a3/.release-please-manifest.json +0 -3
- anchorbrowser-0.1.0a3/CHANGELOG.md +0 -74
- anchorbrowser-0.1.0a3/mypy.ini +0 -50
- anchorbrowser-0.1.0a3/src/anchorbrowser/types/profile_update_params.py +0 -27
- anchorbrowser-0.1.0a3/src/anchorbrowser/types/session_create_params.py +0 -196
- anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_down_params.py +0 -18
- anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_down_response.py +0 -11
- anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_up_params.py +0 -18
- anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_up_response.py +0 -11
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/.gitignore +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/CONTRIBUTING.md +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/LICENSE +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/SECURITY.md +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/bin/check-release-environment +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/bin/publish-pypi +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/examples/.keep +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/noxfile.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/release-please-config.json +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_constants.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_exceptions.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_resource.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_streaming.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_logs.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_proxy.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_reflection.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_resources_proxy.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_streams.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_sync.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/lib/.keep +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/lib/agent.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/py.typed +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/agent.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/browser.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/recordings/__init__.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_delete_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_list_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_retrieve_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_upload_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_upload_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_copy_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_create_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_drag_and_drop_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_drag_and_drop_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_goto_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_goto_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_paste_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_paste_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_retrieve_downloads_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_scroll_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/all_status_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/clipboard_get_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/clipboard_set_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/clipboard_set_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_shortcut_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_type_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_type_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_click_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_click_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_double_click_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_double_click_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_move_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_move_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recording_pause_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recording_resume_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recordings/__init__.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/shared/__init__.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/shared/success_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_fetch_webpage_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_screenshot_webpage_params.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/__init__.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/__init__.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/__init__.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/recordings/__init__.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/sample_file.txt +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_deepcopy.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_extract_files.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_files.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_qs.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_required_args.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_response.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_streaming.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_utils/test_proxy.py +0 -0
- {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_utils/test_typing.py +0 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.0 (2025-10-20)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.1.1...v0.2.0](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.1.1...v0.2.0)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* added batch and cursor rules ([db09e9b](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/db09e9b9fb753744809924e7b7eab822055c4b38))
|
|
10
|
+
* **api:** manual updates ([5847952](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/58479526f72df0bb37f42957243b416418e4f0d8))
|
|
11
|
+
* Bro 908 1 password integration 2 ([a63dc90](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/a63dc908ecf9de43296b3143574b756b6c94089e))
|
|
12
|
+
* BRO-959 us as default proxy country code ([a3d9294](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/a3d9294f0d20e07f49386dd07e8d8344a32d1d10))
|
|
13
|
+
* BRO-976 docs: add extra_stealth to openai and sdk ([d7aea94](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/d7aea94bd209bbafc08777a022203f8ab89697e3))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* agent pause resume is back ([77d8397](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/77d8397b3742e77faacb39b89682d4fabaeb7ed1))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Chores
|
|
22
|
+
|
|
23
|
+
* bump `httpx-aiohttp` version to 0.1.9 ([316d40e](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/316d40e4bb48b4c6b2a38afd75b7c855fc80f126))
|
|
24
|
+
|
|
25
|
+
## 0.1.1 (2025-10-11)
|
|
26
|
+
|
|
27
|
+
Full Changelog: [v0.1.0...v0.1.1](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/compare/v0.1.0...v0.1.1)
|
|
28
|
+
|
|
29
|
+
### Features
|
|
30
|
+
|
|
31
|
+
* Add disable_web_security ([cefa8d4](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/cefa8d4ae15c0ec2d39543b67ac3dde4bc1da791))
|
|
32
|
+
* added additional fetch-webpage options ([c7eead2](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/c7eead27ece65dd5c41860d9080f2167017f9da2))
|
|
33
|
+
* added agent pause and continue ([49a1a49](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/49a1a49c98831a12d031064ff251c81a83932651))
|
|
34
|
+
* Added OpenAPI specification for file uploads to browser sessions, inc… ([205c296](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/205c29632e3a19a1555b37b83cf8b0e2fca88843))
|
|
35
|
+
* added use os for scroll ([71bc128](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/71bc128ffde6bdf309d56fbfb6f1d44e7b46c1bf))
|
|
36
|
+
* **api:** manual updates ([41b55e3](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/41b55e3455ee8543f057191346995ff6f2fbb4df))
|
|
37
|
+
* **api:** manual updates ([171046c](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/171046c5f8dfbcd3f632e15e0d5bdae2d478af31))
|
|
38
|
+
* **api:** manual updates ([342688b](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/342688b498fc4aba7fcb0eb4cc54ea5be9051f35))
|
|
39
|
+
* BRO-622 update openapi spec with session get ([3c5ee34](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/3c5ee34dca0be7b44be1e4977290f8cb80a847b7))
|
|
40
|
+
* BRO-764 City based proxy ([936ffb8](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/936ffb8d46ee08a7edd345323a7adc4271b58f75))
|
|
41
|
+
* improve future compat with pydantic v3 ([4e5c038](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/4e5c038e9edcad6b418a32846813f76f67ff47c0))
|
|
42
|
+
* **types:** replace List[str] with SequenceNotStr in params ([0c39bce](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/0c39bce296ccf2143b9cc8d89bab75d53d3f1acc))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
### Bug Fixes
|
|
46
|
+
|
|
47
|
+
* avoid newer type syntax ([f78c034](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/f78c034003d403087c556a4c18d9438637311a07))
|
|
48
|
+
* **compat:** compat with `pydantic<2.8.0` when using additional fields ([53b002f](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/53b002f642874a7518ffc4a49f822e25ec6c83a0))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
### Chores
|
|
52
|
+
|
|
53
|
+
* do not install brew dependencies in ./scripts/bootstrap by default ([75a97d0](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/75a97d04851d9cda1c1680c07efd24ed66b1bb6f))
|
|
54
|
+
* **internal:** add Sequence related utils ([d2c8ffc](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/d2c8ffc2d93043c6ef7b99d172542adb7c0bea0a))
|
|
55
|
+
* **internal:** change ci workflow machines ([31cfb87](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/31cfb877b7bd28f3726c996d778db040c27bda10))
|
|
56
|
+
* **internal:** codegen related update ([2103cfa](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/2103cfa93c032268d647554707d6bd11015e8ffd))
|
|
57
|
+
* **internal:** codegen related update ([bf5c542](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/bf5c5420a54af077edeb4c465254e39553859dc2))
|
|
58
|
+
* **internal:** detect missing future annotations with ruff ([8658af6](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/8658af6f33402b406e084607981a9fb0d052ec6f))
|
|
59
|
+
* **internal:** fix ruff target version ([3e2468a](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/3e2468a77261ccbf3420521293241253b269dd9d))
|
|
60
|
+
* **internal:** move mypy configurations to `pyproject.toml` file ([b42de93](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/b42de93096441c5b36b32bfeb36d8fd6383c3c55))
|
|
61
|
+
* **internal:** update comment in script ([a58dcb2](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/a58dcb25c04d22f93f495ff95dce45d15fd26571))
|
|
62
|
+
* **internal:** update pydantic dependency ([765c63f](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/765c63f233924e94f42d7b12a7d58341de6b8adb))
|
|
63
|
+
* **internal:** update pyright exclude list ([eeadbf8](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/eeadbf8cf3a12f552bb2ce88a64e15491815a1f8))
|
|
64
|
+
* **types:** change optional parameter type from NotGiven to Omit ([f84b4e0](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/f84b4e01b536f0f34703562c891d45a1b68ef9db))
|
|
65
|
+
* update @stainless-api/prism-cli to v5.15.0 ([88b661e](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/88b661e22651c660b72239df4a00f83a063e5e93))
|
|
66
|
+
* update github action ([bc5a5df](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/bc5a5df363f929149198bb713d26bb529c29d12d))
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
### Documentation
|
|
70
|
+
|
|
71
|
+
* add reset_preferences option to session profile configuration i… ([a35fb22](https://github.com/anchorbrowser/AnchorBrowser-SDK-Python/commit/a35fb2285e3c1225512860c9f957450ddb4cf896))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: anchorbrowser
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: The official Python library for the anchorbrowser API
|
|
5
5
|
Project-URL: Homepage, https://github.com/anchorbrowser/AnchorBrowser-SDK-Python
|
|
6
6
|
Project-URL: Repository, https://github.com/anchorbrowser/AnchorBrowser-SDK-Python
|
|
@@ -13,7 +13,6 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
13
13
|
Classifier: Operating System :: OS Independent
|
|
14
14
|
Classifier: Operating System :: POSIX
|
|
15
15
|
Classifier: Operating System :: POSIX :: Linux
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.9
|
|
18
17
|
Classifier: Programming Language :: Python :: 3.10
|
|
19
18
|
Classifier: Programming Language :: Python :: 3.11
|
|
@@ -21,18 +20,18 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.13
|
|
22
21
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
22
|
Classifier: Typing :: Typed
|
|
24
|
-
Requires-Python: >=3.
|
|
23
|
+
Requires-Python: >=3.9
|
|
25
24
|
Requires-Dist: anyio<5,>=3.5.0
|
|
26
25
|
Requires-Dist: distro<2,>=1.7.0
|
|
27
|
-
Requires-Dist: httpx
|
|
26
|
+
Requires-Dist: httpx>=0.28.1
|
|
27
|
+
Requires-Dist: playwright>=1.55.0
|
|
28
28
|
Requires-Dist: pydantic<3,>=1.9.0
|
|
29
|
-
Requires-Dist: pytest-playwright
|
|
30
29
|
Requires-Dist: sniffio
|
|
31
|
-
Requires-Dist: typing-extensions
|
|
32
|
-
Requires-Dist: websockets
|
|
30
|
+
Requires-Dist: typing-extensions>=4.15.0
|
|
31
|
+
Requires-Dist: websockets>=15.0.1
|
|
33
32
|
Provides-Extra: aiohttp
|
|
34
33
|
Requires-Dist: aiohttp; extra == 'aiohttp'
|
|
35
|
-
Requires-Dist: httpx-aiohttp>=0.1.
|
|
34
|
+
Requires-Dist: httpx-aiohttp>=0.1.9; extra == 'aiohttp'
|
|
36
35
|
Description-Content-Type: text/markdown
|
|
37
36
|
|
|
38
37
|
# Anchorbrowser Python API library
|
|
@@ -54,7 +53,7 @@ The REST API documentation can be found on [docs.anchorbrowser.io](https://docs.
|
|
|
54
53
|
|
|
55
54
|
```sh
|
|
56
55
|
# install from PyPI
|
|
57
|
-
pip install
|
|
56
|
+
pip install anchorbrowser
|
|
58
57
|
```
|
|
59
58
|
|
|
60
59
|
## Usage
|
|
@@ -77,7 +76,7 @@ print(success_response.data)
|
|
|
77
76
|
|
|
78
77
|
While you can provide an `api_key` keyword argument,
|
|
79
78
|
we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
|
|
80
|
-
to add `ANCHORBROWSER_API_KEY="
|
|
79
|
+
to add `ANCHORBROWSER_API_KEY="Your API Key"` to your `.env` file
|
|
81
80
|
so that your API Key is not stored in source control.
|
|
82
81
|
|
|
83
82
|
## Async usage
|
|
@@ -114,7 +113,7 @@ You can enable this by installing `aiohttp`:
|
|
|
114
113
|
|
|
115
114
|
```sh
|
|
116
115
|
# install from PyPI
|
|
117
|
-
pip install
|
|
116
|
+
pip install anchorbrowser[aiohttp]
|
|
118
117
|
```
|
|
119
118
|
|
|
120
119
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
@@ -127,7 +126,7 @@ from anchorbrowser import AsyncAnchorbrowser
|
|
|
127
126
|
|
|
128
127
|
async def main() -> None:
|
|
129
128
|
async with AsyncAnchorbrowser(
|
|
130
|
-
api_key="
|
|
129
|
+
api_key="Your API Key",
|
|
131
130
|
http_client=DefaultAioHttpClient(),
|
|
132
131
|
) as client:
|
|
133
132
|
success_response = await client.profiles.create(
|
|
@@ -173,9 +172,9 @@ from anchorbrowser import Anchorbrowser
|
|
|
173
172
|
|
|
174
173
|
client = Anchorbrowser()
|
|
175
174
|
|
|
176
|
-
client.
|
|
175
|
+
client.sessions.upload_file(
|
|
176
|
+
session_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
|
|
177
177
|
file=Path("/path/to/file"),
|
|
178
|
-
name="My Custom Extension",
|
|
179
178
|
)
|
|
180
179
|
```
|
|
181
180
|
|
|
@@ -17,7 +17,7 @@ The REST API documentation can be found on [docs.anchorbrowser.io](https://docs.
|
|
|
17
17
|
|
|
18
18
|
```sh
|
|
19
19
|
# install from PyPI
|
|
20
|
-
pip install
|
|
20
|
+
pip install anchorbrowser
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## Usage
|
|
@@ -40,7 +40,7 @@ print(success_response.data)
|
|
|
40
40
|
|
|
41
41
|
While you can provide an `api_key` keyword argument,
|
|
42
42
|
we recommend using [python-dotenv](https://pypi.org/project/python-dotenv/)
|
|
43
|
-
to add `ANCHORBROWSER_API_KEY="
|
|
43
|
+
to add `ANCHORBROWSER_API_KEY="Your API Key"` to your `.env` file
|
|
44
44
|
so that your API Key is not stored in source control.
|
|
45
45
|
|
|
46
46
|
## Async usage
|
|
@@ -77,7 +77,7 @@ You can enable this by installing `aiohttp`:
|
|
|
77
77
|
|
|
78
78
|
```sh
|
|
79
79
|
# install from PyPI
|
|
80
|
-
pip install
|
|
80
|
+
pip install anchorbrowser[aiohttp]
|
|
81
81
|
```
|
|
82
82
|
|
|
83
83
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
@@ -90,7 +90,7 @@ from anchorbrowser import AsyncAnchorbrowser
|
|
|
90
90
|
|
|
91
91
|
async def main() -> None:
|
|
92
92
|
async with AsyncAnchorbrowser(
|
|
93
|
-
api_key="
|
|
93
|
+
api_key="Your API Key",
|
|
94
94
|
http_client=DefaultAioHttpClient(),
|
|
95
95
|
) as client:
|
|
96
96
|
success_response = await client.profiles.create(
|
|
@@ -136,9 +136,9 @@ from anchorbrowser import Anchorbrowser
|
|
|
136
136
|
|
|
137
137
|
client = Anchorbrowser()
|
|
138
138
|
|
|
139
|
-
client.
|
|
139
|
+
client.sessions.upload_file(
|
|
140
|
+
session_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
|
|
140
141
|
file=Path("/path/to/file"),
|
|
141
|
-
name="My Custom Extension",
|
|
142
142
|
)
|
|
143
143
|
```
|
|
144
144
|
|
|
@@ -16,7 +16,6 @@ Methods:
|
|
|
16
16
|
|
|
17
17
|
- <code title="post /v1/profiles">client.profiles.<a href="./src/anchorbrowser/resources/profiles.py">create</a>(\*\*<a href="src/anchorbrowser/types/profile_create_params.py">params</a>) -> <a href="./src/anchorbrowser/types/shared/success_response.py">SuccessResponse</a></code>
|
|
18
18
|
- <code title="get /v1/profiles/{name}">client.profiles.<a href="./src/anchorbrowser/resources/profiles.py">retrieve</a>(name) -> <a href="./src/anchorbrowser/types/profile_retrieve_response.py">ProfileRetrieveResponse</a></code>
|
|
19
|
-
- <code title="put /v1/profiles/{name}">client.profiles.<a href="./src/anchorbrowser/resources/profiles.py">update</a>(name, \*\*<a href="src/anchorbrowser/types/profile_update_params.py">params</a>) -> <a href="./src/anchorbrowser/types/shared/success_response.py">SuccessResponse</a></code>
|
|
20
19
|
- <code title="get /v1/profiles">client.profiles.<a href="./src/anchorbrowser/resources/profiles.py">list</a>() -> <a href="./src/anchorbrowser/types/profile_list_response.py">ProfileListResponse</a></code>
|
|
21
20
|
- <code title="delete /v1/profiles/{name}">client.profiles.<a href="./src/anchorbrowser/resources/profiles.py">delete</a>(name) -> <a href="./src/anchorbrowser/types/shared/success_response.py">SuccessResponse</a></code>
|
|
22
21
|
|
|
@@ -27,26 +26,32 @@ Types:
|
|
|
27
26
|
```python
|
|
28
27
|
from anchorbrowser.types import (
|
|
29
28
|
SessionCreateResponse,
|
|
29
|
+
SessionRetrieveResponse,
|
|
30
30
|
SessionCopyResponse,
|
|
31
31
|
SessionDragAndDropResponse,
|
|
32
32
|
SessionGotoResponse,
|
|
33
|
+
SessionListPagesResponse,
|
|
33
34
|
SessionPasteResponse,
|
|
34
35
|
SessionRetrieveDownloadsResponse,
|
|
35
36
|
SessionScrollResponse,
|
|
37
|
+
SessionUploadFileResponse,
|
|
36
38
|
)
|
|
37
39
|
```
|
|
38
40
|
|
|
39
41
|
Methods:
|
|
40
42
|
|
|
41
43
|
- <code title="post /v1/sessions">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">create</a>(\*\*<a href="src/anchorbrowser/types/session_create_params.py">params</a>) -> <a href="./src/anchorbrowser/types/session_create_response.py">SessionCreateResponse</a></code>
|
|
44
|
+
- <code title="get /v1/sessions/{session_id}">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">retrieve</a>(session_id) -> <a href="./src/anchorbrowser/types/session_retrieve_response.py">SessionRetrieveResponse</a></code>
|
|
42
45
|
- <code title="delete /v1/sessions/{session_id}">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">delete</a>(session_id) -> <a href="./src/anchorbrowser/types/shared/success_response.py">SuccessResponse</a></code>
|
|
43
46
|
- <code title="post /v1/sessions/{sessionId}/copy">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">copy</a>(session_id) -> <a href="./src/anchorbrowser/types/session_copy_response.py">SessionCopyResponse</a></code>
|
|
44
47
|
- <code title="post /v1/sessions/{sessionId}/drag-and-drop">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">drag_and_drop</a>(session_id, \*\*<a href="src/anchorbrowser/types/session_drag_and_drop_params.py">params</a>) -> <a href="./src/anchorbrowser/types/session_drag_and_drop_response.py">SessionDragAndDropResponse</a></code>
|
|
45
48
|
- <code title="post /v1/sessions/{sessionId}/goto">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">goto</a>(session_id, \*\*<a href="src/anchorbrowser/types/session_goto_params.py">params</a>) -> <a href="./src/anchorbrowser/types/session_goto_response.py">SessionGotoResponse</a></code>
|
|
49
|
+
- <code title="get /v1/sessions/{session_id}/pages">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">list_pages</a>(session_id) -> <a href="./src/anchorbrowser/types/session_list_pages_response.py">SessionListPagesResponse</a></code>
|
|
46
50
|
- <code title="post /v1/sessions/{sessionId}/paste">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">paste</a>(session_id, \*\*<a href="src/anchorbrowser/types/session_paste_params.py">params</a>) -> <a href="./src/anchorbrowser/types/session_paste_response.py">SessionPasteResponse</a></code>
|
|
47
51
|
- <code title="get /v1/sessions/{session_id}/downloads">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">retrieve_downloads</a>(session_id) -> <a href="./src/anchorbrowser/types/session_retrieve_downloads_response.py">SessionRetrieveDownloadsResponse</a></code>
|
|
48
52
|
- <code title="get /v1/sessions/{sessionId}/screenshot">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">retrieve_screenshot</a>(session_id) -> BinaryAPIResponse</code>
|
|
49
53
|
- <code title="post /v1/sessions/{sessionId}/scroll">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">scroll</a>(session_id, \*\*<a href="src/anchorbrowser/types/session_scroll_params.py">params</a>) -> <a href="./src/anchorbrowser/types/session_scroll_response.py">SessionScrollResponse</a></code>
|
|
54
|
+
- <code title="post /v1/sessions/{sessionId}/uploads">client.sessions.<a href="./src/anchorbrowser/resources/sessions/sessions.py">upload_file</a>(session_id, \*\*<a href="src/anchorbrowser/types/session_upload_file_params.py">params</a>) -> <a href="./src/anchorbrowser/types/session_upload_file_response.py">SessionUploadFileResponse</a></code>
|
|
50
55
|
|
|
51
56
|
## All
|
|
52
57
|
|
|
@@ -93,9 +98,7 @@ Types:
|
|
|
93
98
|
from anchorbrowser.types.sessions import (
|
|
94
99
|
MouseClickResponse,
|
|
95
100
|
MouseDoubleClickResponse,
|
|
96
|
-
MouseDownResponse,
|
|
97
101
|
MouseMoveResponse,
|
|
98
|
-
MouseUpResponse,
|
|
99
102
|
)
|
|
100
103
|
```
|
|
101
104
|
|
|
@@ -103,9 +106,7 @@ Methods:
|
|
|
103
106
|
|
|
104
107
|
- <code title="post /v1/sessions/{sessionId}/mouse/click">client.sessions.mouse.<a href="./src/anchorbrowser/resources/sessions/mouse.py">click</a>(session_id, \*\*<a href="src/anchorbrowser/types/sessions/mouse_click_params.py">params</a>) -> <a href="./src/anchorbrowser/types/sessions/mouse_click_response.py">MouseClickResponse</a></code>
|
|
105
108
|
- <code title="post /v1/sessions/{sessionId}/mouse/doubleClick">client.sessions.mouse.<a href="./src/anchorbrowser/resources/sessions/mouse.py">double_click</a>(session_id, \*\*<a href="src/anchorbrowser/types/sessions/mouse_double_click_params.py">params</a>) -> <a href="./src/anchorbrowser/types/sessions/mouse_double_click_response.py">MouseDoubleClickResponse</a></code>
|
|
106
|
-
- <code title="post /v1/sessions/{sessionId}/mouse/down">client.sessions.mouse.<a href="./src/anchorbrowser/resources/sessions/mouse.py">down</a>(session_id, \*\*<a href="src/anchorbrowser/types/sessions/mouse_down_params.py">params</a>) -> <a href="./src/anchorbrowser/types/sessions/mouse_down_response.py">MouseDownResponse</a></code>
|
|
107
109
|
- <code title="post /v1/sessions/{sessionId}/mouse/move">client.sessions.mouse.<a href="./src/anchorbrowser/resources/sessions/mouse.py">move</a>(session_id, \*\*<a href="src/anchorbrowser/types/sessions/mouse_move_params.py">params</a>) -> <a href="./src/anchorbrowser/types/sessions/mouse_move_response.py">MouseMoveResponse</a></code>
|
|
108
|
-
- <code title="post /v1/sessions/{sessionId}/mouse/up">client.sessions.mouse.<a href="./src/anchorbrowser/resources/sessions/mouse.py">up</a>(session_id, \*\*<a href="src/anchorbrowser/types/sessions/mouse_up_params.py">params</a>) -> <a href="./src/anchorbrowser/types/sessions/mouse_up_response.py">MouseUpResponse</a></code>
|
|
109
110
|
|
|
110
111
|
## Keyboard
|
|
111
112
|
|
|
@@ -133,6 +134,26 @@ Methods:
|
|
|
133
134
|
- <code title="get /v1/sessions/{sessionId}/clipboard">client.sessions.clipboard.<a href="./src/anchorbrowser/resources/sessions/clipboard.py">get</a>(session_id) -> <a href="./src/anchorbrowser/types/sessions/clipboard_get_response.py">ClipboardGetResponse</a></code>
|
|
134
135
|
- <code title="post /v1/sessions/{sessionId}/clipboard">client.sessions.clipboard.<a href="./src/anchorbrowser/resources/sessions/clipboard.py">set</a>(session_id, \*\*<a href="src/anchorbrowser/types/sessions/clipboard_set_params.py">params</a>) -> <a href="./src/anchorbrowser/types/sessions/clipboard_set_response.py">ClipboardSetResponse</a></code>
|
|
135
136
|
|
|
137
|
+
## Agent
|
|
138
|
+
|
|
139
|
+
Methods:
|
|
140
|
+
|
|
141
|
+
- <code title="post /v1/sessions/{session_id}/agent/pause">client.sessions.agent.<a href="./src/anchorbrowser/resources/sessions/agent/agent.py">pause</a>(session_id) -> <a href="./src/anchorbrowser/types/shared/success_response.py">SuccessResponse</a></code>
|
|
142
|
+
- <code title="post /v1/sessions/{session_id}/agent/resume">client.sessions.agent.<a href="./src/anchorbrowser/resources/sessions/agent/agent.py">resume</a>(session_id) -> <a href="./src/anchorbrowser/types/shared/success_response.py">SuccessResponse</a></code>
|
|
143
|
+
|
|
144
|
+
### Files
|
|
145
|
+
|
|
146
|
+
Types:
|
|
147
|
+
|
|
148
|
+
```python
|
|
149
|
+
from anchorbrowser.types.sessions.agent import FileListResponse, FileUploadResponse
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Methods:
|
|
153
|
+
|
|
154
|
+
- <code title="get /v1/sessions/{sessionId}/agent/files">client.sessions.agent.files.<a href="./src/anchorbrowser/resources/sessions/agent/files.py">list</a>(session_id) -> <a href="./src/anchorbrowser/types/sessions/agent/file_list_response.py">FileListResponse</a></code>
|
|
155
|
+
- <code title="post /v1/sessions/{sessionId}/agent/files">client.sessions.agent.files.<a href="./src/anchorbrowser/resources/sessions/agent/files.py">upload</a>(session_id, \*\*<a href="src/anchorbrowser/types/sessions/agent/file_upload_params.py">params</a>) -> <a href="./src/anchorbrowser/types/sessions/agent/file_upload_response.py">FileUploadResponse</a></code>
|
|
156
|
+
|
|
136
157
|
# Tools
|
|
137
158
|
|
|
138
159
|
Types:
|
|
@@ -167,3 +188,54 @@ Methods:
|
|
|
167
188
|
- <code title="get /v1/extensions">client.extensions.<a href="./src/anchorbrowser/resources/extensions.py">list</a>() -> <a href="./src/anchorbrowser/types/extension_list_response.py">ExtensionListResponse</a></code>
|
|
168
189
|
- <code title="delete /v1/extensions/{id}">client.extensions.<a href="./src/anchorbrowser/resources/extensions.py">delete</a>(id) -> <a href="./src/anchorbrowser/types/extension_delete_response.py">ExtensionDeleteResponse</a></code>
|
|
169
190
|
- <code title="post /v1/extensions">client.extensions.<a href="./src/anchorbrowser/resources/extensions.py">upload</a>(\*\*<a href="src/anchorbrowser/types/extension_upload_params.py">params</a>) -> <a href="./src/anchorbrowser/types/extension_upload_response.py">ExtensionUploadResponse</a></code>
|
|
191
|
+
|
|
192
|
+
# Events
|
|
193
|
+
|
|
194
|
+
Types:
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
from anchorbrowser.types import EventWaitForResponse
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Methods:
|
|
201
|
+
|
|
202
|
+
- <code title="post /v1/events/{event_name}">client.events.<a href="./src/anchorbrowser/resources/events.py">signal</a>(event_name, \*\*<a href="src/anchorbrowser/types/event_signal_params.py">params</a>) -> <a href="./src/anchorbrowser/types/shared/success_response.py">SuccessResponse</a></code>
|
|
203
|
+
- <code title="post /v1/events/{event_name}/wait">client.events.<a href="./src/anchorbrowser/resources/events.py">wait_for</a>(event_name, \*\*<a href="src/anchorbrowser/types/event_wait_for_params.py">params</a>) -> <a href="./src/anchorbrowser/types/event_wait_for_response.py">EventWaitForResponse</a></code>
|
|
204
|
+
|
|
205
|
+
# BatchSessions
|
|
206
|
+
|
|
207
|
+
Types:
|
|
208
|
+
|
|
209
|
+
```python
|
|
210
|
+
from anchorbrowser.types import BatchSessionCreateResponse, BatchSessionRetrieveResponse
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Methods:
|
|
214
|
+
|
|
215
|
+
- <code title="post /v1/batch-sessions">client.batch_sessions.<a href="./src/anchorbrowser/resources/batch_sessions.py">create</a>(\*\*<a href="src/anchorbrowser/types/batch_session_create_params.py">params</a>) -> <a href="./src/anchorbrowser/types/batch_session_create_response.py">BatchSessionCreateResponse</a></code>
|
|
216
|
+
- <code title="get /v1/batch-sessions/{batch_id}">client.batch_sessions.<a href="./src/anchorbrowser/resources/batch_sessions.py">retrieve</a>(batch_id) -> <a href="./src/anchorbrowser/types/batch_session_retrieve_response.py">BatchSessionRetrieveResponse</a></code>
|
|
217
|
+
|
|
218
|
+
# Task
|
|
219
|
+
|
|
220
|
+
Types:
|
|
221
|
+
|
|
222
|
+
```python
|
|
223
|
+
from anchorbrowser.types import TaskCreateResponse, TaskListResponse
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
Methods:
|
|
227
|
+
|
|
228
|
+
- <code title="post /v1/task">client.task.<a href="./src/anchorbrowser/resources/task/task.py">create</a>(\*\*<a href="src/anchorbrowser/types/task_create_params.py">params</a>) -> <a href="./src/anchorbrowser/types/task_create_response.py">TaskCreateResponse</a></code>
|
|
229
|
+
- <code title="get /v1/task">client.task.<a href="./src/anchorbrowser/resources/task/task.py">list</a>(\*\*<a href="src/anchorbrowser/types/task_list_params.py">params</a>) -> <a href="./src/anchorbrowser/types/task_list_response.py">TaskListResponse</a></code>
|
|
230
|
+
|
|
231
|
+
## Run
|
|
232
|
+
|
|
233
|
+
Types:
|
|
234
|
+
|
|
235
|
+
```python
|
|
236
|
+
from anchorbrowser.types.task import RunExecuteResponse
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Methods:
|
|
240
|
+
|
|
241
|
+
- <code title="post /v1/task/run">client.task.run.<a href="./src/anchorbrowser/resources/task/run.py">execute</a>(\*\*<a href="src/anchorbrowser/types/task/run_execute_params.py">params</a>) -> <a href="./src/anchorbrowser/types/task/run_execute_response.py">RunExecuteResponse</a></code>
|
|
@@ -1,25 +1,26 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "anchorbrowser"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.2.0"
|
|
4
4
|
description = "The official Python library for the anchorbrowser API"
|
|
5
5
|
dynamic = ["readme"]
|
|
6
6
|
license = "Apache-2.0"
|
|
7
|
-
authors = [
|
|
7
|
+
authors = [
|
|
8
|
+
{ name = "Anchorbrowser", email = "support@anchorbrowser.io" },
|
|
9
|
+
]
|
|
8
10
|
dependencies = [
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
"httpx>=0.28.1",
|
|
12
|
+
"pydantic>=1.9.0, <3",
|
|
13
|
+
"typing-extensions>=4.15.0",
|
|
14
|
+
"anyio>=3.5.0, <5",
|
|
15
|
+
"distro>=1.7.0, <2",
|
|
16
|
+
"sniffio",
|
|
17
|
+
"websockets>=15.0.1",
|
|
18
|
+
"playwright>=1.55.0",
|
|
17
19
|
]
|
|
18
|
-
requires-python = ">= 3.
|
|
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",
|
|
@@ -31,7 +32,7 @@ classifiers = [
|
|
|
31
32
|
"Operating System :: POSIX :: Linux",
|
|
32
33
|
"Operating System :: Microsoft :: Windows",
|
|
33
34
|
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
34
|
-
"License :: OSI Approved :: Apache Software License"
|
|
35
|
+
"License :: OSI Approved :: Apache Software License"
|
|
35
36
|
]
|
|
36
37
|
|
|
37
38
|
[project.urls]
|
|
@@ -39,25 +40,24 @@ Homepage = "https://github.com/anchorbrowser/AnchorBrowser-SDK-Python"
|
|
|
39
40
|
Repository = "https://github.com/anchorbrowser/AnchorBrowser-SDK-Python"
|
|
40
41
|
|
|
41
42
|
[project.optional-dependencies]
|
|
42
|
-
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.
|
|
43
|
+
aiohttp = ["aiohttp", "httpx_aiohttp>=0.1.9"]
|
|
43
44
|
|
|
44
45
|
[tool.rye]
|
|
45
46
|
managed = true
|
|
46
47
|
# version pins are in requirements-dev.lock
|
|
47
48
|
dev-dependencies = [
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"pytest-xdist>=3.6.1",
|
|
49
|
+
"pyright==1.1.399",
|
|
50
|
+
"mypy",
|
|
51
|
+
"respx",
|
|
52
|
+
"pytest",
|
|
53
|
+
"pytest-asyncio",
|
|
54
|
+
"ruff",
|
|
55
|
+
"time-machine",
|
|
56
|
+
"nox",
|
|
57
|
+
"dirty-equals>=0.6.0",
|
|
58
|
+
"importlib-metadata>=6.7.0",
|
|
59
|
+
"rich>=13.7.1",
|
|
60
|
+
"pytest-xdist>=3.6.1",
|
|
61
61
|
]
|
|
62
62
|
|
|
63
63
|
[tool.rye.scripts]
|
|
@@ -67,17 +67,24 @@ format = { chain = [
|
|
|
67
67
|
"fix:ruff",
|
|
68
68
|
# run formatting again to fix any inconsistencies when imports are stripped
|
|
69
69
|
"format:ruff",
|
|
70
|
-
]
|
|
70
|
+
]}
|
|
71
71
|
"format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md"
|
|
72
72
|
"format:ruff" = "ruff format"
|
|
73
73
|
|
|
74
|
-
"lint" = { chain = [
|
|
74
|
+
"lint" = { chain = [
|
|
75
|
+
"check:ruff",
|
|
76
|
+
"typecheck",
|
|
77
|
+
"check:importable",
|
|
78
|
+
]}
|
|
75
79
|
"check:ruff" = "ruff check ."
|
|
76
80
|
"fix:ruff" = "ruff check --fix ."
|
|
77
81
|
|
|
78
82
|
"check:importable" = "python -c 'import anchorbrowser'"
|
|
79
83
|
|
|
80
|
-
typecheck = { chain = [
|
|
84
|
+
typecheck = { chain = [
|
|
85
|
+
"typecheck:pyright",
|
|
86
|
+
"typecheck:mypy"
|
|
87
|
+
]}
|
|
81
88
|
"typecheck:pyright" = "pyright"
|
|
82
89
|
"typecheck:verify-types" = "pyright --verifytypes anchorbrowser --ignoreexternal"
|
|
83
90
|
"typecheck:mypy" = "mypy ."
|
|
@@ -87,7 +94,9 @@ requires = ["hatchling==1.26.3", "hatch-fancy-pypi-readme"]
|
|
|
87
94
|
build-backend = "hatchling.build"
|
|
88
95
|
|
|
89
96
|
[tool.hatch.build]
|
|
90
|
-
include = [
|
|
97
|
+
include = [
|
|
98
|
+
"src/*"
|
|
99
|
+
]
|
|
91
100
|
|
|
92
101
|
[tool.hatch.build.targets.wheel]
|
|
93
102
|
packages = ["src/anchorbrowser"]
|
|
@@ -124,7 +133,9 @@ addopts = "--tb=short -n auto"
|
|
|
124
133
|
xfail_strict = true
|
|
125
134
|
asyncio_mode = "auto"
|
|
126
135
|
asyncio_default_fixture_loop_scope = "session"
|
|
127
|
-
filterwarnings = [
|
|
136
|
+
filterwarnings = [
|
|
137
|
+
"error"
|
|
138
|
+
]
|
|
128
139
|
|
|
129
140
|
[tool.pyright]
|
|
130
141
|
# this enables practically every flag given by pyright.
|
|
@@ -133,7 +144,12 @@ filterwarnings = ["error"]
|
|
|
133
144
|
typeCheckingMode = "strict"
|
|
134
145
|
pythonVersion = "3.8"
|
|
135
146
|
|
|
136
|
-
exclude = [
|
|
147
|
+
exclude = [
|
|
148
|
+
"_dev",
|
|
149
|
+
".venv",
|
|
150
|
+
".nox",
|
|
151
|
+
".git",
|
|
152
|
+
]
|
|
137
153
|
|
|
138
154
|
reportImplicitOverride = true
|
|
139
155
|
reportOverlappingOverload = false
|
|
@@ -141,10 +157,62 @@ reportOverlappingOverload = false
|
|
|
141
157
|
reportImportCycles = false
|
|
142
158
|
reportPrivateUsage = false
|
|
143
159
|
|
|
160
|
+
[tool.mypy]
|
|
161
|
+
pretty = true
|
|
162
|
+
show_error_codes = true
|
|
163
|
+
|
|
164
|
+
# Exclude _files.py because mypy isn't smart enough to apply
|
|
165
|
+
# the correct type narrowing and as this is an internal module
|
|
166
|
+
# it's fine to just use Pyright.
|
|
167
|
+
#
|
|
168
|
+
# We also exclude our `tests` as mypy doesn't always infer
|
|
169
|
+
# types correctly and Pyright will still catch any type errors.
|
|
170
|
+
exclude = ['src/anchorbrowser/_files.py', '_dev/.*.py', 'tests/.*']
|
|
171
|
+
|
|
172
|
+
strict_equality = true
|
|
173
|
+
implicit_reexport = true
|
|
174
|
+
check_untyped_defs = true
|
|
175
|
+
no_implicit_optional = true
|
|
176
|
+
|
|
177
|
+
warn_return_any = true
|
|
178
|
+
warn_unreachable = true
|
|
179
|
+
warn_unused_configs = true
|
|
180
|
+
|
|
181
|
+
# Turn these options off as it could cause conflicts
|
|
182
|
+
# with the Pyright options.
|
|
183
|
+
warn_unused_ignores = false
|
|
184
|
+
warn_redundant_casts = false
|
|
185
|
+
|
|
186
|
+
disallow_any_generics = true
|
|
187
|
+
disallow_untyped_defs = true
|
|
188
|
+
disallow_untyped_calls = true
|
|
189
|
+
disallow_subclassing_any = true
|
|
190
|
+
disallow_incomplete_defs = true
|
|
191
|
+
disallow_untyped_decorators = true
|
|
192
|
+
cache_fine_grained = true
|
|
193
|
+
|
|
194
|
+
# By default, mypy reports an error if you assign a value to the result
|
|
195
|
+
# of a function call that doesn't return anything. We do this in our test
|
|
196
|
+
# cases:
|
|
197
|
+
# ```
|
|
198
|
+
# result = ...
|
|
199
|
+
# assert result is None
|
|
200
|
+
# ```
|
|
201
|
+
# Changing this codegen to make mypy happy would increase complexity
|
|
202
|
+
# and would not be worth it.
|
|
203
|
+
disable_error_code = "func-returns-value,overload-cannot-match"
|
|
204
|
+
|
|
205
|
+
# https://github.com/python/mypy/issues/12162
|
|
206
|
+
[[tool.mypy.overrides]]
|
|
207
|
+
module = "black.files.*"
|
|
208
|
+
ignore_errors = true
|
|
209
|
+
ignore_missing_imports = true
|
|
210
|
+
|
|
211
|
+
|
|
144
212
|
[tool.ruff]
|
|
145
213
|
line-length = 120
|
|
146
214
|
output-format = "grouped"
|
|
147
|
-
target-version = "
|
|
215
|
+
target-version = "py38"
|
|
148
216
|
|
|
149
217
|
[tool.ruff.format]
|
|
150
218
|
docstring-code-format = true
|
|
@@ -157,6 +225,8 @@ select = [
|
|
|
157
225
|
"B",
|
|
158
226
|
# remove unused imports
|
|
159
227
|
"F401",
|
|
228
|
+
# check for missing future annotations
|
|
229
|
+
"FA102",
|
|
160
230
|
# bare except statements
|
|
161
231
|
"E722",
|
|
162
232
|
# unused arguments
|
|
@@ -179,6 +249,8 @@ unfixable = [
|
|
|
179
249
|
"T203",
|
|
180
250
|
]
|
|
181
251
|
|
|
252
|
+
extend-safe-fixes = ["FA102"]
|
|
253
|
+
|
|
182
254
|
[tool.ruff.lint.flake8-tidy-imports.banned-api]
|
|
183
255
|
"functools.lru_cache".msg = "This function does not retain type information for the wrapped function's arguments; The `lru_cache` function from `_utils` should be used instead"
|
|
184
256
|
|