From: Michael D. <md...@st...> - 2013-07-22 16:38:05
|
On 07/22/2013 11:34 AM, Chris Beaumont wrote: > I had the same question about opt-out vs opt-in. Personally, I vote > for opt-out. I would like to see each release of MPL have an > associated style (which may be the same as the last release, but maybe > not). With Tony's style PR, users that need constant styles would > either put `style.use('1.3')` in their script, or `style: 1.3` in an > rcParams file. This would then freeze the style FOR-EV-ER (sandlot > voice). However, the default would be `style: latest`, so that the > default user benefits from the community's effort into making the best > possible set of defaults. Is that sufficiently pain-free for people > who want future proofing? Or do you think styles must be opt-in > (which, effectively, means that defaults cannot change). In my experience, the vast majority of users don't read changelog notes, so we can't expect people to opt out of something that will change and/or break their existing plots. This is particularly a problem where matplotlib is upgraded by a sysadmin or distribution (about 58% percent of users, by our survey), because it doesn't even get upgraded on the user's timetable, necessarily. So I think any changes to the defaults have to be opt-in. However, we do have a policy of breaking things after a release cycle of deprecation warnings. So we can change the defaults in 1.5 after a round of warnings about them in 1.4 (if an explicit style is not set). > > I'm not sure if I understand what you're getting at re: > approximately_emulate. I took Nathaniel's suggestion to just mean that default style should be selectable by a version number, so the user doesn't have to keep track of the mapping between a style set and a version of matplotlib. > I'm in favor of two modes for style loading -- some kind of lazy > version that only touches the options explicitly addressed in the > file, and an explicit version that defaults all other options to > something. Thus, explicit loading would guarantee that a style never > changes. > Yes -- I agree there, too. "set_style" vs. "update_style" perhaps? ("update" used for its similarity to dict.update?) Mike |