gh-107944: Improve error message for function calls with bad keyword arguments by pablogsal · Pull Request #107969 · python/cpython
| Py_DECREF(suggestion_keyword); | ||
| } else { | ||
| _PyErr_Format(tstate, PyExc_TypeError, | ||
| "%U() got an unexpected keyword argument '%S'", |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't it be a better UX if we included a list with all the possible keywords here? We could special-case it for cases where the list is smaller than X, in order to keep the output to a reasonable size.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think is better, but on the other hand, it would be a bunch of extra code (joining the list with commas + handling errors) so not sure if is worth the complexity. @rhettinger what do you think? (Note we are referring to the fallback message when we could not find the suggestion either because of errors or because there is nothing close).
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what do you think?
I think what you have now will suffice — only offer a suggestion when a plausible candidate can be found; otherwise, just note that the keyword argument doesn't match.
@lysnikolaou apart from the suggestion is everything else ok with you? (In that case, could you approve the PR?)
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good!!