Reset sys.argv after running child script/module #258
Merged
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.
Fixes #241.
Using
trace
as an example of a script that changes sys.argv:Before:
After:
aside: Note this doesn't change pyinstrument's way of passing sys.argv to children. The behaviour is that all of
python script.py arg1 arg2
python -m script.py arg1 arg2
pyinstrument script.py arg1 arg2
and
python -m module arg1 arg2
python -m pyinstrument -m module arg1 arg2
pyinstrument -m module arg1 arg2
look the same from the child's perspective. That's verified in the test
pyinstrument/test/test_cmdline.py
Line 81 in af87938
.
That test was faulty as written, I've also fixed that in this PR.