Update coveragepy and use sys.monitoring interface #7042
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In general, collecting code coverage (
pytest --cov
) makes the test suite run quite a bit slower.However, the new version of
coveragepy
allows to use a different approach based on the newsys.monitoring
interface (3.12+) which is much faster (almost free), see https://nedbatchelder.com/blog/202312/coveragepy_with_sysmonitoring.htmlhttps://coverage.readthedocs.io/en/7.10.7/config.html#run-core
Besides that,
if TYPE_CHECKING:
blocks are now automatically ignored, resulting in a "increase" of overall coverage (less uncovered lines of code).This PR drops the runtime of the Py3.9(psql) job from 26 to 20 minutes! 🎉