Title: [Bug]: `offsetbox` classes have optional arguments that are really not optional · Issue #24623 · matplotlib/matplotlib · GitHub
Open Graph Title: [Bug]: `offsetbox` classes have optional arguments that are really not optional · Issue #24623 · matplotlib/matplotlib
X Title: [Bug]: `offsetbox` classes have optional arguments that are really not optional · Issue #24623 · matplotlib/matplotlib
Description: Bug summary In #24620 it was pointed out that "Also, not passing pad leads to an error, so it should probably be 0. as default rather than None." This holds for many other classes in the offsetbox module as well. Code for reproduction im...
Open Graph Description: Bug summary In #24620 it was pointed out that "Also, not passing pad leads to an error, so it should probably be 0. as default rather than None." This holds for many other classes in the offsetbox ...
X Description: Bug summary In #24620 it was pointed out that "Also, not passing pad leads to an error, so it should probably be 0. as default rather than None." This holds for many other classes in the ...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/24623
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"[Bug]: `offsetbox` classes have optional arguments that are really not optional","articleBody":"### Bug summary\n\nIn #24620 it was pointed out that \"Also, not passing pad leads to an error, so it should probably be 0. as default rather than None.\"\r\n\r\nThis holds for many other classes in the `offsetbox` module as well.\n\n### Code for reproduction\n\n```python\nimport matplotlib.pyplot as plt\r\nfrom matplotlib.offsetbox import PaddedBox, AnchoredText\r\n\r\nfig, ax = plt.subplots()\r\n\r\nat = AnchoredText(\"foo\", 'upper left')\r\npb = PaddedBox(at, patch_attrs={'facecolor' : 'r'}, draw_frame=True)\r\n\r\nax.add_artist(pb)\r\nfig.show()\n```\n\n\n### Actual outcome\n\n```\r\nTraceback (most recent call last):\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\backends\\backend_qt.py\", line 454, in _draw_idle\r\n self.draw()\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\backends\\backend_agg.py\", line 400, in draw\r\n self.figure.draw(self.renderer)\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\artist.py\", line 74, in draw_wrapper\r\n result = draw(artist, renderer, *args, **kwargs)\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer)\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\figure.py\", line 3070, in draw\r\n mimage._draw_list_compositing_images(\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\image.py\", line 131, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\artist.py\", line 51, in draw_wrapper\r\n return draw(artist, renderer)\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\axes\\_base.py\", line 3157, in draw\r\n mimage._draw_list_compositing_images(\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\image.py\", line 131, in _draw_list_compositing_images\r\n a.draw(renderer)\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\offsetbox.py\", line 544, in draw\r\n w, h, xdescent, ydescent, offsets = self.get_extent_offsets(renderer)\r\n File \"C:\\Users\\Oscar\\matplotlib\\lib\\matplotlib\\offsetbox.py\", line 537, in get_extent_offsets\r\n pad = self.pad * dpicor\r\nTypeError: unsupported operand type(s) for *: 'NoneType' and 'float'\r\n```\n\n### Expected outcome\n\nNo exception. A sensible default value provided.\n\n### Additional information\n\nThis seems to hold for many `pad` parameters, but there are others as well. For example, for the packers, I think all numerical arguments must have a value, although they are listed as optional, so `None` will be used for computations unless provided.\n\n### Operating system\n\n_No response_\n\n### Matplotlib Version\n\nmain\n\n### Matplotlib Backend\n\n_No response_\n\n### Python version\n\n_No response_\n\n### Jupyter version\n\n_No response_\n\n### Installation\n\ngit checkout","author":{"url":"https://github.com/oscargus","@type":"Person","name":"oscargus"},"datePublished":"2022-12-04T22:00:13.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/24623/matplotlib/issues/24623"}
| 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:7f542801-e1d5-8b10-13fa-a011bc4aa008 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 8CDE:C1E1E:141582B:1ADA12D:6A52AD37 |
| html-safe-nonce | cdcb23fbc800f3e8f823e2719836b021b85430f6db99bd374dfbe812e0b06cb1 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4Q0RFOkMxRTFFOjE0MTU4MkI6MUFEQTEyRDo2QTUyQUQzNyIsInZpc2l0b3JfaWQiOiI2MzkzNTczMDk2OTY4ODU4OTM1IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 896a0a6b0c71b786941f37f29c12a6598122575578ef898e46bf2a50a5db2c93 |
| hovercard-subject-tag | issue:1475228557 |
| 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/24623/issue_layout |
| twitter:image | https://opengraph.githubassets.com/bc7545bc94320d13c985006e25a6e80c74fc440524534f4b0a6e2b89eb58f3a6/matplotlib/matplotlib/issues/24623 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/bc7545bc94320d13c985006e25a6e80c74fc440524534f4b0a6e2b89eb58f3a6/matplotlib/matplotlib/issues/24623 |
| og:image:alt | Bug summary In #24620 it was pointed out that "Also, not passing pad leads to an error, so it should probably be 0. as default rather than None." This holds for many other classes in the offsetbox ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | oscargus |
| 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