Support Coverage runs using sys.monitoring

Since Python 3.12, there is a new sys.monitoring interface, described in PEP 669. This is preferred over the slower sys.settrace approach. This will be used by Coverage 7.9.1+ as the default tracer from Python 3.14.

We now check the Coverage core mode. Up to Python 3.13, it is usually ctracer. In Python 3.14, Coverage will use the "sysmon" core. We only do our custom patching when using the "ctracer" or "pytracer" core. When the "sysmon" core is in use, Coverage works without us doing anything special.

Merge request reports

Loading