# Aug 5 2021 -- Dec 23 2021 ###### tags: `2021 dev call` Call co-ordinates: Thursdays @ 20:00 UTC https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09 Previous notes: [Meeting Agendas](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw) Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement) #### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg) --------------------------- # Dec 23 2021 ## Agenda ### New Business - Sponsor page? ### Issues and PRs - `LogLocator` respecting `numticks` [#21177](https://github.com/matplotlib/matplotlib/pull/21177) - LayoutEngine: - API options for conflicting layouts (because of colorbars): https://github.com/matplotlib/matplotlib/pull/20426#issuecomment-998670237 ## Notes ### Sponsor Page - logos - https://numpy.org/neps/nep-0046-sponsorship-guidelines.html maybe as a guide. - pretty high value for main page - discussion about how to get more "donations" - B-corp? (e.g. Athleta) - linux weekly news: subscriptions ahead of time... - TODO: read NEP and implement similar ### Layout engine PR - trying to put in an API for setting the engine rather than being baked in to Figure - the way colorbars are handled is not consistent between tight layout and constrained layout - figure needs to know what layout engine is being used so that color bars are made "Right" for that layout - what if user wants to change engine? - one extreme: set at init time, can not changed - pro: simple - con: bit less flexible than we tend to be - allow to change if color bar is compatible (with levels of tracking ) - pro: flexible - con: complex - just walking at set time not hard - adapt existing colorbars on the fly if engine changed - con: very complex! - just let the user shoot them selves in the foot - pro: simplest! Other colorbar things: - make everything `LocatableAxes` - move colorbar logic to the Axes rather than the Figure - maybe start fresh with this? - axes can have more than 1 colorbar - maybe attach to the mappable rather than the axes? - Make static properties instead of method. ------------------------ # Dec 16 2021 ## Agenda ### New Business ### Issues and PRs - 63 or so non-draft PRs! Please help review! - [layout engine](https://github.com/matplotlib/matplotlib/pull/20426): - dealing with conflicting colorbar layouts when changing layout engines midstream. ## Notes ### dpi issues - currently our cannonical coordinate system (what the Identity transform takes you to) is "pixels" - "pixels" depends on DPI which in the world of high-DPI screens and variable save DPI - proposal is to move to "pts" (or some sort of logical DPI) as the "cannonical" - do final scaling at last possible time - move 72 -> actual DPI scaling to canvas - concerns about when we do rounding / snapping - question is what to do about users are are now _intentionally_ using `Identity` transform - scatter markers are currently scaled in square points - virtual pixel / pt -> real pixels will be on canvas - intial mpl work was targetting GUI tool kits that were very pixel foward - pixels work well with hardware and xwindows - post script / PDF / svg - physical units - all vector - possible to have the internal units be :shrug: - could have a knob - but want to document as fixed for documentation purposes - pts - inches / 100 - inches - cm - need to preserve - strong support for physical units - strong support for targetting explict pixel size - possible fall out - tests that check bounding boxes - users that actually did want to set pixels - may need to document to use the knob to fix it - would likely fix a bunch of weird pdf bugs - would have to sort out when image resampling happens - would have to check when path simplification happens - mixed mode may be fun? - blitting will require some thought - we puth the dpi ratio factor (for high-dpi) in the wrong place - we put it as early as possible - should have been done as late as possible (what is proposed here) - discussion about labeling transforms with what their dest/target is - type annotitons? #### Actions - change names - move pixel ratio dpi change as late as possbile (in draw?) - investigate how hard the internal virtual physical units would be - investigate add source/test attributes to instances ----------- # Dec 9 2021 ## Agenda ### New Business - release: - 3.5.1? - release cadence - 3.6 roadmap - PDF docs? - Can @anntzer redirect mplcairo general support to the main matplotlib forums? ### Issues and PRs ## Notes - https://github.com/tacaswell/mpl-gui - folks should give it a try - @tacaswell has goal of getting on pypi this month - Discussion of what Napari is - Introductions (new attendee!) ### 3.5.1 - Good, need to fix units ### release cadence - currently about monthly for minor releases. - maybe cutoff earlier - downstream testing easier - a little bit quicker? - need to do nightly builds... - not automated yet - @tacaswell was working on that (PR from @ianhi - https://github.com/matplotlib/matplotlib/pull/21637 - commit to actually hit 6mo cadence - start process earlier. ### pdf docs - we know people use it - issues with too big images, mostly fixed now - can not get numbers from either GA or cloudflare for usage - PDF may be best size-wise for full off-line access - downloading the full PDF ### 3.6 roadmap - 1st week may, so beginning of march feature freeze + branch - mplcairo into main? - qustion about support for OSX < 10.15 (gcc related issues) - can we push up the minimum OSX up? - need gcc 7 - solve manylinux1 via static linking (and we are going to drop manylinux1 soon anyway) - collisions with existing XYCairo backends? - could de-conflict or just replace - @QWhXj01mSwmTjk5kN1H_qQ wants plan to remove old cairo backends - @qulogic will look into wheel constraints - layout manager - finish Aitik's font fallback work - fraction viculum alignment - concerns about both changing many images and the concerns about quality of images - categorical mappables (@dstansby) ### mplcairo into discourse - yes --------------------------- # Dec 2 2021 ## Agenda ### New Business - releases - 3.5.1? - 3.6 roadmap? - release cadence? ### Issues and PRs - Colorbar inherit from Axes? - OO versus pyplot terminology: - mpl_gui work: https://github.com/tacaswell/mpl-gui - `mpl.figure`, `mpl.subplots` - reasonable for 3.6? ## Notes ### mpl_gui - Need to keep hard references - `show` triggers rendering to GUI - but if done in function, the figure would go away. - can we spin up more than one manager? - be hard to make multiple ones interactive though because they each need to get passes - can't just move the renderered image because they are sized - https://tacaswell.github.io/mpl-gui/ - ideally keep ability to "draw" so we can do get_tightlayout, particularly on text - need to keep track of figures so figures in notebooks don't get garbage collected and lose their interactivity (if the user has named them all `fig` for instance.) ------------- # Nov 25 2021 ## Agenda ### New business - NF maintainers summit next week ### Issues and PRs - pcolormesh remove grid deprecation: [#21723](https://github.com/matplotlib/matplotlib/issues/21723) - Colorbar inherit from Axes? - hexbin mincnt [#21381](https://github.com/matplotlib/matplotlib/pull/21381) ## Notes ### pcolormesh * grid goes beyond pcolormesh <- can't fix * problem triggered by style * consensus: change deprecationwarning to only occur if grid is explicitly ### hexbin * decide #21381, then discuss @anntzer's refactor * ----------------------------------------- # Nov 18 2021 ## Agenda ### Old business - 3.5.0: Released! Thanks @tacaswell and @Qulogic! ### New business - PRs: - 60 non-draft - NASA update? - Organizing ideas for grants ### PRs and Issues for discussion - ENH: Layout engine https://github.com/matplotlib/matplotlib/pull/20426 - Pre-commit: https://github.com/matplotlib/matplotlib/pull/21583 ## Notes ### time - agree we should move with DST - need to pick if we follow US or Europe (1 week off) ### webpage #### landing page - @dorafc will take a look at typography, may need to push stuff up to mpl-sphinx-theme #### built docs - left-hand navigation bar does not always do the right things - maybe https://github.com/sphinx-gallery/sphinx-gallery/issues/855 - https://github.com/matplotlib/matplotlib/pull/21667 simplifies side bars - on some pages (like https://matplotlib.org/stable/devel/min_dep_policy.html#python-dependencies) the left/right side bars look good - on some like https://matplotlib.org/stable/tutorials/index.html look bad ------------------------------------------------------------ #### NASA - money not figured out yet - draft job proposal to NASA - authorized research to work in US - foreign contracts OK for engineering - RSE : mostly units, and data pipelinig - https://hackmd.io/@matplotlib/HJIj1bjvY - will also do bug triage etc - 3 years #### Pre-commit - apply to code base to pass - enable in CI? - can do in github actions - https://github.com/matplotlib/matplotlib/pull/21630 - @GregLucas will follow up on PR. # Nov 11 2021 ## Agenda ### Old business - 3.5.0 - docs? - brochure site: https://matplotlib.org/mpl-brochure-site/ - https://github.com/matplotlib/mpl-brochure-site/pull/21 - needs news or https://github.com/matplotlib/mpl-brochure-site/pull/17 - needs to be linked to https://matplotlib.org - PRs? - https://github.com/matplotlib/matplotlib/pull/21317 - https://github.com/matplotlib/matplotlib/pull/21501 ### New business - Prs; 54 non-draft ### PRs - https://github.com/matplotlib/matplotlib/pull/21381 ## Notes ### 3.5: - largely docs; release notes - astropy problem #21569 - needs some thought about the architecture of how gridlines get put onto non-linear projections.. - Issue: cartopy axis artists on new projections - ticks as well could benefit from global approach to ticks and grids. - possibly in scope for NASA grant. - https://github.com/matplotlib/matplotlib/pull/21317 - can keep it pinned to old pyparsing until they settle down. Probably 3.5.1? - probably works... - https://github.com/matplotlib/matplotlib/issues/21509 - shortcuts have names that can clash with valid eps commands... - # Nov 4 2021 ## Agenda ### Old business - 3.5.0 ### New business ### PRs - https://github.com/matplotlib/matplotlib/pull/21381 ---------------- # Oct 28 2021 ## Agenda ### Old business ### New business - 3.5.0: - https://github.com/matplotlib/matplotlib/milestone/59 - landing page: https://github.com/matplotlib/mpl-brochure-site - https://matplotlib.org/stable/tutorials/provisional/mosaic.html still provisional? - image rotator? - "news" feed? - PRs: - 282 - `is:pr is:open draft:false` : 43 ### PRs - https://github.com/matplotlib/matplotlib/pull/21426 ## Notes - mathtext parser: - somehow broke on 3.5 backport, probably in pyparsing 3.0.0 -> 3.0.3 transition - Tim Hoffman will look at the 3.5 backport. #21454 and revise to unbreak C. - Action: we should test on pyparsing RCs as part of our bleeding edge build. - https://github.com/matplotlib/mpl-brochure-site/pull/21 - binder: - interactivity is laggy... - startup slow. - ACTION: talk to binder folks. @hannah - Action: ask @dopplershift - credits from microsoft or Amazon? - ---------------- # Oct 21 2021 ## Agenda ### New business - master is now main and history rewrite - PRs: - non-draft: 48! ### PRs - is mpl_data really something packages should be stripping? https://github.com/matplotlib/matplotlib/issues/21375 - doc re-org: - https://github.com/matplotlib/matplotlib/pull/21251 - https://github.com/matplotlib/mpl-sphinx-theme - https://github.com/matplotlib/mpl-third-party/pull/87 - https://github.com/matplotlib/mpl-brochure-site/pull/11 ## Notes - History rewrite - seemed to work relatively well - @tacaswell and @QuLogic manually informed PRs that were affected. - `main` is now the important branch - mpl-data status - debian pulls this out into its own package - - already pull the fonts out - do not put the files where we think they are, and patch our functions to look at their new location - propose they use symlinks to put things back - because they build the docs, have 2 versions of Matplotlib which is odd - **consenus**: tell debian that mpl-data is now a required subdir - @ey3AIr8wSl2d1PPfOb9K1w will write API note for down-stream packagers highlighting that matplotlibrc is now a read/parsed at run-time file (not just docs) - docs re-org - merged, may have more follow-ups for minor re-arrangements - 3.5 - waiting on numpy wheels (went up yesterday) - one outstanding bug - brochure site - switched to bulding with sphinx - use mpl-sphinx-theme - landing site need binder - maybe contract Nicolas Rougier? - maybe history of average temperature - sealevel record at a point - hourly temperature data from airport? (https://docs.opendata.aws/noaa-ghcn-pds/readme.html https://www.ncei.noaa.gov/products/land-based-station/global-historical-climatology-network-daily) - https://github.com/matplotlib/mpl-brochure-binder <- target repo - Jody will do something quick-ish ---------------- # Oct 14 2021 ## Agenda ### New business - let into GH issues beta: https://github.com/features/issues - PRs - 282 open - `is:pr is:open draft:false`: 36 - 19 merged - Purge bad commits: (suggest at end) - transition to `main` from `master` - https://discourse.matplotlib.org/t/minor-re-writing-of-history-and-moving-from-master-to-main-for-default-branch/22354 - cover pydata sprint - Oct 28-30, @tacaswell may have un-avoidable personal conflicts ### PRs and other - [Doc] Common style across sub-project docs: - https://github.com/matplotlib/mpl-brochure-site/pull/7#issuecomment-938761713 - could add `matplotlib/matplotlib-theme` for our projects to add as a doc dependency (as well as pydata theme). - [asinh symlog-like scale](https://github.com/matplotlib/matplotlib/pull/21178) - locator is idisyncratic (though author points out one could easily use symloglocator) - do we need another scale? - [inset_axes API OK for other "locatable" axes](https://github.com/matplotlib/matplotlib/pull/21283) - Maybe inset was not general enough a name? - [scalar mappables accept units](https://github.com/matplotlib/matplotlib/pull/20962) ## Notes - 3.5 ? - line join bug... - GTK4 dpi ratio https://github.com/matplotlib/matplotlib/pull/21212 - docs issues - Common style: - @tacaswell will make a subproject - inset_axes - inset axes is fine, might have been better as something else (child_axes, dependent_axes) - axes grid example should stay where it is. - asinh - good as remedy to existing symlog - shoudl cross-link symlog to point to new scale if goes in. - should have a decade-locator, probably just symlog locator - Greg Lucas will comment - cut bad commits: - probably simple, but all existing PRs will need to trim the bad commits - @Greg and @anntzer are going to investigate tech to flag bad commits... - doc PRs, and do tomorrow. ----------------- # Oct 7 2021 ### Old Business - Hacktoberfest: Note guidelines for overlapping PRs - 3.5rc01 released ### New Business - PRs: - 279 open - `is:pr is:open draft:false`: 34 - 54 closed in last week ### PRs and Issues #### Website - Front page work? - [Proposed further re-org](https://github.com/matplotlib/matplotlib/pull/21251) - All (almost) rst under `user/` #### Other - [scatter etc accept None in list](https://github.com/matplotlib/matplotlib/pull/21270) - probably not? - [scalar mappables accept units](https://github.com/matplotlib/matplotlib/pull/20962) - [asinh symlog-like scale](https://github.com/matplotlib/matplotlib/pull/21178) - locator is idisyncratic (though author points out one could easily use symloglocator) - do we need another scale? - [inset_axes API OK for other "locatable" axes](https://github.com/matplotlib/matplotlib/pull/21283) - Maybe inset was not general enough a name? ## Notes ### Front page - need new pictures - uses the 4 we have as baseline - need binder link - some duplication? - ### Webpage reorg ### None in list - hard API to support; we dont' want to have to figure out everywhere. - folks want None as default in iterables, but we want to evaluate early - `None` on its own is troublesome enough - User can supply a list and its not that hard to include the defaults - Issues with `NaN` vs `None`. - @tacaswell will write ----------------- # Sept 30 2021 ### Old Business - Hacktoberfest participation ### New Business - v3.5 status? - pydata global sprint - The conference will take place (online) during the weekend of 28 to 30 October 2021 ### PRs and Issues - [Layout Engine](https://github.com/matplotlib/matplotlib/pull/20426) (3.6) - use Pillow for image resampling instead of Agg (3.6)? [#21231](https://github.com/matplotlib/matplotlib/issues/21231) - how to deal with missing filters? ## Notes ### Hacktoberfest - https://hacktoberfest.digitalocean.com - yes contribute: - we need to label issues (after acceptance) as "hacktoberfest" - https://hacktoberfest.digitalocean.com/resources/maintainers - merged or close... - label on repository (done) ### Pydata global - @tacaswell going - sprints....on weekend, at least caswell will cover - let @tacaswell know if you can help ### 3.5: - RC close - few doc PRs - [#20907](https://github.com/matplotlib/matplotlib/issues/20907), [#21212](https://github.com/matplotlib/matplotlib/issues/21212) - ### Layout engine - makes the layout engine pluggable - refactors our layouts to be plugins ### switch to pillow for resampling - [#21231](https://github.com/matplotlib/matplotlib/issues/21231) - pillow already has resampling logic for 32bit floats with no limits! - set_resampler (per AxesImage) ### Nasa grant - 6-8 weeks, can pay someone at that point. - need job ad up.. - person would (likely) need to be based in US... (citizen or green card) - please get edits to job description by Monday to send in for comment ---------------- # Sept 23 2021 ### New Business - 3.5 open PRs - https://github.com/matplotlib/matplotlib/pulls?q=is%3Apr+is%3Aopen+draft%3Afalse+milestone%3Av3.5.0 ## Notes ### 3.5 - 3.5 open issues -> move to 3.6 - RC tagged maybe by end of week - 21126: Deprecation of stem fmt parameters - left note asking Tim how he wants this resolved - 19343: left to Elliott - 20945: needs one line removed by PR author - 20740: GSOC: failing ubuntu test-> pitched to 3.6 - font distribution error: missing/broken noto # Sept 16 2021 ### Old Business - 3.5 release (waiting on docs?) ### New Business - PRs: - 283 open - `is:pr is:open draft:false`: 38 - Were selected for NASA roses ### PRs and issues - https://github.com/matplotlib/matplotlib/pull/20990 was accidentally merged with a single review; consider whether a second reviewer wants to request post-merge changes ## Notes ### 3.5 - waiting on cartopy (@greglucas will release tomorrow!) - @qulogic has a few more fixes coming - waiting on docs on mpl side - did PR reviews - ----------------------------- # Sept 9 2021 ### New business * Student contributors: * https://github.com/matplotlib/matplotlib/issues/20923 * docoverhaul (documentation: overhaul) tag * for documentation issues/prs that are major revisions of existing docs * pro: differentitates from small documentation issues * https://github.com/Pylons/pyramid/issues?q=is%3Aissue+is%3Aopen+label%3Adocoverhaul * blog author/community participant guidelines * does spamming github get your contributions revoked? no new contributions/any consequences * specified cursive font family isn't available on CI * https://github.com/matplotlib/matplotlib/pull/20945#issuecomment-909731013 ## PRs and issues * Raise warning and downsample if data given to _image.resample is too large Do we want to downsample or simply refuse data that is too large? https://github.com/matplotlib/matplotlib/pull/19368#issuecomment-915011674 ff. ## Notes ### Student contributors - no one has time and is jumping at taking this on - the requested work overlaps greatly with the CZI DEI CEL job description - respond to them with - would like to defer answering to after CEL starts - ask about their timelines - suggest that familiarity with using Matplotlib as a user very very helpful to contributing ### docoverhaul tag - sure - also use this tag to say "needs 2 reviews" ### CoC violations by blog/third party - case by case - spammy PRs -> just block - serious behaviour issues -> remove their blog posts - as always handle with compassion / empathy and response that fits the infraction ### Issues with pgf fonts - the docs suggest in multiple places that setting `rcParams['font.serif'] = []` will cause pgf to fallback to the default latex serif font, but the code is currently falling back to dejavu sans in this case - @anntzer is running an auto bisect ### image resample - downsample - agg accepts 2**15, if someone passes higher **warn** and downsample ### 21015: https://github.com/matplotlib/matplotlib/pull/21015 - rcparams.copy returns plain dict including deprecated ones, - when they restore, mpl emits working - instead copy will return a new rcparams instance - don't need to emit new warnings on update - concern: rely on validators w/ sideeffects - date.formatter which globally sets default formatter - validators need to know if they're working on installed or other rcparams - when an rcparam is set, the validitor can/does set global state - validators should only be validators - shouldn't have side effects, - should be allowed to convert values - changing state should be a different function - dictionary of sideeffects/call backs - conclusion: - remove side effects from validators - change .copy behavior to return instance, skip warning and revalidate # Sept 2 2021 ### New business * 3.5.0b1 aftermath * ipympl contract signed ## Notes ### update on docs * Caswell did not make suffient progress, but should be possible, will continue to work on ### 3.5.0b1 fallout - starting to do dependent builds on koschei (fedora) - most issues posted to gitter, big things are seaborn issues - cartopy issues - more fallout from changing the order of the artists - used to be stable zorder sort based on what sub-list they were in - now stable sort based on order added - unfortunately contour and coastlines are same z-order and if you add coastlines first, then the render order is switched in 3.5 - maybe fixable on the cartopy side by changing default z-order to depend on line vs filled - 3 or 4 packages that fail, but their upstreams have fixed themselves! - discussed proposal to add small (multiples of 1e-7) to zorder passed - can adjust the z-order on the way in - could add z-bias to the classe - could just make clear in the docs - could just warn if order has changed - core of the problem is we used to to z-sorting on (z-order, type, added-order), now it is only (z-order, added-order) - this change fixes (very old) bug in errorbar when caps/lines had different relative z-order - seems hard to both warn / give back compat in cases when this breaks a user and not when it fixes the user (like errorbar) Approximatly old order: ``` def get_children(self): # docstring inherited. return [ *self.collections, *self.patches, *self.lines, *self.texts, *self.artists, *self.spines.values(), *self._get_axis_list(), self.title, self._left_title, self._right_title, *self.tables, *self.images, *self.child_axes, *([self.legend_] if self.legend_ is not None else []), self.patch, ] ``` https://github.com/matplotlib/matplotlib/issues/1622 - **consensus** : - get cartopy release out - Accept the breakage which is really a fix, but make sure it is well documented # Aug 26 2021 ## Agenda ### Old Business - ipympl contract is moving, target start of Sept 1! ### New Business - "inner" index page re-organization https://github.com/matplotlib/matplotlib/pull/20867 - "outer" index content https://github.com/matplotlib/mpl-brochure-site/pull/2 - what to put in the big gray box? - What to put on the otherside of the binder link? - Should we check-in with the highlighted projects and get their feedback on their description? - where to point the row of big links to (only user guide currently seems off to me)? - ### PRs and issues #### 3.5 relevant - Should the new colormap registry be experimental? https://github.com/matplotlib/matplotlib/pull/18503#issuecomment-898873054 - Naming of the new method `fig.draw_no_output()` https://github.com/matplotlib/matplotlib/issues/20001#issuecomment-825445132 - Change in contour return type https://github.com/matplotlib/matplotlib/issues/20906 - Instability in where boxplot artists are https://github.com/matplotlib/matplotlib/issues/20895 ## Notes ### 3.5 relevant - colormap registry as experimental? - pro: gives us a chance to tweak the API as we see its use - con: would have to back out a bunch of docs - conclusion: will add note that this might be changed - consider adopting a sklearn style "turn the experimental stuff on" helper functions (more general) - https://scikit-learn.org/stable/modules/classes.html#module-sklearn.experimental - do we want to add `plt.colormaps` which provides access to the registry - can probably never deprecate `plt.get_cmap` - is it worth providing 2 ways `plt.get_cmap(name)` vs `plt.colormaps[name]` - already have a version of this duality in `plt.rcParams[]` and `plt.rc()` - do we want to delay to 3.6? - pro delay: delay exposing new stuff out - con delay: there is no API freedom here, might as well do it now - `draw_no_output` vs `compose` - `draw` -> walks tree + renders - suggestions: `draw_no_render` or `draw_without_render` - alt is `fig.canvas.draw()` - consensus: `draw_without_rendering` - change return type contour - needs API note - backcompat shims? LineCollection->PathCollection - add a get_segments function that raises warning/error - add a LineCollection keyword argument to change the return type? - allows a longer deprecation cycle for downstream libraries - consensus: API note, revisit backshim if needed - box plot return instability - previously - box plot always went to artists (as Line2D) - now can show up in patches list if using `patch_artist` keyword - transition path - remember the `patch_artist` keyword to direct traffic - keep it in both? - on artists can warn if adding a special artist, but plan is to consolidate to `add_artist` - consensus: - check that there is an API note that things added to artists may appear in special artist type list ### website - inner index - https://63094-1385122-gh.circle-artifacts.com/0/doc/build/html/index.html - We have 4 types, 3 of them are 'top level', explanation is burried a layer deep - FAQ should be scattered to the ~winds~ other sections - top level in contents - usage - plot types - tutorials - gallery - explanation - how-to - API - external learning resources - back matter - ~contributing~ (change to Development maybe?) - release notes - top bar - plot types - ~gallery~ examples - tutorials - reference - usage guide - develop/contributing - release notes (maybe) - inner index and inner pages should have same top bar - rename "back matter" to "project info" - Reference section - dedent, drop extra tool_ktis, rename API Reference -> "complete docs" - re-work underestanding to point to "advnaced and intermediate tutorials" - home page # Aug 19 2021 * Meeting canceled due to low attendance * informal PR review session for 3.5 PRs # Aug 12 2021 ## Agenda ### Old Business ### New Business * Small Dev Grant, $5000, due September 3, 2021 ### PRs and issues - https://github.com/matplotlib/matplotlib/pull/20518 - https://github.com/matplotlib/matplotlib/pull/20603 - https://github.com/matplotlib/matplotlib/pull/20611 - Semantics of `ax.cla` ## Notes ### Ipympl - draft statment of work to Sylvain Corlay ### Small dev grant - $5k numfocus... - previous: macmini access - 1000 words total (750 what, 400 why) ### 20518: pgf sketch params - pgf and non pgf scaling of wiggles should ballpark look the same ### 20611: spanselector - rectangleselector used to give the click and release points - now tells the extents of rectangle - (upper right, lower left?) - encapsulated as mouse event - fixed to go back to start/end, but for interactive breaks if you want location - rectangleselector shouldn't care about order of creation, just size + position - options: - change docs: always get how rectangle looks but not where user clicked - two events: one is location, second is how rectangle was effected - close w/o merging - #9608: - needs to either be closed or a comment on what's the actionable next step - actual fix might be new feature: vectorselector widget? - grabbers on ends of vector - order cares about start/stop - zoom provides keyboard short cuts to only go in x or y - fix docs & treat as feature request ### ax.cla - init: axes cleared when created - not defined what it does when clearing an axes - what is a pristine axes? - does clearing go back to creation (including projections/kwargs) (clear all) - projection is part of classes - maybe recreate w/ it's kwargs? - w/o kwarg about clearing to remove recursiveness - how do changes to rcparam factor in? - clear w/ rcparams as they are at call time/context - is it just remove artists/data? (clear children) - does that propagate down to ticks/how? - everything is stored on the axes object (in axis children) - end up forgetting shared axes - label contents or also styling? - Tom: go back down to what was passed into init - what does this mean when styling like facecolor is passed in? - change names/add - reset/reinit: go back to new object w/params - kill children/relim/clear data: remove child artists ------------------------ # Aug 5 2021 ## Agenda ### Old Business ### New Business - cross Numfocus projects user forum - donation from Junolabs? - PR Status: - `is:pr created:>2021-07-21 draft:false`: 17 Opened, 13 closed - `is:pr merged:>2021-07-21`: 20 - `is:pr is:open `: 280 - `is:pr is:open draft:false` : 32 - `is:pr is:open draft:false -author:anntzer` : 23 ### PRs and issues ## Notes ### forum for numfocus projects - cross-project forum for discussion of intersecting problems. - one monolithic place for users to ask for help. - move our discourse there? - Hannah let them know we are in favour, theoretically. ### subfigures and dpi - dpi could be because not being passed down correctly. ### constrained_layout at draw - @QuLogic will consider. ### colorbar work - https://github.com/matplotlib/matplotlib/pull/19553 - callback or weakrefs to the a list of colorbars... - current behavior: - ScalerMabble.set_clim() - sets values on norms, - change callback: notifies listeners that it's changed (draw, caches, etc) - doesn't happen when you change norm, but passing in data does trigger SM.set_clim chain - forward propagating happens in .set_clim, can also update the vmin/vmax norm passed into SM directly - change in PR: - adds change callback to norm so it doesn't need to be in set_clim - benefit is listner gets moved to Norm - suggestions: - add tests to ensure that callback chain is correct https://github.com/matplotlib/matplotlib/pull/19515 - should changing the min/max on the colorbar induce a change on the norms vmin/vmax - if zoom on region, grab the x,y as your x/y lower limits, would autorelim the scale - removed the ability to do that on contour sets - in cbar init, set interactive on the axes depending on the mappable & the norm - discrete norms don't have zoom - still same zoom controls/behavior on axes - colorbar ticks/labels (data) stay same but colors can be moved around ### add set_XYZ kwargs to FigureBase, SubFigure, Figure - https://github.com/matplotlib/matplotlib/pull/20115 - important change is adds **kwargs to `def __init__(self, **kwargs):` - what is the scope of set? - goes through every set_* in whatever artists it is being applied to - set documentation rewrite looks for all .set_* methods too - sidenote: is set rather than properties b/c many attributes have multiple properties - ex: title has string, fontproperties, location, etc -