MCPcopy Index your code
hub / github.com/omkarcloud/botasaurus / wrapper_browser

Function wrapper_browser

botasaurus/browser_decorator.py:75–323  ·  view source on GitHub ↗
(*args, **kwargs)

Source from the content-addressed store, hash-verified

73
74 @wraps(func)
75 def wrapper_browser(*args, **kwargs) -> Any:
76 print_running()
77
78 nonlocal parallel, data, cache, expires_in, cache_storage, block_images_and_css, block_images, window_size, metadata, add_arguments,chrome_executable_path, extensions, tiny_profile, wait_for_complete_page_load, lang, headless, beep, close_on_crash, async_queue, run_async, profile, proxy, user_agent, reuse_driver, raise_exception, must_raise_exceptions, output, output_formats, max_retry, retry_wait, create_driver, create_error_logs, enable_xvfb_virtual_display, host, port, remove_default_browser_check_argument
79
80 parallel = kwargs.get("parallel", parallel)
81 data = kwargs.get("data", data)
82 cache = kwargs.get("cache", cache)
83 expires_in = kwargs.get("expires_in", expires_in)
84 storage = kwargs.get("cache_storage", cache_storage) or FileCacheStorage
85 block_images = kwargs.get("block_images", block_images)
86 block_images_and_css = kwargs.get("block_images_and_css", block_images_and_css)
87 add_arguments = kwargs.get("add_arguments", add_arguments)
88 chrome_executable_path = kwargs.get("chrome_executable_path", chrome_executable_path)
89 extensions = kwargs.get("extensions", extensions)
90 window_size = kwargs.get("window_size", window_size)
91 metadata = kwargs.get("metadata", metadata)
92 tiny_profile = kwargs.get("tiny_profile", tiny_profile)
93 wait_for_complete_page_load = kwargs.get("wait_for_complete_page_load", wait_for_complete_page_load)
94 lang = kwargs.get("lang", lang)
95 headless = kwargs.get("headless", headless)
96 beep = kwargs.get("beep", beep)
97 close_on_crash = kwargs.get("close_on_crash", close_on_crash)
98 async_queue = kwargs.get("async_queue", async_queue)
99 run_async = kwargs.get("run_async", run_async)
100 profile = kwargs.get("profile", profile)
101 proxy = kwargs.get("proxy", proxy)
102 user_agent = kwargs.get("user_agent", user_agent)
103 reuse_driver = kwargs.get("reuse_driver", reuse_driver)
104 dont_close_driver = reuse_driver
105 output = kwargs.get("output", output)
106 output_formats = kwargs.get("output_formats", output_formats)
107 max_retry = kwargs.get("max_retry", max_retry)
108 retry_wait = kwargs.get("retry_wait", retry_wait)
109 # A Special Option passed by botasaurus server which prevents caching at database level
110 return_dont_cache_as_is = kwargs.get("return_dont_cache_as_is", False)
111 create_error_logs = kwargs.get("create_error_logs", create_error_logs)
112 raise_exception = kwargs.get("raise_exception", raise_exception)
113 create_driver = kwargs.get("create_driver", create_driver)
114 enable_xvfb_virtual_display = kwargs.get("enable_xvfb_virtual_display", enable_xvfb_virtual_display)
115 host = kwargs.get("host", host)
116 port = kwargs.get("port", port)
117 remove_default_browser_check_argument = kwargs.get("remove_default_browser_check_argument", remove_default_browser_check_argument)
118
119 fn_name = func.__name__
120
121 if isinstance(proxy, list):
122 from itertools import cycle
123 cycled_proxy = cycle(proxy)
124 else:
125 cycled_proxy = None
126
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)

Callers 2

thread_targetFunction · 0.85
_workerFunction · 0.85

Calls 6

print_runningFunction · 0.90
run_parallelFunction · 0.90
write_outputFunction · 0.90
close_driver_poolFunction · 0.85
run_taskFunction · 0.70
getMethod · 0.45

Tested by

no test coverage detected