Thanks to visit codestin.com
Credit goes to github.com

Skip to content

make seaborn great again on Matplotlib-2.2 #10622

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

Merged
merged 5 commits into from
Feb 28, 2018
Merged

Conversation

stonebig
Copy link
Contributor

fix for #10585

PR Summary

PR Checklist

  • Has Pytest style unit tests
  • Code is PEP 8 compliant
  • New features are documented, with examples if plot related
  • Documentation is sphinx and numpydoc compliant
  • Added an entry to doc/users/next_whats_new/ if major new feature (follow instructions in README.rst there)
  • Documented in doc/api/api_changes.rst if API changed in a backward-incompatible way

@@ -172,8 +172,8 @@ def _make_twin_axes(self, *kl, **kwargs):
Make a twinx axes of self. This is used for twinx and twiny.
"""
from matplotlib.projections import process_projection_requirements
if 'sharex' in kwargs and 'sharey' in kwargs:
raise ValueError("Twinned Axes may share only one axis.")
if kwargs["sharex"] is not self and kwargs["sharey"] is not self:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't the same as the old check at all 😉

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hum, result is identical unless one of the 2 sharex/sharey is "self", isn't it ?

@@ -172,7 +172,7 @@ def _make_twin_axes(self, *kl, **kwargs):
Make a twinx axes of self. This is used for twinx and twiny.
"""
from matplotlib.projections import process_projection_requirements
if 'sharex' in kwargs and 'sharey' in kwargs:
if kwargs["sharex"] is not self and kwargs["sharey"] is not self:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this needs to be a separate check as well as the one it has replaced right? The currently one checks that both x and y aren't shared at the same time, and you want to check that we're not trying to share an axis with itself.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will also give a KeyError if "sharex" and "sharey" aren't in kwargs.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

argh... ok, tuning

@tacaswell tacaswell added this to the v2.2.0 milestone Feb 27, 2018
@jklymak jklymak dismissed their stale review February 27, 2018 22:41

This looks better, but lets see what happens to the tests.

@jklymak jklymak requested a review from efiring February 27, 2018 23:57
@jklymak
Copy link
Member

jklymak commented Feb 28, 2018

Asking @efiring to look this over. It passes all the tests, so I guess its OK. Tempted to ask for a test, but since tests shouldn't particularly call the internal API....

@dopplershift
Copy link
Contributor

In this case it's entirely appropriate for the test to call the internal API IMO.

@dopplershift
Copy link
Contributor

Actually, I take that back. No tests necessary, because they're going to come with the PR for the public API that someone from seaborn is going to submit.

@jklymak
Copy link
Member

jklymak commented Feb 28, 2018

See #9923 for a proposed public API that I think addresses Seaborn's use case...

Copy link
Member

@efiring efiring left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be fine once the comment, or a variation of it, is added.

@@ -173,7 +173,8 @@ def _make_twin_axes(self, *kl, **kwargs):
"""
from matplotlib.projections import process_projection_requirements
if 'sharex' in kwargs and 'sharey' in kwargs:
raise ValueError("Twinned Axes may share only one axis.")
if kwargs["sharex"] is not self and kwargs["sharey"] is not self:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a comment above this line:

# The following line is added in v2.2 to avoid breaking Seaborn,
# which currently uses this internal API.

@jklymak
Copy link
Member

jklymak commented Feb 28, 2018

PEP8 is a little silly about trailing white space...

remove trailing spaces on a comment line
@efiring
Copy link
Member

efiring commented Feb 28, 2018

"PEP8 is a little silly about trailing white space..." Not silly at all--trailing whitespace is an abomination! Much of the rest of what the automated checker complains about verges on "silly", but not the trailing whitespace!

@mwaskom
Copy link

mwaskom commented Mar 1, 2018

Thanks @stonebig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants