owned this note
owned this note
Published
Linked with GitHub
# *October* 2020
###### tags: `dev call 2020`
Call co-ordinates: Tuesdays @ 15:00 Eastern US time (UTC = 19:00) https://zoom.us/j/384435716?pwd=WFpxVWxoYXArTDFzN1lWaHNoOE8xZz09
Previous notes: [2020 Meeting Agenda](https://hackmd.io/zljR-pZrQ0O5J_j4NZ-9yw)
Archive: [matplotlib/ProjectManagement](https://github.com/matplotlib/ProjectManagement)
#### [Needs discussion at some point](https://hackmd.io/uzWviu8zSUChq3XhI2FqPg)
# 27 Oct (Tuesday)
## Agenda
### Old Business
### New Business
- [ ] Should MatplotlibDeprecationWarning move to deriving from DeprecationWarning instead of UserWarning?
- Originally, we derived from UserWarning to make sure that the warnings are always visible.
- Now that https://www.python.org/dev/peps/pep-0565/ is implemented, core Python is taking responsibility for making sure that DeprecationWarning *is* visible when running interactively (Python, IPython, Jupyter), but not to end-users (e.g. running a script written by a labmate).
- Given how often we deprecate, we may want to keep the current behavior instead, but I think it would be cleaner to simply derive from DeprecationWarning and add a `warnings.filterwarnings("default", category=DeprecationWarning)` to make them always visible that way.
### PRs
- [ ] Encapsulating styles in classes:
- https://github.com/matplotlib/matplotlib/pull/18544
- Is get/set type symmetry necessary?
- Currently we *take* \[historical inputs\], *store* the `WhateverStyle` object, *return* \[backcompat "cleaned" version of historical input\]
- for example, `LineStyle` accepts short strings (e.g. ":"), long strings (e.g. "dashed"), and on-off seq (e.g. `(0, (2, 1, 3))`). We store a `LineStyle` object but return whatever the user originally passed us.
- Alternatively, we could *return* `WhateverStyle`.
- [x] UI events metadata:
- https://github.com/matplotlib/matplotlib/pull/16931
## Notes
### NASA application for (geospatial?) open source
- [solicitation](https://nspires.nasaprs.com/external/viewrepositorydocument/cmdocumentid=731335/solicitationId=%7B958CF134-D655-E512-B5AD-84501D14A0C1%7D/viewSolicitationDocument=1/E.7%20OS%20tools%20Amend%2059.pdf)
### Deprecations:
- We currently use `UserWarning`
- deprecations only on interactive use `DeprecationWarning`
- scripts would not get a deprecation warning.
- we can modify the global state.
- probably shelve for now as our warnings are different from python warnings.
- our doc build needs to fail on matplotlib warnings, not just Sphinx
- docs need to discuss how to filter warnings...
### UI events and metadata
- https://github.com/matplotlib/matplotlib/pull/16931
- button events. last keypress is passed as a parameter.
- modifier keys are kept track of better than character keys
- if key is pressed when code is outside window then it is not recognized
- some API changes, but users should not be using these functions at the `super` level.
- make `._process` private
# 19 Oct
## Agenda
### Old Business
### New Business
- [ ] 3.3.3 release planning
- [ ] 3.4.0 release planning
- [ ] GSoC status
- [x] Meeting schedule: move one hour earlier when Daylight Savings Time ends?
### PRs
- [x] https://github.com/matplotlib/matplotlib/pull/18647 data-slope lines locked in viewport position.
- Just for grids?
- just add to `axline`?
- [x] https://github.com/matplotlib/matplotlib/pull/18749 image anti-aliasing
- we apply pre-RGBA, but likely want `antialiased=True` to do after RGBA step.
- There is disagreement about the framing of the question
- https://github.com/matplotlib/matplotlib/issues/18747
- [ ] https://github.com/matplotlib/matplotlib/pull/17453 Dealing with non-linear norms (and scales)
- [ ] https://github.com/matplotlib/matplotlib/pull/18772 Should Artists that aren't included in the `draw()` at *all* count towards `get_window_extents`? `get_tightbbox`?
- [ ] https://github.com/matplotlib/matplotlib/pull/18614 Returning bytes data from savefig: `bytestring = savefig(None, format='png')` reads a little awkward
### Notes
#### Meeting schedule:
- Tuesday at 15:00EDT next week. Will switch with Daylights savings time end.,
- Conflicts with GSOD
### Release schedule
- 3.3.3: release this week
- numtick = 1 problem
- datetime performance regression
- add to benchmark repo @jklymak
- https://github.com/matplotlib/matplotlib/pull/18754
### PRs
#### Data slope lines locked in viewport
- use transforms in already extant `axline`
- use `transform` kwarg for intercept
- slopetransform? maybe future...
#### Imshow[padding around NaN values](https://github.com/matplotlib/matplotlib/issues/18735)
- current path: data -> resampled (data space) -> normalized -> render
- antialising artifacts when downsampling
- users should apply antialiasing if they know it'll be a problem
- we offer interpolation kwarg to do that filtering
- also used when oversampling for smoothing
- applied in data space b/f RGB mapping
- we end up downsampling for output to PNG in dataspace
- imagebox - here RGBA values, downsample to right size to fit on screen window
##### add second downsample space in RGB space for render
- interpolation w/o changing resolution (low pass filter, w/o subsample)
- norm, cmap into RGBA by original size
- antialiasing (subsample) out by render
##### alt
- if size(x)>>>(y) or size(y)>>>(x) and you want to project on a grid where the aspect ratio is poorly matched to the original data:
- upsample do it {before, after} , downsample do it {before, after} colormapping
- upsample is resample than filter
- downsample is filter than resample
- colormapping goes after resample here
- allow non-linear and user based filters, etc
##### Example:
- data - [-1:blue, 0:white, 1:Red]
- tom & ryan - all white 'cause oversampled - assume average 0
- jody & anthony - purple
- issue is more data than pixels w/ default anti-aliasing:
- throw a warning that we can't do this?
- was losing hot pixels
- data - [.1, 10]
- should be purple or white, probably not red
##### main:take-away
* add more knobs to control the imshow pipeline
* maybe just let user set where they do the resampleing:
* norm - resample - colormap
* resample - norm - colormap
* norm - colormap - resample
# 12 Oct
- no meeting: Columbus Day/Indigenous Peoples Day, Thanksgiving
# 5 Oct 2020
## Agenda
### Old business
- [ ] Axes API movement (@tacaswell)
- [ ] CoC follow up https://github.com/matplotlib/matplotlib/pull/18538
### New Business
* hacktoberfest is now opt in - do we want to participate? (Add hacktoberfest label) *https://hacktoberfest.digitalocean.com/hacktoberfest-update
### PRs and Issues
- [x] https://github.com/matplotlib/matplotlib/issues/18648 drop urls from imread.
- why do we still have `imread`?
- [x] https://github.com/matplotlib/matplotlib/issues/18609 close_event semantics
- [x] https://github.com/matplotlib/matplotlib/pull/18544 : `JoinStyle` and `CapStyle`:
- should these new classes be public?
- if not, how to inject the documentation?
- In particular: How do we want HTML and plain-text docs to look like?
- Tim's take in https://github.com/matplotlib/matplotlib/pull/18544#issuecomment-703231507
- Bruno's take in https://github.com/matplotlib/matplotlib/pull/18544#issuecomment-703336724
- [ ] https://github.com/matplotlib/matplotlib/pull/18647 data-slope lines locked in viewport position.
- Just for grids?
- just add to `axline`?
## Notes
### Zoom - @tacaswell
- [ ] add more hosts to zoom
- [x] remove waiting room?
### subfigure
- OK to not do `figimage` in subfigure.
### CoC
- guiding principle is folks should feel comfortable and not make others feel uncomfortable.
- other projects - not our problem.
- email folks who own repos under github/matplotlib that their repos fall under CoC
### Hacktober
- opt-in and postively tag or merge PR.
- matplotblog is participating
### matplotlib/matplotblog
- pin on github
### url for imread
- `certifi` is now a dependency
- reading style files from url also an issue.
- helpful while teaching
- `urllib.open` returns a file handle.
- todo: style files as well
- support i/o or don't.
- soft deprecate `imread`/`imsave`...
- should use a proper library.
-
### close_event...
- `fig.close` : `close_event` when figure closes animation closes
- when should we actually fire this?
- currently when canvas torn down.
- on C++ delete event.
- Testing close event on agg backend?
- nothing is deleted because no interactive canvas ever existed
- What does close_event mean
- gc of canvas?
- or pyplot system when unregistered from gcf....
- not fired if independent of pyplot.
- add a `figure.close` method?
- gives an explicit way to call this.
### Style wrappers
- class in documentation
- Tim H wants to hide enums...
- @Bruno will work with @Y-wLuq1aShOQmYPoL-pf1g on polishing this
### Style guide for gallery
- define what idiomatic mpl looks like
- https://matplotlib.org/devel/documenting_mpl.html#writing-examples-and-tutorials