[Matplotlib-devel] Major refactor of Axes internals just merged

Folks,

We just merged a major refactor of how the Axes object stores its children [1]. Previously the children were stored across several lists by type and were sorted and merged at draw time (which is the source of the long standing bug [2]) whereas now there is a single list of children and back-compatibility shims to access the children by type.

We expect this to be very good thing going forward, however in the short time we expect that there are going to be some unforeseen consequences due to this change. Because of this, we held of on merging this until after we got 3.4 release so that we have ~6 months of this being on the default branch before it is released.

If you have any issues please reach out to us! It is unlikely that we will revert this change, but we will definitely extend and improve the shims as needed :slight_smile:

Thank you to Elliott for getting this work done!

Tom

[1] https://github.com/matplotlib/matplotlib/pull/18216

[2] https://github.com/matplotlib/matplotlib/issues/1622

···

Thomas Caswell
tcaswell@gmail.com

Wow. Congrats on such a big milestone. Great work, Elliot. It’s nuts seeing issue #1612 closed by #18216.

I’m going to be cleaning up all of my repos at work (I found a new job) for the next week. So I’m sure all of my CI will let me know if any big issues come up.

-Paul

···

On Fri, Apr 2, 2021 at 5:01 PM Thomas Caswell <tcaswell@gmail.com> wrote:

Folks,

We just merged a major refactor of how the Axes object stores its children [1]. Previously the children were stored across several lists by type and were sorted and merged at draw time (which is the source of the long standing bug [2]) whereas now there is a single list of children and back-compatibility shims to access the children by type.

We expect this to be very good thing going forward, however in the short time we expect that there are going to be some unforeseen consequences due to this change. Because of this, we held of on merging this until after we got 3.4 release so that we have ~6 months of this being on the default branch before it is released.

If you have any issues please reach out to us! It is unlikely that we will revert this change, but we will definitely extend and improve the shims as needed :slight_smile:

Thank you to Elliott for getting this work done!

Tom

[1] https://github.com/matplotlib/matplotlib/pull/18216

[2] https://github.com/matplotlib/matplotlib/issues/1622

Thomas Caswell
tcaswell@gmail.com


Matplotlib-devel mailing list
Matplotlib-devel@python.org
https://mail.python.org/mailman/listinfo/matplotlib-devel