---
# System prepended metadata

title: '*October* 2020'
tags: [2020 dev call]

---

# *October* 2020 
###### tags: `2020 dev call`
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
    



