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.
Files changed (185) hide show
  1. anchorbrowser-0.2.0/.release-please-manifest.json +3 -0
  2. anchorbrowser-0.2.0/CHANGELOG.md +71 -0
  3. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/PKG-INFO +13 -14
  4. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/README.md +6 -6
  5. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/api.md +77 -5
  6. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/pyproject.toml +106 -34
  7. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/requirements-dev.lock +13 -28
  8. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/requirements.lock +12 -38
  9. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/__init__.py +3 -1
  10. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_base_client.py +16 -13
  11. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_client.py +38 -9
  12. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_compat.py +48 -48
  13. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_files.py +4 -4
  14. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_models.py +54 -45
  15. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_qs.py +7 -7
  16. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_types.py +53 -12
  17. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/__init__.py +9 -2
  18. anchorbrowser-0.2.0/src/anchorbrowser/_utils/_compat.py +45 -0
  19. anchorbrowser-0.2.0/src/anchorbrowser/_utils/_datetime_parse.py +136 -0
  20. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_transform.py +13 -3
  21. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_typing.py +6 -1
  22. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_utils.py +4 -5
  23. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_version.py +1 -1
  24. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/lib/browser.py +1 -1
  25. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/__init__.py +42 -0
  26. anchorbrowser-0.2.0/src/anchorbrowser/resources/batch_sessions.py +288 -0
  27. anchorbrowser-0.2.0/src/anchorbrowser/resources/events.py +270 -0
  28. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/extensions.py +9 -9
  29. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/profiles.py +24 -150
  30. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/__init__.py +14 -0
  31. anchorbrowser-0.2.0/src/anchorbrowser/resources/sessions/agent/__init__.py +33 -0
  32. anchorbrowser-0.2.0/src/anchorbrowser/resources/sessions/agent/agent.py +273 -0
  33. anchorbrowser-0.2.0/src/anchorbrowser/resources/sessions/agent/files.py +280 -0
  34. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/all.py +5 -5
  35. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/clipboard.py +5 -5
  36. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/keyboard.py +11 -13
  37. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/mouse.py +12 -244
  38. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/recordings/primary.py +3 -3
  39. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/recordings/recordings.py +7 -7
  40. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/sessions.py +345 -30
  41. anchorbrowser-0.2.0/src/anchorbrowser/resources/task/__init__.py +33 -0
  42. anchorbrowser-0.2.0/src/anchorbrowser/resources/task/run.py +225 -0
  43. anchorbrowser-0.2.0/src/anchorbrowser/resources/task/task.py +358 -0
  44. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/tools.py +107 -37
  45. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/__init__.py +14 -1
  46. anchorbrowser-0.2.0/src/anchorbrowser/types/batch_session_create_params.py +487 -0
  47. anchorbrowser-0.2.0/src/anchorbrowser/types/batch_session_create_response.py +27 -0
  48. anchorbrowser-0.2.0/src/anchorbrowser/types/batch_session_retrieve_response.py +90 -0
  49. anchorbrowser-0.2.0/src/anchorbrowser/types/event_signal_params.py +13 -0
  50. anchorbrowser-0.2.0/src/anchorbrowser/types/event_wait_for_params.py +14 -0
  51. anchorbrowser-0.2.0/src/anchorbrowser/types/event_wait_for_response.py +12 -0
  52. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_manifest.py +6 -1
  53. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/profile_create_params.py +3 -6
  54. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/profile_list_response.py +0 -3
  55. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/profile_retrieve_response.py +0 -3
  56. anchorbrowser-0.2.0/src/anchorbrowser/types/session_create_params.py +475 -0
  57. anchorbrowser-0.2.0/src/anchorbrowser/types/session_list_pages_response.py +25 -0
  58. anchorbrowser-0.2.0/src/anchorbrowser/types/session_retrieve_response.py +46 -0
  59. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_scroll_params.py +3 -0
  60. anchorbrowser-0.2.0/src/anchorbrowser/types/session_upload_file_params.py +14 -0
  61. anchorbrowser-0.2.0/src/anchorbrowser/types/session_upload_file_response.py +17 -0
  62. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/__init__.py +0 -4
  63. anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/__init__.py +7 -0
  64. anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/file_list_response.py +32 -0
  65. anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/file_upload_params.py +14 -0
  66. anchorbrowser-0.2.0/src/anchorbrowser/types/sessions/agent/file_upload_response.py +17 -0
  67. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_shortcut_params.py +2 -2
  68. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recording_list_response.py +4 -8
  69. anchorbrowser-0.2.0/src/anchorbrowser/types/task/__init__.py +6 -0
  70. anchorbrowser-0.2.0/src/anchorbrowser/types/task/run_execute_params.py +324 -0
  71. anchorbrowser-0.2.0/src/anchorbrowser/types/task/run_execute_response.py +33 -0
  72. anchorbrowser-0.2.0/src/anchorbrowser/types/task_create_params.py +317 -0
  73. anchorbrowser-0.2.0/src/anchorbrowser/types/task_create_response.py +345 -0
  74. anchorbrowser-0.2.0/src/anchorbrowser/types/task_list_params.py +15 -0
  75. anchorbrowser-0.2.0/src/anchorbrowser/types/task_list_response.py +361 -0
  76. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_fetch_webpage_params.py +15 -0
  77. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_perform_web_task_params.py +17 -1
  78. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_perform_web_task_response.py +3 -3
  79. anchorbrowser-0.2.0/tests/api_resources/sessions/agent/test_files.py +200 -0
  80. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/recordings/test_primary.py +0 -8
  81. anchorbrowser-0.2.0/tests/api_resources/sessions/test_agent.py +192 -0
  82. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_all.py +12 -12
  83. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_clipboard.py +24 -24
  84. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_keyboard.py +44 -44
  85. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_mouse.py +28 -274
  86. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/test_recordings.py +24 -24
  87. anchorbrowser-0.2.0/tests/api_resources/task/__init__.py +1 -0
  88. anchorbrowser-0.2.0/tests/api_resources/task/test_run.py +154 -0
  89. anchorbrowser-0.2.0/tests/api_resources/test_batch_sessions.py +288 -0
  90. anchorbrowser-0.2.0/tests/api_resources/test_events.py +251 -0
  91. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_extensions.py +46 -46
  92. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_profiles.py +57 -168
  93. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_sessions.py +457 -174
  94. anchorbrowser-0.2.0/tests/api_resources/test_task.py +226 -0
  95. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/test_tools.py +60 -86
  96. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/conftest.py +1 -1
  97. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_client.py +23 -64
  98. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_models.py +24 -24
  99. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_transform.py +17 -10
  100. anchorbrowser-0.2.0/tests/test_utils/test_datetime_parse.py +110 -0
  101. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/utils.py +13 -5
  102. anchorbrowser-0.1.0a3/.release-please-manifest.json +0 -3
  103. anchorbrowser-0.1.0a3/CHANGELOG.md +0 -74
  104. anchorbrowser-0.1.0a3/mypy.ini +0 -50
  105. anchorbrowser-0.1.0a3/src/anchorbrowser/types/profile_update_params.py +0 -27
  106. anchorbrowser-0.1.0a3/src/anchorbrowser/types/session_create_params.py +0 -196
  107. anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_down_params.py +0 -18
  108. anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_down_response.py +0 -11
  109. anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_up_params.py +0 -18
  110. anchorbrowser-0.1.0a3/src/anchorbrowser/types/sessions/mouse_up_response.py +0 -11
  111. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/.gitignore +0 -0
  112. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/CONTRIBUTING.md +0 -0
  113. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/LICENSE +0 -0
  114. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/SECURITY.md +0 -0
  115. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/bin/check-release-environment +0 -0
  116. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/bin/publish-pypi +0 -0
  117. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/examples/.keep +0 -0
  118. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/noxfile.py +0 -0
  119. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/release-please-config.json +0 -0
  120. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_constants.py +0 -0
  121. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_exceptions.py +0 -0
  122. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_resource.py +0 -0
  123. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_response.py +0 -0
  124. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_streaming.py +0 -0
  125. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_logs.py +0 -0
  126. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_proxy.py +0 -0
  127. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_reflection.py +0 -0
  128. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_resources_proxy.py +0 -0
  129. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_streams.py +0 -0
  130. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/_utils/_sync.py +0 -0
  131. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/lib/.keep +0 -0
  132. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/lib/agent.py +0 -0
  133. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/py.typed +0 -0
  134. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/agent.py +0 -0
  135. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/browser.py +0 -0
  136. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/resources/sessions/recordings/__init__.py +0 -0
  137. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_delete_response.py +0 -0
  138. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_list_response.py +0 -0
  139. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_retrieve_response.py +0 -0
  140. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_upload_params.py +0 -0
  141. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/extension_upload_response.py +0 -0
  142. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_copy_response.py +0 -0
  143. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_create_response.py +0 -0
  144. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_drag_and_drop_params.py +0 -0
  145. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_drag_and_drop_response.py +0 -0
  146. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_goto_params.py +0 -0
  147. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_goto_response.py +0 -0
  148. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_paste_params.py +0 -0
  149. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_paste_response.py +0 -0
  150. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_retrieve_downloads_response.py +0 -0
  151. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/session_scroll_response.py +0 -0
  152. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/all_status_response.py +0 -0
  153. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/clipboard_get_response.py +0 -0
  154. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/clipboard_set_params.py +0 -0
  155. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/clipboard_set_response.py +0 -0
  156. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_shortcut_response.py +0 -0
  157. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_type_params.py +0 -0
  158. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/keyboard_type_response.py +0 -0
  159. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_click_params.py +0 -0
  160. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_click_response.py +0 -0
  161. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_double_click_params.py +0 -0
  162. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_double_click_response.py +0 -0
  163. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_move_params.py +0 -0
  164. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/mouse_move_response.py +0 -0
  165. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recording_pause_response.py +0 -0
  166. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recording_resume_response.py +0 -0
  167. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/sessions/recordings/__init__.py +0 -0
  168. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/shared/__init__.py +0 -0
  169. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/shared/success_response.py +0 -0
  170. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_fetch_webpage_response.py +0 -0
  171. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/src/anchorbrowser/types/tool_screenshot_webpage_params.py +0 -0
  172. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/__init__.py +0 -0
  173. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/__init__.py +0 -0
  174. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/__init__.py +0 -0
  175. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/api_resources/sessions/recordings/__init__.py +0 -0
  176. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/sample_file.txt +0 -0
  177. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_deepcopy.py +0 -0
  178. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_extract_files.py +0 -0
  179. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_files.py +0 -0
  180. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_qs.py +0 -0
  181. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_required_args.py +0 -0
  182. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_response.py +0 -0
  183. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_streaming.py +0 -0
  184. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_utils/test_proxy.py +0 -0
  185. {anchorbrowser-0.1.0a3 → anchorbrowser-0.2.0}/tests/test_utils/test_typing.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.2.0"
