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.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit of a controversial take, but replacing the non-self arguments list with a single
*_saves 28 bytes.I'd say it's safe to assume that a context manager will always pass the correct arguments to
__exit__, although that way will look quite uglier than what you initially wrote :)There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a quick search of the codebase and picked the most common pattern. I did see
*argsand my personal preference would probably be_type, _value, _tracebackto both flag as unused and keep it unambiguous 😆Might not hurt to get some consensus on this and raise a PR to make every
__exit__in micropython-lib look the same.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using
*argswill lead to an allocation of a tuple at runtime whenever the function is called (to hold all the arguments).So I suggest just keeping this as-is for now.