René's URL Explorer Experiment


Title: The great API cleanup · Issue #16181 · matplotlib/matplotlib · GitHub

Open Graph Title: The great API cleanup · Issue #16181 · matplotlib/matplotlib

X Title: The great API cleanup · Issue #16181 · matplotlib/matplotlib

Description: As discussed in the last call, technically public (i.e. not flagged as private with an underscore), but semantically internal API makes it hard to change anything in Matplotlib. I propose to set a focus on reducing the API footprint for ...

Open Graph Description: As discussed in the last call, technically public (i.e. not flagged as private with an underscore), but semantically internal API makes it hard to change anything in Matplotlib. I propose to set a ...

X Description: As discussed in the last call, technically public (i.e. not flagged as private with an underscore), but semantically internal API makes it hard to change anything in Matplotlib. I propose to set a ...

Opengraph URL: https://github.com/matplotlib/matplotlib/issues/16181

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"The great API cleanup","articleBody":"As discussed in the last call, technically public (i.e. not flagged as private with an underscore), but semantically internal API makes it hard to change anything in Matplotlib.\r\n\r\nI propose to set a focus on reducing the API footprint for 3.3. With our current deprecation policy, we could remove that stuff from master once 3.4 is out, which should be towards the end of this year.\r\n\r\nIn particular:\r\n\r\n- Turn most parameters into keyword-only arguments. Depending on the function 0 to maybe 4 positional parameters should stay. Deprecations will be handled via `@cbook._make_keyword_only()`. This needs one of the approaches #14130 or #15254 to go in so that deprecations on Axes methods are also warned about in the pyplot wrappers.\r\n\r\n- Make more functions and methods private\r\n\r\n- Make more modules private. e.g. (not necessary complete):\r\n  - [x] `afm`\r\n  - [X] `blocking_input`\r\n  - [x] `docstring`\r\n  - [ ] `dviread`\r\n  - [ ] \u003cs\u003e`font_manager`\u003c/s\u003e\r\n  - [x] `fontconfig_pattern`\r\n  - [ ] \u003cs\u003e`hatch`\u003c/s\u003e\r\n  - [ ] \u003cs\u003e`legend_handler`\u003c/s\u003e\r\n  - [x] `mathtext`\r\n  - [ ] `texmanager`\r\n  - [x] `tight_bbox`\r\n  - [x] `tight_layout`\r\n  - [x] `type1font`\r\n\r\n- Mechanism to deprecate whole modules:\r\n\r\n  1. Move the exising module `git mv my_module.py _my_module.py` and put this into a commit.\r\n  2. Create a new `my_module.py` with the content:\r\n    ```\r\n    from matplotlib._my_module import *\r\n    from matplotlib import _api\r\n    _api.warn_deprecated(\"3.3\", f\"The module {__name__} is deprecated\")\r\n    ```\r\n   and add this in a second commit.\r\n\r\n   It is important to have the move in a separate commit to maintain the history of that code. If put together in one commit, git thinks we added `_my_module.py` and modified `my_module.py`. Then, we could not go back in history for the moved code.\r\n\r\n- [DONE] Move all the internal `cbook` functions to (a/multiple) private module(s).\r\n  ```\r\n  from matplotlib import _api\r\n\r\n  @_api.deprecated(\"3.2\")\r\n  def compare_versions(a, b):\r\n  ```\r\n  reads better than the current\r\n  ```\r\n  from matplotlib import cbook\r\n\r\n  @cbook._deprecated(\"3.2\")\r\n  def compare_versions(a, b):\r\n  ```\r\n  and it does not pollute the namespace with the public package name.\r\n\r\n- Rename `camelCase` to `camel_case` (when not too public; e.g. `rcParams` must stay).\r\n\r\n- Internally use `import mpl` and `mpl.rcParams` instead of `from matplotlib import rcParams` and `rcParams`. - Partially addressed in #16406.\r\n\r\n- remove the obscure function `pyplot.plotting()`, which is used as a container for the pyplot docstring.","author":{"url":"https://github.com/timhoffm","@type":"Person","name":"timhoffm"},"datePublished":"2020-01-11T00:35:20.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":12},"url":"https://github.com/16181/matplotlib/issues/16181"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:3e61e009-4710-9955-5d79-6ace8fccea94
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idAEA4:277A68:CF7443:1193585:6A5168D2
html-safe-nonce8654d106f6e34f59a979a61e2f3e21bbfb9b83d6008c5fd8d9e09d094b5d7df5
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRUE0OjI3N0E2ODpDRjc0NDM6MTE5MzU4NTo2QTUxNjhEMiIsInZpc2l0b3JfaWQiOiI4NjY0NjUxNjE4Njg2NDI5Mzk0IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacbe564d64a1f9f634fa8bc695b5d6ea9797f031861b9cf019fc5f3a02ac8cba0e
hovercard-subject-tagissue:548352957
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/16181/issue_layout
twitter:imagehttps://opengraph.githubassets.com/010b136bf2f094daf05212490ed27f412e068837f6756c782a9ceb237c693767/matplotlib/matplotlib/issues/16181
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/010b136bf2f094daf05212490ed27f412e068837f6756c782a9ceb237c693767/matplotlib/matplotlib/issues/16181
og:image:altAs discussed in the last call, technically public (i.e. not flagged as private with an underscore), but semantically internal API makes it hard to change anything in Matplotlib. I propose to set a ...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernametimhoffm
hostnamegithub.com
expected-hostnamegithub.com
Noneb9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb
turbo-cache-controlno-preview
go-importgithub.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git
octolytics-dimension-user_id215947
octolytics-dimension-user_loginmatplotlib
octolytics-dimension-repository_id1385122
octolytics-dimension-repository_nwomatplotlib/matplotlib
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1385122
octolytics-dimension-repository_network_root_nwomatplotlib/matplotlib
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release60eaaf6d4dbaa817031b556aebd8a0a7eeb81b97
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/matplotlib/matplotlib/issues/16181#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fissues%2F16181
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmatplotlib%2Fmatplotlib%2Fissues%2F16181
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=matplotlib%2Fmatplotlib
Reloadhttps://github.com/matplotlib/matplotlib/issues/16181
Reloadhttps://github.com/matplotlib/matplotlib/issues/16181
Reloadhttps://github.com/matplotlib/matplotlib/issues/16181
Please reload this pagehttps://github.com/matplotlib/matplotlib/issues/16181
matplotlib https://github.com/matplotlib
matplotlibhttps://github.com/matplotlib/matplotlib
Please reload this pagehttps://github.com/matplotlib/matplotlib/issues/16181
Notifications https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Fork 8.4k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Star 23k https://github.com/login?return_to=%2Fmatplotlib%2Fmatplotlib
Code https://github.com/matplotlib/matplotlib
Issues 1.1k https://github.com/matplotlib/matplotlib/issues
Pull requests 409 https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality 0 https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
Code https://github.com/matplotlib/matplotlib
Issues https://github.com/matplotlib/matplotlib/issues
Pull requests https://github.com/matplotlib/matplotlib/pulls
Actions https://github.com/matplotlib/matplotlib/actions
Projects https://github.com/matplotlib/matplotlib/projects
Wiki https://github.com/matplotlib/matplotlib/wiki
Security and quality https://github.com/matplotlib/matplotlib/security
Insights https://github.com/matplotlib/matplotlib/pulse
The great API cleanuphttps://github.com/matplotlib/matplotlib/issues/16181#top
API: changesChanges to the public API, typically requiring deprecation.https://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22API%3A%20changes%22
Maintenancehttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22Maintenance%22
v3.6.0https://github.com/matplotlib/matplotlib/milestone/65
https://github.com/timhoffm
timhoffmhttps://github.com/timhoffm
on Jan 11, 2020https://github.com/matplotlib/matplotlib/issues/16181#issue-548352957
Add decorator to inherit keyword-only deprecations #14130https://github.com/matplotlib/matplotlib/pull/14130
Propagate signature-modifying decorators to pyplot wrappers. #15254https://github.com/matplotlib/matplotlib/pull/15254
Don't import rcParams but rather use mpl.rcParams. #16406https://github.com/matplotlib/matplotlib/pull/16406
API: changesChanges to the public API, typically requiring deprecation.https://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22API%3A%20changes%22
Maintenancehttps://github.com/matplotlib/matplotlib/issues?q=state%3Aopen%20label%3A%22Maintenance%22
v3.6.0https://github.com/matplotlib/matplotlib/milestone/65
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.