Title: [ENH]: AttributeError('... got an unexpected keyword argument ...') should set the .name attribute to the keyword · Issue #27878 · matplotlib/matplotlib · GitHub
Open Graph Title: [ENH]: AttributeError('... got an unexpected keyword argument ...') should set the .name attribute to the keyword · Issue #27878 · matplotlib/matplotlib
X Title: [ENH]: AttributeError('... got an unexpected keyword argument ...') should set the .name attribute to the keyword · Issue #27878 · matplotlib/matplotlib
Description: Problem I am in the process to write a library that uses the matplotlib library for its graphics needs. As such, most of "our" graphics functions are wrappers around existing matplotlib functions such as tripcolor, tricontour… A typical ...
Open Graph Description: Problem I am in the process to write a library that uses the matplotlib library for its graphics needs. As such, most of "our" graphics functions are wrappers around existing matplotlib functions s...
X Description: Problem I am in the process to write a library that uses the matplotlib library for its graphics needs. As such, most of "our" graphics functions are wrappers around existing matplotlib f...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/27878
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[ENH]: AttributeError('... got an unexpected keyword argument ...') should set the .name attribute to the keyword","articleBody":"### Problem\n\nI am in the process to write a library that uses the matplotlib library for its graphics needs. As such, most of \"our\" graphics functions are wrappers around existing matplotlib functions such as tripcolor, tricontour… A typical function of ours would be:\r\n\r\n```\r\ndef fun_name_altered(lib_objects, **kwargs):\r\n args = prepare_args(lib_objects, **kwargs)\r\n plt.fun_name(*args, **kwargs)\r\n```\r\n\r\nIn this case the `kwargs` dictionnary may contain keywords aimed at the `prepare_args` process and keywords aimed at controlling the plotting. At the moment, `prepare_args` removes keywords from the dictionnary when used so that in principle, when `kwargs` arrive at `plt.fun_name`, it should only contain keywords known to `plt.fun_name`\r\n\r\nHowever, if the user makes a mistake while setting the keyword for OUR part, it is not properly handled by `prepare_args` and it does remain inside `kwargs` and then is passed to `plt.fun_name` which then raises an `AttributeError('... got an unexpected keyword argument ...')`.\r\n\r\nI would like to be able to try and recover if that happens.\n\n### Proposed solution\n\nFrom the [Built-in Exceptions documentation page](https://docs.python.org/3/library/exceptions.html#bltin-exceptions)\r\n\r\n\u003e The name and obj attributes can be set using keyword-only arguments to the constructor. When set they represent the name of the attribute that was attempted to be accessed and the object that was accessed for said attribute, respectively.\r\nChanged in version 3.10: Added the name and obj attributes\r\n\r\nI looked at the matplotlib codebase but I am not an expert programmer so I may be wrong but I think what I would like was that `Artist._update_props` set the `name` attribute to `k` when raising the `AttributeError`.\r\n\r\nSince I am using Python 3.11 this would allow me to try and remove spurious keywords.","author":{"url":"https://github.com/DrizztSama","@type":"Person","name":"DrizztSama"},"datePublished":"2024-03-07T14:20:04.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/27878/matplotlib/issues/27878"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:5f0eb21b-a68a-7ab4-6cf9-60ed0712cef8 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DDDE:333E4B:CC763F:112A71E:6A540EC3 |
| html-safe-nonce | 5b1587bfecb6dcb8615c3d1c0417562cdfa4c3a75e0fdaf380705f812fd6a9bb |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERERFOjMzM0U0QjpDQzc2M0Y6MTEyQTcxRTo2QTU0MEVDMyIsInZpc2l0b3JfaWQiOiIxMDYwMTYzMjYwOTA3Nzg1OTIzIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | f269c91e76064ea410800d0e742f2a9b37a63c81266da24f5b961e70fbaf28cf |
| hovercard-subject-tag | issue:2173976431 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/27878/issue_layout |
| twitter:image | https://opengraph.githubassets.com/0bc4ce0af5d7eb154efba6bcf6a78039589b57c50f6c3880ff658f7be8718bd5/matplotlib/matplotlib/issues/27878 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/0bc4ce0af5d7eb154efba6bcf6a78039589b57c50f6c3880ff658f7be8718bd5/matplotlib/matplotlib/issues/27878 |
| og:image:alt | Problem I am in the process to write a library that uses the matplotlib library for its graphics needs. As such, most of "our" graphics functions are wrappers around existing matplotlib functions s... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | DrizztSama |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git |
| octolytics-dimension-user_id | 215947 |
| octolytics-dimension-user_login | matplotlib |
| octolytics-dimension-repository_id | 1385122 |
| octolytics-dimension-repository_nwo | matplotlib/matplotlib |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1385122 |
| octolytics-dimension-repository_network_root_nwo | matplotlib/matplotlib |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 07a982c1d40157c619b364352b704c3ce66bb332 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width