feat: use thread pool
Use multithread to run IO-bounded jobs (e.g. shell command) concurrently.
Part of #545
TODO:
- [x] pass test with j=1
- [x] fuzz with different j
- [x] cli argument
- [x] doc
- [ ] test
- [ ] test time
Codecov Report
Attention: Patch coverage is 76.99115% with 26 lines in your changes missing coverage. Please review.
Project coverage is 90.97%. Comparing base (
3e4b6b3) to head (1da1db7). Report is 22 commits behind head on main.
| Files with missing lines | Patch % | Lines |
|---|---|---|
| src/auditwheel/pool.py | 47.72% | 20 Missing and 3 partials :warning: |
| src/auditwheel/repair.py | 92.30% | 2 Missing and 1 partial :warning: |
Additional details and impacted files
@@ Coverage Diff @@
## main #554 +/- ##
==========================================
- Coverage 92.17% 90.97% -1.20%
==========================================
Files 22 23 +1
Lines 1572 1640 +68
Branches 286 294 +8
==========================================
+ Hits 1449 1492 +43
- Misses 74 95 +21
- Partials 49 53 +4
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
Mark as ready-for-review for it passes all tests.
@oraluben, do you have any timings for this one ? I'd rather not increase the complexity of auditwheel if the improvement is small given maintainer bandwidth.