From ee87d0e3568be01adfa6e159280bff02c9744e17 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Thu, 8 Dec 2022 05:40:45 -0500 Subject: wip: parallel html reporting --- coverage/html.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) (limited to 'coverage/html.py') diff --git a/coverage/html.py b/coverage/html.py index d2409b38..f7d099c0 100644 --- a/coverage/html.py +++ b/coverage/html.py @@ -227,16 +227,22 @@ class HtmlReporter: else: file_be_gone(os.path.join(self.directory, ftr.html_filename)) - for i, ftr in enumerate(files_to_report): - if i == 0: - prev_html = "index.html" - else: - prev_html = files_to_report[i - 1].html_filename - if i == len(files_to_report) - 1: - next_html = "index.html" - else: - next_html = files_to_report[i + 1].html_filename - self.write_html_file(ftr, prev_html, next_html) + import concurrent.futures + with concurrent.futures.ProcessPoolExecutor() as executor: + futures = [] + for i, ftr in enumerate(files_to_report): + if i == 0: + prev_html = "index.html" + else: + prev_html = files_to_report[i - 1].html_filename + if i == len(files_to_report) - 1: + next_html = "index.html" + else: + next_html = files_to_report[i + 1].html_filename + futures.append(executor.submit(self.write_html_file, ftr, prev_html, next_html)) + + for future in futures: + future.result() if not self.all_files_nums: raise NoDataError("No data to report.") -- cgit v1.2.1