(data, retry_attempt, retry_driver=None)
| 127 | _driver_pool = wrapper_browser._driver_pool if dont_close_driver else [] |
| 128 | |
| 129 | def run_task(data, retry_attempt, retry_driver=None) -> Any: |
| 130 | if cache is True: |
| 131 | # Returns {"data": value} or None |
| 132 | cached = storage.get(fn_name, data, expires_in) |
| 133 | if cached is not None: |
| 134 | return cached["data"] |
| 135 | |
| 136 | |
| 137 | evaluated_window_size = ( |
| 138 | window_size(data) if callable(window_size) else window_size |
| 139 | ) |
| 140 | evaluated_user_agent = ( |
| 141 | user_agent(data) if callable(user_agent) else user_agent |
| 142 | ) |
| 143 | if cycled_proxy: |
| 144 | evaluated_proxy = next(cycled_proxy) |
| 145 | else: |
| 146 | evaluated_proxy = evaluate_proxy(proxy(data) if callable(proxy) else proxy) |
| 147 | evaluated_profile = profile(data) if callable(profile) else profile |
| 148 | evaluated_lang = lang(data) if callable(lang) else lang |
| 149 | evaluated_headless = headless(data) if callable(headless) else headless |
| 150 | evaluated_extensions = extensions(data) if callable(extensions) else extensions |
| 151 | |
| 152 | if evaluated_profile is not None: |
| 153 | evaluated_profile = str(evaluated_profile) |
| 154 | if retry_driver is not None: |
| 155 | driver = retry_driver |
| 156 | elif reuse_driver and len(_driver_pool) > 0: |
| 157 | driver = _driver_pool.pop() |
| 158 | else: |
| 159 | if callable(add_arguments): |
| 160 | args = add_arguments(data) |
| 161 | if not isinstance(args, list): |
| 162 | raise Exception("add_arguments must return a list of arguments") |
| 163 | else: |
| 164 | args = add_arguments |
| 165 | |
| 166 | driver = Driver( |
| 167 | headless=evaluated_headless, |
| 168 | proxy=evaluated_proxy, |
| 169 | profile=evaluated_profile, |
| 170 | tiny_profile=tiny_profile, |
| 171 | block_images=block_images, |
| 172 | block_images_and_css=block_images_and_css, |
| 173 | wait_for_complete_page_load=wait_for_complete_page_load, |
| 174 | chrome_executable_path = chrome_executable_path, |
| 175 | extensions=evaluated_extensions, |
| 176 | arguments=args, |
| 177 | user_agent=evaluated_user_agent, |
| 178 | window_size=evaluated_window_size, |
| 179 | lang=evaluated_lang, |
| 180 | beep=beep, |
| 181 | enable_xvfb_virtual_display=enable_xvfb_virtual_display, |
| 182 | host=host, |
| 183 | port=port, |
| 184 | remove_default_browser_check_argument=remove_default_browser_check_argument, |
| 185 | ) |
| 186 |
no test coverage detected