1- # mypy: disable-error-code="no-untyped-call,no-untyped-def"
21import argparse
32import atexit
43import base64
3938
4039
4140class ChromeDriverManager :
42- def get_chrome_driver (self , path_to_cache_dir : str ):
43- chrome_version = self .get_chrome_version ()
41+ def get_chrome_driver (self , path_to_cache_dir : str ) -> str :
42+ chrome_version : Optional [ str ] = self .get_chrome_version ()
4443
4544 # If Web Driver Manager cannot detect Chrome, it returns None.
4645 if chrome_version is None :
@@ -104,11 +103,11 @@ def get_chrome_driver(self, path_to_cache_dir: str):
104103
105104 @staticmethod
106105 def _download_chromedriver (
107- chrome_major_version ,
106+ chrome_major_version : str ,
108107 os_type : str ,
109- path_to_driver_cache_dir ,
110- path_to_cached_chrome_driver ,
111- ):
108+ path_to_driver_cache_dir : str ,
109+ path_to_cached_chrome_driver : str ,
110+ ) -> str :
112111 url = "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json"
113112 response = ChromeDriverManager .send_http_get_request (url ).json ()
114113
@@ -160,14 +159,14 @@ def _download_chromedriver(
160159 return path_to_cached_chrome_driver
161160
162161 @staticmethod
163- def send_http_get_request (url , params = None , ** kwargs ) -> Response :
162+ def send_http_get_request (url : str ) -> Response :
164163 last_error : Optional [Exception ] = None
165164 for attempt in range (1 , 4 ):
166165 print ( # noqa: T201
167166 f"html2print: sending GET request attempt { attempt } : { url } "
168167 )
169168 try :
170- return requests .get (url , params , timeout = (5 , 5 ), ** kwargs )
169+ return requests .get (url , timeout = (5 , 5 ))
171170 except requests .exceptions .ConnectTimeout as connect_timeout_ :
172171 last_error = connect_timeout_
173172 except requests .exceptions .ReadTimeout as read_timeout_ :
@@ -182,7 +181,7 @@ def send_http_get_request(url, params=None, **kwargs) -> Response:
182181 )
183182
184183 @staticmethod
185- def get_chrome_version ():
184+ def get_chrome_version () -> Optional [ str ] :
186185 # Special case: GitHub Actions macOS CI machines have both
187186 # Google Chrome for Testing and normal Google Chrome installed, and
188187 # sometimes their versions are of different major version families.
@@ -224,16 +223,16 @@ def get_chrome_version():
224223 f"html2print: Error getting Google Chrome for Testing version: { e } "
225224 )
226225
227- os_manager = OperationSystemManager (os_type = None )
228- version = os_manager .get_browser_version_from_os (ChromeType .GOOGLE )
226+ os_manager = OperationSystemManager (os_type = None ) # type: ignore[no-untyped-call]
227+ version : str = os_manager .get_browser_version_from_os (ChromeType .GOOGLE ) # type: ignore[no-untyped-call]
229228 return version
230229
231230
232231def get_inches_from_millimeters (mm : float ) -> float :
233232 return mm / 25.4
234233
235234
236- def get_pdf_from_html (driver , url ) -> bytes :
235+ def get_pdf_from_html (driver : webdriver . Chrome , url : str ) -> bytes :
237236 print (f"html2print: opening URL with ChromeDriver: { url } " ) # noqa: T201
238237
239238 driver .get (url )
@@ -272,7 +271,7 @@ class Done(Exception):
272271 logs : List [Dict [str , str ]] = []
273272 try :
274273 while True :
275- logs = driver .get_log ("browser" )
274+ logs = driver .get_log ("browser" ) # type: ignore[no-untyped-call]
276275 for entry_ in logs :
277276 if "HTML2PDF4DOC time" in entry_ ["message" ]:
278277 print ("success: HTML2PDF completed its job." ) # noqa: T201
@@ -305,18 +304,20 @@ class Done(Exception):
305304
306305
307306def create_webdriver (
308- chromedriver : Optional [str ],
307+ chromedriver_argument : Optional [str ],
309308 path_to_cache_dir : str ,
310309 page_load_timeout : int ,
311310 debug : bool = False ,
312311) -> webdriver .Chrome :
313312 print ("html2print: creating ChromeDriver service." , flush = True ) # noqa: T201
314- if chromedriver is None :
313+
314+ path_to_chrome : str
315+ if chromedriver_argument is None :
315316 path_to_chrome = ChromeDriverManager ().get_chrome_driver (
316317 path_to_cache_dir
317318 )
318319 else :
319- path_to_chrome = chromedriver
320+ path_to_chrome = chromedriver_argument
320321 print (f"html2print: ChromeDriver available at path: { path_to_chrome } " ) # noqa: T201
321322
322323 if debug :
@@ -364,7 +365,7 @@ def create_webdriver(
364365 return driver
365366
366367
367- def main ():
368+ def main () -> None :
368369 if not os .path .isfile (PATH_TO_HTML2PDF_JS ):
369370 raise RuntimeError (
370371 f"Corrupted html2print package bundle. "
@@ -461,15 +462,15 @@ def main():
461462 path_to_cache_dir = (
462463 args .cache_dir if args .cache_dir is not None else DEFAULT_CACHE_DIR
463464 )
464- driver = create_webdriver (
465+ driver : webdriver . Chrome = create_webdriver (
465466 args .chromedriver ,
466467 path_to_cache_dir ,
467468 page_load_timeout ,
468469 debug = args .debug ,
469470 )
470471
471472 @atexit .register
472- def exit_handler ():
473+ def exit_handler () -> None :
473474 print ("html2print: exit handler: quitting the ChromeDriver." ) # noqa: T201
474475 driver .quit ()
475476
0 commit comments