-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Include close matches in error message when key not found #30001
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
3f98b36
to
144b9d6
Compare
Where the discussion in #28115 got stalled is over using difflib or vendoring a copy of Levenstien distance with a question of how different the results are (and then I did not have time to answer that question). Do we want to resume that discussion or just use I think either way getting close matches is better than the current state of things and contra my previous comments I'm in favor of using difflib and changing the algorithm later if it is a problem (I'm not going to consider the guessed "did you mean..." list to be something we need to maintain API stability on!). |
cmap = _api.check_getitem( | ||
self._cmaps, colormap=item, _error_cls=KeyError | ||
) |
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.
This fits in a line.
cmap = _api.check_getitem( | |
self._cmaps, colormap=item, _error_cls=KeyError | |
) | |
cmap = _api.check_getitem(self._cmaps, colormap=item, _error_cls=KeyError) |
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.
And if you are talking about this as style, black
would have put it on one line.
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.
My objection is mainly to bikeshedding style one comment at a time in PR review, instead of having a tool automate it for us.
def check_getitem( | ||
mapping, /, _error_cls=ValueError, **kwargs | ||
): |
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.
This fits in a line.
def check_getitem( | |
mapping, /, _error_cls=ValueError, **kwargs | |
): | |
def check_getitem(mapping, /, _error_cls=ValueError, **kwargs): |
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.
And this violates E125, which is currently missing from ruff
, but we shouldn't introduce more linting issues for the future.
This is an attempt to resurrect #28115, but make it more general so we can emit helpful error messages when keys aren't found.