pybiolib 0.2.951__py3-none-any.whl → 1.2.1890__py3-none-any.whl

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 (262) hide show
  1. biolib/__init__.py +357 -11
  2. biolib/_data_record/data_record.py +380 -0
  3. biolib/_index/__init__.py +0 -0
  4. biolib/_index/index.py +55 -0
  5. biolib/_index/query_result.py +103 -0
  6. biolib/_internal/__init__.py +0 -0
  7. biolib/_internal/add_copilot_prompts.py +58 -0
  8. biolib/_internal/add_gui_files.py +81 -0
  9. biolib/_internal/data_record/__init__.py +1 -0
  10. biolib/_internal/data_record/data_record.py +85 -0
  11. biolib/_internal/data_record/push_data.py +116 -0
  12. biolib/_internal/data_record/remote_storage_endpoint.py +43 -0
  13. biolib/_internal/errors.py +5 -0
  14. biolib/_internal/file_utils.py +125 -0
  15. biolib/_internal/fuse_mount/__init__.py +1 -0
  16. biolib/_internal/fuse_mount/experiment_fuse_mount.py +209 -0
  17. biolib/_internal/http_client.py +159 -0
  18. biolib/_internal/lfs/__init__.py +1 -0
  19. biolib/_internal/lfs/cache.py +51 -0
  20. biolib/_internal/libs/__init__.py +1 -0
  21. biolib/_internal/libs/fusepy/__init__.py +1257 -0
  22. biolib/_internal/push_application.py +488 -0
  23. biolib/_internal/runtime.py +22 -0
  24. biolib/_internal/string_utils.py +13 -0
  25. biolib/_internal/templates/__init__.py +1 -0
  26. biolib/_internal/templates/copilot_template/.github/instructions/general-app-knowledge.instructions.md +10 -0
  27. biolib/_internal/templates/copilot_template/.github/instructions/style-general.instructions.md +20 -0
  28. biolib/_internal/templates/copilot_template/.github/instructions/style-python.instructions.md +16 -0
  29. biolib/_internal/templates/copilot_template/.github/instructions/style-react-ts.instructions.md +47 -0
  30. biolib/_internal/templates/copilot_template/.github/prompts/biolib_app_inputs.prompt.md +11 -0
  31. biolib/_internal/templates/copilot_template/.github/prompts/biolib_onboard_repo.prompt.md +19 -0
  32. biolib/_internal/templates/copilot_template/.github/prompts/biolib_run_apps.prompt.md +12 -0
  33. biolib/_internal/templates/dashboard_template/.biolib/config.yml +5 -0
  34. biolib/_internal/templates/github_workflow_template/.github/workflows/biolib.yml +21 -0
  35. biolib/_internal/templates/gitignore_template/.gitignore +10 -0
  36. biolib/_internal/templates/gui_template/.yarnrc.yml +1 -0
  37. biolib/_internal/templates/gui_template/App.tsx +53 -0
  38. biolib/_internal/templates/gui_template/Dockerfile +27 -0
  39. biolib/_internal/templates/gui_template/biolib-sdk.ts +82 -0
  40. biolib/_internal/templates/gui_template/dev-data/output.json +7 -0
  41. biolib/_internal/templates/gui_template/index.css +5 -0
  42. biolib/_internal/templates/gui_template/index.html +13 -0
  43. biolib/_internal/templates/gui_template/index.tsx +10 -0
  44. biolib/_internal/templates/gui_template/package.json +27 -0
  45. biolib/_internal/templates/gui_template/tsconfig.json +24 -0
  46. biolib/_internal/templates/gui_template/vite-plugin-dev-data.ts +50 -0
  47. biolib/_internal/templates/gui_template/vite.config.mts +10 -0
  48. biolib/_internal/templates/init_template/.biolib/config.yml +19 -0
  49. biolib/_internal/templates/init_template/Dockerfile +14 -0
  50. biolib/_internal/templates/init_template/requirements.txt +1 -0
  51. biolib/_internal/templates/init_template/run.py +12 -0
  52. biolib/_internal/templates/init_template/run.sh +4 -0
  53. biolib/_internal/templates/templates.py +25 -0
  54. biolib/_internal/tree_utils.py +106 -0
  55. biolib/_internal/utils/__init__.py +65 -0
  56. biolib/_internal/utils/auth.py +46 -0
  57. biolib/_internal/utils/job_url.py +33 -0
  58. biolib/_internal/utils/multinode.py +263 -0
  59. biolib/_runtime/runtime.py +157 -0
  60. biolib/_session/session.py +44 -0
  61. biolib/_shared/__init__.py +0 -0
  62. biolib/_shared/types/__init__.py +74 -0
  63. biolib/_shared/types/account.py +12 -0
  64. biolib/_shared/types/account_member.py +8 -0
  65. biolib/_shared/types/app.py +9 -0
  66. biolib/_shared/types/data_record.py +40 -0
  67. biolib/_shared/types/experiment.py +32 -0
  68. biolib/_shared/types/file_node.py +17 -0
  69. biolib/_shared/types/push.py +6 -0
  70. biolib/_shared/types/resource.py +37 -0
  71. biolib/_shared/types/resource_deploy_key.py +11 -0
  72. biolib/_shared/types/resource_permission.py +14 -0
  73. biolib/_shared/types/resource_version.py +19 -0
  74. biolib/_shared/types/result.py +14 -0
  75. biolib/_shared/types/typing.py +10 -0
  76. biolib/_shared/types/user.py +19 -0
  77. biolib/_shared/utils/__init__.py +7 -0
  78. biolib/_shared/utils/resource_uri.py +75 -0
  79. biolib/api/__init__.py +6 -0
  80. biolib/api/client.py +168 -0
  81. biolib/app/app.py +252 -49
  82. biolib/app/search_apps.py +45 -0
  83. biolib/biolib_api_client/api_client.py +126 -31
  84. biolib/biolib_api_client/app_types.py +24 -4
  85. biolib/biolib_api_client/auth.py +31 -8
  86. biolib/biolib_api_client/biolib_app_api.py +147 -52
  87. biolib/biolib_api_client/biolib_job_api.py +161 -141
  88. biolib/biolib_api_client/job_types.py +21 -5
  89. biolib/biolib_api_client/lfs_types.py +7 -23
  90. biolib/biolib_api_client/user_state.py +56 -0
  91. biolib/biolib_binary_format/__init__.py +1 -4
  92. biolib/biolib_binary_format/file_in_container.py +105 -0
  93. biolib/biolib_binary_format/module_input.py +24 -7
  94. biolib/biolib_binary_format/module_output_v2.py +149 -0
  95. biolib/biolib_binary_format/remote_endpoints.py +34 -0
  96. biolib/biolib_binary_format/remote_stream_seeker.py +59 -0
  97. biolib/biolib_binary_format/saved_job.py +3 -2
  98. biolib/biolib_binary_format/{attestation_document.py → stdout_and_stderr.py} +8 -8
  99. biolib/biolib_binary_format/system_status_update.py +3 -2
  100. biolib/biolib_binary_format/utils.py +175 -0
  101. biolib/biolib_docker_client/__init__.py +11 -2
  102. biolib/biolib_errors.py +36 -0
  103. biolib/biolib_logging.py +27 -10
  104. biolib/cli/__init__.py +38 -0
  105. biolib/cli/auth.py +46 -0
  106. biolib/cli/data_record.py +164 -0
  107. biolib/cli/index.py +32 -0
  108. biolib/cli/init.py +421 -0
  109. biolib/cli/lfs.py +101 -0
  110. biolib/cli/push.py +50 -0
  111. biolib/cli/run.py +63 -0
  112. biolib/cli/runtime.py +14 -0
  113. biolib/cli/sdk.py +16 -0
  114. biolib/cli/start.py +56 -0
  115. biolib/compute_node/cloud_utils/cloud_utils.py +110 -161
  116. biolib/compute_node/job_worker/cache_state.py +66 -88
  117. biolib/compute_node/job_worker/cache_types.py +1 -6
  118. biolib/compute_node/job_worker/docker_image_cache.py +112 -37
  119. biolib/compute_node/job_worker/executors/__init__.py +0 -3
  120. biolib/compute_node/job_worker/executors/docker_executor.py +532 -199
  121. biolib/compute_node/job_worker/executors/docker_types.py +9 -1
  122. biolib/compute_node/job_worker/executors/types.py +19 -9
  123. biolib/compute_node/job_worker/job_legacy_input_wait_timeout_thread.py +30 -0
  124. biolib/compute_node/job_worker/job_max_runtime_timer_thread.py +3 -5
  125. biolib/compute_node/job_worker/job_storage.py +108 -0
  126. biolib/compute_node/job_worker/job_worker.py +397 -212
  127. biolib/compute_node/job_worker/large_file_system.py +87 -38
  128. biolib/compute_node/job_worker/network_alloc.py +99 -0
  129. biolib/compute_node/job_worker/network_buffer.py +240 -0
  130. biolib/compute_node/job_worker/utilization_reporter_thread.py +197 -0
  131. biolib/compute_node/job_worker/utils.py +9 -24
  132. biolib/compute_node/remote_host_proxy.py +400 -98
  133. biolib/compute_node/utils.py +31 -9
  134. biolib/compute_node/webserver/compute_node_results_proxy.py +189 -0
  135. biolib/compute_node/webserver/proxy_utils.py +28 -0
  136. biolib/compute_node/webserver/webserver.py +130 -44
  137. biolib/compute_node/webserver/webserver_types.py +2 -6
  138. biolib/compute_node/webserver/webserver_utils.py +77 -12
  139. biolib/compute_node/webserver/worker_thread.py +183 -42
  140. biolib/experiments/__init__.py +0 -0
  141. biolib/experiments/experiment.py +356 -0
  142. biolib/jobs/__init__.py +1 -0
  143. biolib/jobs/job.py +741 -0
  144. biolib/jobs/job_result.py +185 -0
  145. biolib/jobs/types.py +50 -0
  146. biolib/py.typed +0 -0
  147. biolib/runtime/__init__.py +14 -0
  148. biolib/sdk/__init__.py +91 -0
  149. biolib/tables.py +34 -0
  150. biolib/typing_utils.py +2 -7
  151. biolib/user/__init__.py +1 -0
  152. biolib/user/sign_in.py +54 -0
  153. biolib/utils/__init__.py +162 -0
  154. biolib/utils/cache_state.py +94 -0
  155. biolib/utils/multipart_uploader.py +194 -0
  156. biolib/utils/seq_util.py +150 -0
  157. biolib/utils/zip/remote_zip.py +640 -0
  158. pybiolib-1.2.1890.dist-info/METADATA +41 -0
  159. pybiolib-1.2.1890.dist-info/RECORD +177 -0
  160. {pybiolib-0.2.951.dist-info → pybiolib-1.2.1890.dist-info}/WHEEL +1 -1
  161. pybiolib-1.2.1890.dist-info/entry_points.txt +2 -0
  162. README.md +0 -17
  163. biolib/app/app_result.py +0 -68
  164. biolib/app/utils.py +0 -62
  165. biolib/biolib-js/0-biolib.worker.js +0 -1
  166. biolib/biolib-js/1-biolib.worker.js +0 -1
  167. biolib/biolib-js/2-biolib.worker.js +0 -1
  168. biolib/biolib-js/3-biolib.worker.js +0 -1
  169. biolib/biolib-js/4-biolib.worker.js +0 -1
  170. biolib/biolib-js/5-biolib.worker.js +0 -1
  171. biolib/biolib-js/6-biolib.worker.js +0 -1
  172. biolib/biolib-js/index.html +0 -10
  173. biolib/biolib-js/main-biolib.js +0 -1
  174. biolib/biolib_api_client/biolib_account_api.py +0 -21
  175. biolib/biolib_api_client/biolib_large_file_system_api.py +0 -108
  176. biolib/biolib_binary_format/aes_encrypted_package.py +0 -42
  177. biolib/biolib_binary_format/module_output.py +0 -58
  178. biolib/biolib_binary_format/rsa_encrypted_aes_package.py +0 -57
  179. biolib/biolib_push.py +0 -114
  180. biolib/cli.py +0 -203
  181. biolib/cli_utils.py +0 -273
  182. biolib/compute_node/cloud_utils/enclave_parent_types.py +0 -7
  183. biolib/compute_node/enclave/__init__.py +0 -2
  184. biolib/compute_node/enclave/enclave_remote_hosts.py +0 -53
  185. biolib/compute_node/enclave/nitro_secure_module_utils.py +0 -64
  186. biolib/compute_node/job_worker/executors/base_executor.py +0 -18
  187. biolib/compute_node/job_worker/executors/pyppeteer_executor.py +0 -173
  188. biolib/compute_node/job_worker/executors/remote/__init__.py +0 -1
  189. biolib/compute_node/job_worker/executors/remote/nitro_enclave_utils.py +0 -81
  190. biolib/compute_node/job_worker/executors/remote/remote_executor.py +0 -51
  191. biolib/lfs.py +0 -196
  192. biolib/pyppeteer/.circleci/config.yml +0 -100
  193. biolib/pyppeteer/.coveragerc +0 -3
  194. biolib/pyppeteer/.gitignore +0 -89
  195. biolib/pyppeteer/.pre-commit-config.yaml +0 -28
  196. biolib/pyppeteer/CHANGES.md +0 -253
  197. biolib/pyppeteer/CONTRIBUTING.md +0 -26
  198. biolib/pyppeteer/LICENSE +0 -12
  199. biolib/pyppeteer/README.md +0 -137
  200. biolib/pyppeteer/docs/Makefile +0 -177
  201. biolib/pyppeteer/docs/_static/custom.css +0 -28
  202. biolib/pyppeteer/docs/_templates/layout.html +0 -10
  203. biolib/pyppeteer/docs/changes.md +0 -1
  204. biolib/pyppeteer/docs/conf.py +0 -299
  205. biolib/pyppeteer/docs/index.md +0 -21
  206. biolib/pyppeteer/docs/make.bat +0 -242
  207. biolib/pyppeteer/docs/reference.md +0 -211
  208. biolib/pyppeteer/docs/server.py +0 -60
  209. biolib/pyppeteer/poetry.lock +0 -1699
  210. biolib/pyppeteer/pyppeteer/__init__.py +0 -135
  211. biolib/pyppeteer/pyppeteer/accessibility.py +0 -286
  212. biolib/pyppeteer/pyppeteer/browser.py +0 -401
  213. biolib/pyppeteer/pyppeteer/browser_fetcher.py +0 -194
  214. biolib/pyppeteer/pyppeteer/command.py +0 -22
  215. biolib/pyppeteer/pyppeteer/connection/__init__.py +0 -242
  216. biolib/pyppeteer/pyppeteer/connection/cdpsession.py +0 -101
  217. biolib/pyppeteer/pyppeteer/coverage.py +0 -346
  218. biolib/pyppeteer/pyppeteer/device_descriptors.py +0 -787
  219. biolib/pyppeteer/pyppeteer/dialog.py +0 -79
  220. biolib/pyppeteer/pyppeteer/domworld.py +0 -597
  221. biolib/pyppeteer/pyppeteer/emulation_manager.py +0 -53
  222. biolib/pyppeteer/pyppeteer/errors.py +0 -48
  223. biolib/pyppeteer/pyppeteer/events.py +0 -63
  224. biolib/pyppeteer/pyppeteer/execution_context.py +0 -156
  225. biolib/pyppeteer/pyppeteer/frame/__init__.py +0 -299
  226. biolib/pyppeteer/pyppeteer/frame/frame_manager.py +0 -306
  227. biolib/pyppeteer/pyppeteer/helpers.py +0 -245
  228. biolib/pyppeteer/pyppeteer/input.py +0 -371
  229. biolib/pyppeteer/pyppeteer/jshandle.py +0 -598
  230. biolib/pyppeteer/pyppeteer/launcher.py +0 -683
  231. biolib/pyppeteer/pyppeteer/lifecycle_watcher.py +0 -169
  232. biolib/pyppeteer/pyppeteer/models/__init__.py +0 -103
  233. biolib/pyppeteer/pyppeteer/models/_protocol.py +0 -12460
  234. biolib/pyppeteer/pyppeteer/multimap.py +0 -82
  235. biolib/pyppeteer/pyppeteer/network_manager.py +0 -678
  236. biolib/pyppeteer/pyppeteer/options.py +0 -8
  237. biolib/pyppeteer/pyppeteer/page.py +0 -1728
  238. biolib/pyppeteer/pyppeteer/pipe_transport.py +0 -59
  239. biolib/pyppeteer/pyppeteer/target.py +0 -147
  240. biolib/pyppeteer/pyppeteer/task_queue.py +0 -24
  241. biolib/pyppeteer/pyppeteer/timeout_settings.py +0 -36
  242. biolib/pyppeteer/pyppeteer/tracing.py +0 -93
  243. biolib/pyppeteer/pyppeteer/us_keyboard_layout.py +0 -305
  244. biolib/pyppeteer/pyppeteer/util.py +0 -18
  245. biolib/pyppeteer/pyppeteer/websocket_transport.py +0 -47
  246. biolib/pyppeteer/pyppeteer/worker.py +0 -101
  247. biolib/pyppeteer/pyproject.toml +0 -97
  248. biolib/pyppeteer/spell.txt +0 -137
  249. biolib/pyppeteer/tox.ini +0 -72
  250. biolib/pyppeteer/utils/generate_protocol_types.py +0 -603
  251. biolib/start_cli.py +0 -7
  252. biolib/utils.py +0 -47
  253. biolib/validators/validate_app_version.py +0 -183
  254. biolib/validators/validate_argument.py +0 -134
  255. biolib/validators/validate_module.py +0 -323
  256. biolib/validators/validate_zip_file.py +0 -40
  257. biolib/validators/validator_utils.py +0 -103
  258. pybiolib-0.2.951.dist-info/LICENSE +0 -21
  259. pybiolib-0.2.951.dist-info/METADATA +0 -61
  260. pybiolib-0.2.951.dist-info/RECORD +0 -153
  261. pybiolib-0.2.951.dist-info/entry_points.txt +0 -3
  262. /LICENSE → /pybiolib-1.2.1890.dist-info/licenses/LICENSE +0 -0