3
+ }
@@ -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.1.0a3
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.8
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<1,>=0.23.0
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<5,>=4.10
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.8; extra == 'aiohttp'
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 --pre anchorbrowser
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="My API Key"` to your `.env` file
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 --pre anchorbrowser[aiohttp]
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="My 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.extensions.upload(
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 --pre anchorbrowser
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="My API Key"` to your `.env` file
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 --pre anchorbrowser[aiohttp]
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="My 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.extensions.upload(
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.1.0-alpha.3"
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 = [{ name = "Anchorbrowser", email = "support@anchorbrowser.io" }]
7
+ authors = [
8
+ { name = "Anchorbrowser", email = "support@anchorbrowser.io" },
9
+ ]
8
10
  dependencies = [
9
- "httpx>=0.23.0, <1",
10
- "pydantic>=1.9.0, <3",
11
- "typing-extensions>=4.10, <5",
12
- "anyio>=3.5.0, <5",
13
- "distro>=1.7.0, <2",
14
- "sniffio",
15
- "pytest-playwright",
16
- "websockets",
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.8"
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.8"]
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
- "pyright==1.1.399",
49
- "mypy",
50
- "respx",
51
- "pytest",
52
- "pytest-asyncio",
53
- "ruff",
54
- "time-machine",
55
- "nox",
56
- "dirty-equals>=0.6.0",
57
- "importlib-metadata>=6.7.0",
58
- "rich>=13.7.1",
59
- "nest_asyncio==1.6.0",
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 = ["check:ruff", "typecheck", "check:importable"] }
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 = ["typecheck:pyright", "typecheck:mypy"] }
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 = ["src/*"]
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 = ["error"]
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 = ["_dev", ".venv", ".nox"]
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 = "py37"
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