Ned Batchelder
Ned Batchelder
I've been experimenting with the getsentry code in a fork where I can hack away at stuff: https://github.com/nedbat/sentry-python/tree/nedbat/debugging-2082
I haven't had a chance to try this yet, but it surprises me that turning off the subprocess patch changes the timings. Do you mind trying the latest main branch...
@jepler Thanks for the reproduction instructions. I've done some experiments with your repo, and I have found an odd thing. I cloned https://codeberg.org/jepler/wwvbpy/ at commit 97bb160 to reproduce your problem....
Were you planning to describe what this is for and how it improves things?
This option seems a bit unusual. Would it be better to have an empty .coverage always produce an empty .lcov? That seems to be the most straightforward way to proceed....
Looks like tracing with sys.monitoring gets it wrong, but sys.settrace gets it right: ``` % COVERAGE_CORE=ctrace ./py314/bin/coverage run --branch threectx.py 1 % ./py314/bin/coverage report -m Name Stmts Miss Branch BrPart...
This has to do with an algorithm in parser.py that tries to "fix" misleading tracing of `with` statements. `fix_with_jumps` is not working for triply-nested `with` statements.
@aaugustin Checking a few of your missing branches, they look like triply nested `with` statements. If you find ones from that failing report that are not triple-withs, maybe they will...
@aaugustin It looks like there are a few `for-with` and `with-for` combinations in the misses also: - https://github.com/python-websockets/websockets/blob/e29087d100a57218657bcb83afe766196b8cf539/tests/sync/test_messages.py#L474 - https://github.com/python-websockets/websockets/blob/e29087d100a57218657bcb83afe766196b8cf539/tests/extensions/test_permessage_deflate.py#L586
`scriv print` seems like the right way to go.