@@ -1,169 +0,0 @@
1
- #!/usr/bin/env python3
2
- # -*- coding: utf-8 -*-
3
-
4
- """
5
- Lifecycle Watcher module
6
-
7
- puppeteer equivalent: lib/LifecycleWatcher.js
8
- """
9
-
10
- import asyncio
11
- from functools import partial
12
- from typing import TYPE_CHECKING, Awaitable, List, Optional, Union
13
-
14
- from biolib.pyppeteer.pyppeteer import helpers
15
- from biolib.pyppeteer.pyppeteer.errors import BrowserError, PageError, TimeoutError
16
- from biolib.pyppeteer.pyppeteer.events import Events
17
- from biolib.pyppeteer.pyppeteer.helpers import safe_future_set_result
18
- from biolib.pyppeteer.pyppeteer.models import WaitTargets
19
- from biolib.pyppeteer.pyppeteer.network_manager import Request, Response
20
-
21
- if TYPE_CHECKING:
22
- from pyppeteer.frame import Frame, FrameManager
23
-
24
- pyppeteerToProtocolLifecycle = {
25
- 'load': 'load',
26
- 'domcontentloaded': 'DOMContentLoaded',
27
- 'documentloaded': 'DOMContentLoaded',
28
- 'networkidle0': 'networkIdle',
29
- 'networkidle2': 'networkAlmostIdle',
30
- }
31
-
32
-
33
- class LifecycleWatcher:
34
- """LifecycleWatcher class."""
35
-
36
- def __init__(
37
- self, frameManager: 'FrameManager', frame: 'Frame', timeout: Optional[float], waitUntil: WaitTargets = 'load',
38
- ) -> None:
39
- """Make new LifecycleWatcher"""
40
- self._expectedLifecycle = []
41
- if isinstance(waitUntil, str):
42
- waitUntil = [waitUntil]
43
- for value in waitUntil:
44
- try:
45
- self._expectedLifecycle.append(pyppeteerToProtocolLifecycle[value])
46
- except KeyError:
47
- raise KeyError(
48
- f'Unknown value for waitUntil: "{value}", it\'s possible "{value}" is no longer supported'
49
- )
50
-
51
- self._futures = []
52
- self._frameManager = frameManager
53
- self._frame = frame
54
- self._initialLoaderId = frame._loaderId
55
- self._timeout = timeout
56
- self._navigationRequest: Optional[Request] = None
57
- self._hasSameDocumentNavigation = False
58
- self._eventListeners = [
59
- helpers.addEventListener(
60
- self._frameManager._client,
61
- Events.CDPSession.Disconnected,
62
- partial(self._terminate, BrowserError('Navigation failed because browser has disconnected')),
63
- ),
64
- helpers.addEventListener(
65
- self._frameManager, Events.FrameManager.LifecycleEvent, self._checkLifecycleComplete,
66
- ),
67
- helpers.addEventListener(
68
- self._frameManager, Events.FrameManager.FrameNavigatedWithinDocument, self._navigatedWithinDocument,
69
- ),
70
- helpers.addEventListener(self._frameManager, Events.FrameManager.FrameDetached, self._onFrameDetached, ),
71
- helpers.addEventListener(
72
- self._frameManager.networkManager, Events.NetworkManager.Request, self._onRequest,
73
- ),
74
- ]
75
- self.loop = self._frameManager._client.loop
76
-
77
- self._lifecycleFuture = self.loop.create_future()
78
- self._sameDocumentNavigationFuture = self.loop.create_future()
79
- self._newDocumentNavigationFuture = self.loop.create_future()
80
- self._terminationFuture = self.loop.create_future()
81
-
82
- self._timeoutFuture = self._createTimeoutFuture()
83
-
84
- for class_attr in dir(self):
85
- if class_attr.endswith('Future'):
86
- self._futures.append(self.__getattribute__(class_attr))
87
-
88
- self._checkLifecycleComplete()
89
-
90
- @property
91
- def lifecycleFuture(self) -> Awaitable[None]:
92
- return self._lifecycleFuture
93
-
94
- @property
95
- def sameDocumentNavigationFuture(self) -> Awaitable[None]:
96
- return self._sameDocumentNavigationFuture
97
-
98
- @property
99
- def newDocumentNavigationFuture(self) -> Awaitable[None]:
100
- return self._newDocumentNavigationFuture
101
-
102
- def _onRequest(self, request: Request) -> None:
103
- if request.frame == self._frame and request.isNavigationRequest:
104
- self._navigationRequest = request
105
-
106
- def _onFrameDetached(self, frame: 'Frame' = None) -> None:
107
- if frame == self._frame:
108
- self._terminationFuture.set_exception(PageError('Navigating frame was detached'))
109
- else:
110
- self._checkLifecycleComplete()
111
-
112
- def _terminate(self, error: Exception) -> None:
113
- self._terminationFuture.set_result(error)
114
-
115
- def navigationResponse(self) -> Optional[Response]:
116
- return self._navigationRequest.response if self._navigationRequest else None
117
-
118
- @property
119
- def timeoutOrTerminationFuture(self) -> Awaitable:
120
- return self._frame._client.loop.create_task(helpers.future_race(self._timeoutFuture, self._terminationFuture))
121
-
122
- def _createTimeoutFuture(self) -> Awaitable[None]:
123
- self._maximumTimerFuture = self.loop.create_future()
124
- if self._timeout:
125
- errorMessage = f'Navigation Timeout Exceeded: {self._timeout}ms exceeded.'
126
-
127
- async def _timeout_func() -> None:
128
- await asyncio.sleep(self._timeout / 1000)
129
- self._maximumTimerFuture.set_exception(TimeoutError(errorMessage))
130
-
131
- self._timeoutTimerFuture: Union[asyncio.Task, asyncio.Future] = self.loop.create_task(_timeout_func())
132
- else:
133
- self._timeoutTimerFuture = self.loop.create_future()
134
- return self._maximumTimerFuture
135
-
136
- def _navigatedWithinDocument(self, frame: 'Frame' = None) -> None:
137
- # note: frame never appears to specified, left in for compatibility
138
- if frame == self._frame:
139
- self._hasSameDocumentNavigation = True
140
- self._checkLifecycleComplete()
141
-
142
- def _checkLifecycleComplete(self, _=None) -> None:
143
- if not self._checkLifecycle(self._frame, self._expectedLifecycle):
144
- return
145
- # python can set future only once but this might be called multiple times
146
- safe_future_set_result(self._lifecycleFuture, None)
147
- if self._frame._loaderId == self._initialLoaderId and not self._hasSameDocumentNavigation:
148
- return
149
- if self._hasSameDocumentNavigation:
150
- safe_future_set_result(self._sameDocumentNavigationFuture, None)
151
- if self._frame._loaderId != self._initialLoaderId:
152
- safe_future_set_result(self._newDocumentNavigationFuture, None)
153
-
154
- def _checkLifecycle(self, frame: 'Frame', expectedLifecycle: List[str]) -> bool:
155
- for event in expectedLifecycle:
156
- if event not in frame._lifecycleEvents:
157
- return False
158
- for child in frame.childFrames:
159
- if not self._checkLifecycle(child, expectedLifecycle):
160
- return False
161
- return True
162
-
163
- def dispose(self) -> None:
164
- helpers.removeEventListeners(self._eventListeners)
165
- for fut in self._futures:
166
- try:
167
- fut.cancel()
168
- except AttributeError:
169
- continue
@@ -1,103 +0,0 @@
1
- """Type definitions for widely used types"""
2
- import os
3
- import sys
4
- from pathlib import Path
5
- from typing import TYPE_CHECKING, Any, Dict, List, Sequence, Union
6
-
7
- from biolib.pyppeteer.pyppeteer.models._protocol import Protocol
8
-
9
- if sys.version_info < (3, 8):
10
- from typing_extensions import TypedDict, Literal
11
- else:
12
- from typing import TypedDict, Literal
13
-
14
- if TYPE_CHECKING:
15
- pass
16
-
17
-
18
- class BrowserOptions(TypedDict, total=False):
19
- ignoreHTTPSErrors: bool
20
- defaultViewport: Protocol.Page.Viewport
21
- slowMo: float
22
-
23
-
24
- class ChromeArgOptions(TypedDict, total=False):
25
- headless: bool
26
- args: Sequence[str]
27
- userDataDir: str
28
- devtools: bool
29
-
30
-
31
- class LaunchOptions(TypedDict, total=False):
32
- executablePath: str
33
- ignoreDefaultArgs: Union[Literal[False], Sequence[str]]
34
- handleSIGINT: bool
35
- handleSIGTERM: bool
36
- handleSIGHUP: bool
37
- timeout: float
38
- dumpio: bool
39
- env: Dict[str, Union[str, bool]]
40
-
41
-
42
- class DeviceDetails(TypedDict):
43
- userAgent: str
44
- viewport: Protocol.Page.Viewport
45
-
46
-
47
- class ScreenshotClip(TypedDict, total=False):
48
- x: float
49
- y: float
50
- width: float
51
- height: float
52
- scale: float
53
-
54
-
55
- class CoverageResult(TypedDict):
56
- url: str
57
- ranges: Any
58
- text: str
59
-
60
-
61
- class RevisionInfo(TypedDict):
62
- folderPath: Union[Path, os.PathLike]
63
- executablePath: Union[Path, os.PathLike]
64
- url: str
65
- local: bool
66
- revision: str
67
-
68
-
69
- class NestedRangeItemInput(TypedDict):
70
- startOffset: float
71
- endOffset: float
72
- count: int
73
-
74
-
75
- class NestedRangeItem(TypedDict):
76
- start: int
77
- end: int
78
-
79
-
80
- WebPermission = Literal[
81
- 'geolocation',
82
- 'midi',
83
- 'notifications',
84
- 'push',
85
- 'camera',
86
- 'microphone',
87
- 'background-sync',
88
- 'ambient-light-sensor',
89
- 'accelerometer',
90
- 'gyroscope',
91
- 'magnetometer',
92
- 'accessibility-events',
93
- 'clipboard-read',
94
- 'clipboard-write',
95
- 'payment-handler',
96
- 'midi-sysex',
97
- ]
98
- JSFunctionArg = Union['JSHandle', str, int, float, bool, None, Dict[str, Any], List[Any]]
99
- Devices = Dict[str, DeviceDetails]
100
- Platform = Literal['linux', 'mac', 'win32', 'win64']
101
- MouseButton = Literal['left', 'right', 'middle']
102
- WaitTarget = Literal['load', 'domcontentloaded', 'networkidle0', 'networkidle2']
103
- WaitTargets = Union[WaitTarget, Sequence[WaitTarget]]