Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Don't expose private styles in style.available#30235

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
timhoffm merged 1 commit intomatplotlib:mainfromQuLogic:private-style
Jul 7, 2025

Conversation

QuLogic
Copy link
Member

PR summary

They remain instyle.library, because that's how we look them up, but this prevents them being exposed as something someone might use.

Also, fixreload_library, which was accidentally modifying the original base library information each time.

Fixesitprojects/MasVisGtk#13

PR checklist

available[:] = sorted(library.keys())
library.update(_update_user_library(_base_library.copy()))
available[:] = sorted(name for name in library
if not name.startswith('_') or name not in _base_library)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Ok, so the idea is that we only exclude "_name" styles that are in the base library. Any other styles in the base library are shown, andany user styles are shown. I got that right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I would l go for: Exclude all styles with leading _. Not sure why users would register such styles, but let’s just document this way. It’s more in line with general underscore semantics , e.g.dir() and simpler to implement.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Agreed. What if other libraries need to register their own "private" styles?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

My take: Private styles are those with a leading underscore. Everybody can register and get/use them. They are only not listed under the available styles. This is the same logic as with private attributes/methods.

Copy link
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Yes, the only reason I wrote it this way is because the test adds a_test_ style and looks for it inavailable. But as I've now fixedreload_library to correctly clean up user styles, I think we can use any name in the test.

They remain in `style.library`, because that's how we look them up, butthis prevents them being exposed as something someone might use.Also, fix `reload_library`, which was accidentally modifying theoriginal base library information each time.Fixesitprojects/MasVisGtk#13
Copy link
Member

@timhoffmtimhoffm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Ok. Though, I think we should move away from "bunch of functions and variables" to aStyleRegistry concept, similar toColormapRegistry.

@timhoffmtimhoffm modified the milestones:v3.11.0,v3.10.4Jul 7, 2025
@timhoffm
Copy link
Member

I consider this a bug fix, so pointing to 3.10.x

@timhoffmtimhoffm merged commitb6777b1 intomatplotlib:mainJul 7, 2025
40 checks passed
@lumberbot-appLumberbot (App)
Copy link

Owee, I'm MrMeeseeks, Look at me.

There seem to be a conflict, please backport manually. Here are approximate instructions:

  1. Checkout backport branch and update it.
git checkout v3.10.xgit pull
  1. Cherry pick the first parent branch of the this PR on top of the older branch:
git cherry-pick -x -m1 b6777b14cdc1bf4503803eda2df79e7c60b84e6e
  1. You will likely have some merge/cherry-pick conflict here, fix them and commit:
git commit -am "Backport PR #30235: Don't expose private styles in style.available"
  1. Push to a named branch:
git push YOURFORK v3.10.x:auto-backport-of-pr-30235-on-v3.10.x
  1. Create a PR against branch v3.10.x, I would have named this PR:

"Backport PR#30235 on branch v3.10.x (Don't expose private styles in style.available)"

And apply the correct labels and milestones.

Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon!

Remember to remove theStill Needs Manual Backport label once the PR gets merged.

If these instructions are inaccurate, feel free tosuggest an improvement.

@timhoffm
Copy link
Member

Not worth a manual backport.

@timhoffmtimhoffm modified the milestones:v3.10.4,v3.11.0Jul 7, 2025
@QuLogicQuLogic deleted the private-style branchJuly 7, 2025 18:55
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@WeatherGodWeatherGodWeatherGod left review comments

@timhoffmtimhoffmtimhoffm approved these changes

@dstansbydstansbydstansby approved these changes

Assignees
No one assigned
Projects
None yet
Milestone
v3.11.0
Development

Successfully merging this pull request may close these issues.

Exclude underscore-prefixed Matplotlib themes from selection
4 participants
@QuLogic@timhoffm@WeatherGod@dstansby

[8]ページ先頭

©2009-2025 Movatter.jp