diff --git a/autogolf/__init__.py b/autogolf/__init__.py index b225068..f94bf71 100644 --- a/autogolf/__init__.py +++ b/autogolf/__init__.py @@ -3,6 +3,7 @@ from functools import partial from itertools import product from multiprocessing import Pool from subprocess import DEVNULL, PIPE, Popen, TimeoutExpired +from time import time from typing import List chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~ ' @@ -106,9 +107,8 @@ def find_script( :returns: list of matching scripts """ candidates = [] - bound_check_script = partial(check_script, pairs, timeout) - out_invalid = [] + bound_check_script = partial(check_script, pairs, timeout) for i in range(max_length + 1): out_invalid.append(open(invalid_prefix + str(i), "w")) @@ -116,6 +116,7 @@ def find_script( chars_count = len(chars) num_tasks = int((chars_count ** (max_length + 1) - 1) / (chars_count - 1)) done_tasks = 0 + start_time = time() with Pool(processes) as pool: for script, status in pool.imap_unordered( @@ -128,7 +129,8 @@ def find_script( if done_tasks % 10000 == 0: print( f"Progress: {done_tasks}/{num_tasks} \ -{done_tasks / num_tasks * 100:.1f}%", +{done_tasks / num_tasks * 100:.1f}% \ +(running for {time() - start_time:.1f}s)", file=out_log, flush=True ) @@ -145,4 +147,5 @@ def find_script( for file in out_invalid: file.close() + print(f"Finished in {time() - start_time:.1f}s", file=out_log, flush=True) return candidates