10000 Clarify error message for bad keyword arguments. by anntzer · Pull Request #22451 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

Skip to content

Clarify error message for bad keyword arguments. #22451

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

Merged
merged 1 commit into from
Feb 15, 2022

Conversation

anntzer
Copy link
Contributor
@anntzer anntzer commented Feb 11, 2022

plot([], [], foo=42) previously emitted

'Line2D' object has no property 'foo'

which refers to the Matplotlib-specific concept of "properties". It now
instead emits

Line2D.set() got an unexpected keyword argument 'foo'

which is modeled after the standard error message for unknown keyword
arguments.

(To maximize backcompat, the implementation goes through a new
_internal_update, which does not error when the same prop is passed
under different aliases. This could be changed later, but is not the
goal of this PR.)

(This was triggered by https://discourse.matplotlib.org/t/line2d-object-has-no-property-line-error/22585)

PR Summary

PR Checklist

Tests and Styling

  • Has pytest style unit tests (and pytest passes).
  • Is Flake 8 compliant (install flake8-docstrings and run flake8 --docstring-convention=all).

Documentation

  • New features are documented, with examples if plot related.
  • New features have an entry in doc/users/next_whats_new/ (follow instructions in README.rst there).
  • API changes documented in doc/api/next_api_changes/ (follow instructions in README.rst there).
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).

`plot([], [], foo=42)` previously emitted
```
'Line2D' object has no property 'foo'
```
which refers to the Matplotlib-specific concept of "properties".  It now
instead emits
```
Line2D.set() got an unexpected keyword argument 'foo'
```
which is modeled after the standard error message for unknown keyword
arguments.

(To maximize backcompat, the implementation goes through a new
_internal_update, which does *not* error when the same prop is passed
under different aliases.  This could be changed later, but is not the
goal of this PR.)
@QuLogic QuLogic added this to the v3.6.0 milestone Feb 15, 2022
@QuLogic QuLogic merged commit e6794de into matplotlib:main Feb 15, 2022
@anntzer anntzer deleted the badkwerr branch February 15, 2022 11:24
yuzie007 added a commit to yuzie007/mpltern that referenced this pull request Feb 19, 2023
While `offset_transform` is introduced since `matplotlib>=3.6.0`,
(matplotlib/matplotlib#21965), `transOffset` can still be used. Also,
instead of `_internal_update` (matplotlib/matplotlib#22451), `update`
can still be used.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
0