-
Notifications
You must be signed in to change notification settings - Fork 77
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
Fix for importing mpl colormaps with recent versions of matplotlib #1077
Conversation
ginga/cmap.py
Outdated
@@ -13309,8 +13309,7 @@ def add_matplotlib_cmap(cm, name=None): | |||
def add_matplotlib_cmaps(fail_on_import_error=True): | |||
"""Add all matplotlib colormaps.""" | |||
try: | |||
import matplotlib.pyplot as plt | |||
from matplotlib import cm as _cm | |||
from matplotlib import colormaps as _mpl_cm | |||
if MPL_LT_3_4: | |||
from matplotlib.cbook import mplDeprecation as MatplotlibDeprecationWarning | |||
else: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pllim, should we drop support for mpl < 3.4 and git rid of this workaround needed for suppressing MatplotlibDeprecationWarning
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Matplotlib is at 3.8 now. Matplotlib 3.3 has not been touched since early 2021. Do you still have any users stuck with matplotlib < 3.4? If not, probably less work to drop it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good. I'll remove the support from this module for that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should also bump this?
Line 60 in f0eecdf
matplotlib>=2.1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch
Here is a simple one if you have a minute or two only, @pllim. |
ginga/cmap.py
Outdated
except ImportError: | ||
if fail_on_import_error: | ||
raise | ||
# silently fail | ||
return | ||
|
||
# NOTE: Update if matplotlib has new public API for this. | ||
for name in plt.colormaps(): | ||
for name in _mpl_cm: | ||
if not isinstance(name, str): | ||
continue | ||
try: | ||
# Do not load deprecated colormaps | ||
with warnings.catch_warnings(): | ||
warnings.simplefilter('error', MatplotlibDeprecationWarning) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the deprecation warning catching should be removed. It should no longer happen.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pllim, because those particular color maps have been removed some time ago? I guess we can add the code back if they deprecate more color maps in the future. Wondering why they deprecated color maps...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ejeschke , I don't follow matplotlib development closely, so not sure. But I do not see any warning now using the matplotlib I have locally. Do you?
I guess does not hurt to keep it as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM FFTM TYVM 😸
TY@PLLIM! |
Fixes an issue with the API in recent versions of matplotlib.
Ginga can continue to import and use matplotlib colormaps.