summaryrefslogtreecommitdiff
path: root/coverage/html.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2022-12-08 05:40:45 -0500
committerNed Batchelder <ned@nedbatchelder.com>2022-12-08 07:40:23 -0500
commitee87d0e3568be01adfa6e159280bff02c9744e17 (patch)
tree30baf9cd3b5fca0bbea8e551658ecda80e5f67bc /coverage/html.py
parent71050957c68a7e1eaece7134be256535173e9b85 (diff)
downloadpython-coveragepy-git-ee87d0e3568be01adfa6e159280bff02c9744e17.tar.gz
wip: parallel html reporting
Diffstat (limited to 'coverage/html.py')
-rw-r--r--coverage/html.py26
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.")