Skip to content

WIP : major Axes refactor #3944

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from
Closed

Conversation

tacaswell
Copy link
Member

This branch is the start of work to unify the storage of the artists in the Axes into a single tree. I think this will simplify the serialization and export code we want to add. I also think this will make it easier to implement logic to check if a canvas needs to re-drawn. In all cases, the benefit comes from having a single Artist tree to walk.

The first step of this is to promote Containers to be full-class Artists and use them for drawing (not just sorting out legend handles and returning). This will fix the z-order overlap issues with error bar (#409).

There is some magic in how the broadcasting of the {set,get}_* methods works which should probably have some discussion around it.

The sub-class of list is so that we can maintain back-compatibility for users that are removing artists by mucking with the internal data structures.

  • intra-container zorder
  • update all usage of Container sub-classes (only ~5)
  • unify draw logic to a single tree
  • make sure all the back compatibility works
  • make remove fully clean up after add_*
  • deprecate all of the add_* methods
  • add visitor-pattern API

 - add broadcasting draw method to Container
 - special-case BarContainer __new__
 - remove duplicate functions from Container
This uses magic in the `__getattribute__` method which _works_ but
does not play nice with IDE's,  documentation, or tab-complete.

Some Artist properties we don't want to broadcast, like
the label.
Starting ground work for re-factoring Axes to use a single tree for
storing the Artists in an Axes.
tests are still failing
@tacaswell tacaswell modified the milestones: proposed next point release, next point release Jun 22, 2015
@tacaswell tacaswell modified the milestones: 2.2 (next next feature release), 2.1 (next point release) Dec 11, 2016
@tacaswell tacaswell closed this Aug 21, 2017
@QuLogic QuLogic modified the milestones: needs sorting, v2.2.0 Feb 13, 2018
@QuLogic QuLogic added this to the unassigned milestone Feb 13, 2018
@tacaswell tacaswell deleted the axes_refactor branch March 17, 2023 13:46
@tacaswell
Copy link
Member Author

@QuLogic QuLogic added this to the v3.5.0 milestone Mar 18, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants