diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2022-12-08 05:40:45 -0500 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2022-12-08 07:40:23 -0500 |
commit | ee87d0e3568be01adfa6e159280bff02c9744e17 (patch) | |
tree | 30baf9cd3b5fca0bbea8e551658ecda80e5f67bc /coverage/html.py | |
parent | 71050957c68a7e1eaece7134be256535173e9b85 (diff) | |
download | python-coveragepy-git-ee87d0e3568be01adfa6e159280bff02c9744e17.tar.gz |
wip: parallel html reporting
Diffstat (limited to 'coverage/html.py')
-rw-r--r-- | coverage/html.py | 26 |
1 files changed, 16 insertions, 10 deletions
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.") |