Skip to content

[MNT]: Cleanup pyplot imports #22149

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

Open
timhoffm opened this issue Jan 8, 2022 · 3 comments
Open

[MNT]: Cleanup pyplot imports #22149

timhoffm opened this issue Jan 8, 2022 · 3 comments

Comments

@timhoffm
Copy link
Member

timhoffm commented Jan 8, 2022

Summary

pyplot has a number of unused imports. Some of them are intentional e.g. plt.cycler, some seem unnecessary e.g. plt.TickHelper.

Proposed fix

  • Go through all unused imports and decide if we want to keep it. Also use github search to help on the decision. We don't want to force lots of users to change their imports.

  • Mark all intentional imports with a comment

  • Deprecate all unwanted imports.

@oscargus
Copy link
Member

oscargus commented Jan 8, 2022

Here are all unused imports in current main as reported by flake8 and pylint. Some have comments, but most do not.

flake8
(base) C:\Users\Oscar\matplotlib\lib\matplotlib>flake8 --select=F401
.\image.py:25:1: F401 'matplotlib._image.*' imported but unused
.\lines.py:12:1: F401 'matplotlib as mpl' imported but unused
.\lines.py:13:1: F401 '.artist' imported but unused
.\lines.py:25:1: F401 '.markers.CARETLEFT' imported but unused
.\lines.py:25:1: F401 '.markers.CARETRIGHT' imported but unused
.\lines.py:25:1: F401 '.markers.CARETUP' imported but unused
.\lines.py:25:1: F401 '.markers.CARETDOWN' imported but unused
.\lines.py:25:1: F401 '.markers.CARETLEFTBASE' imported but unused
.\lines.py:25:1: F401 '.markers.CARETRIGHTBASE' imported but unused
.\lines.py:25:1: F401 '.markers.CARETUPBASE' imported but unused
.\lines.py:25:1: F401 '.markers.CARETDOWNBASE' imported but unused
.\lines.py:25:1: F401 '.markers.TICKLEFT' imported but unused
.\lines.py:25:1: F401 '.markers.TICKRIGHT' imported but unused
.\lines.py:25:1: F401 '.markers.TICKUP' imported but unused
.\lines.py:25:1: F401 '.markers.TICKDOWN' imported but unused
.\pylab.py:14:1: F401 'matplotlib.cbook.flatten' imported but unused
.\pylab.py:14:1: F401 'matplotlib.cbook.silent_list' imported but unused
.\pylab.py:16:1: F401 'matplotlib as mpl' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.date2num' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.num2date' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.datestr2num' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.drange' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.epoch2num' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.num2epoch' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.DateFormatter' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.DateLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.RRuleLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.YearLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.MonthLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.WeekdayLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.DayLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.HourLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.MinuteLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.SecondLocator' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.rrule' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.MO' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.TU' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.WE' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.TH' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.FR' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.SA' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.SU' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.YEARLY' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.MONTHLY' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.WEEKLY' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.DAILY' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.HOURLY' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.MINUTELY' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.SECONDLY' imported but unused
.\pylab.py:18:1: F401 'matplotlib.dates.relativedelta' imported but unused
.\pylab.py:31:1: F401 'matplotlib.mlab.detrend' imported but unused
.\pylab.py:31:1: F401 'matplotlib.mlab.detrend_linear' imported but unused
.\pylab.py:31:1: F401 'matplotlib.mlab.detrend_mean' imported but unused
.\pylab.py:31:1: F401 'matplotlib.mlab.detrend_none' imported but unused
.\pylab.py:31:1: F401 'matplotlib.mlab.window_hanning' imported but unused
.\pylab.py:31:1: F401 'matplotlib.mlab.window_none' imported but unused
.\pylab.py:35:1: F401 'matplotlib.cbook' imported but unused
.\pylab.py:35:1: F401 'matplotlib.mlab' imported but unused
.\pylab.py:35:1: F401 'matplotlib.pyplot as plt' imported but unused
.\pylab.py:36:1: F401 'matplotlib.pyplot.*' imported but unused
.\pylab.py:38:1: F401 'numpy.*' imported but unused
.\pylab.py:39:1: F401 'numpy.fft.*' imported but unused
.\pylab.py:40:1: F401 'numpy.random.*' imported but unused
.\pylab.py:41:1: F401 'numpy.linalg.*' imported but unused
.\pylab.py:43:1: F401 'numpy as np' imported but unused
.\pylab.py:44:1: F401 'numpy.ma' imported but unused
.\pylab.py:47:1: F401 'datetime' imported but unused
.\pyplot.py:38:1: F401 'numbers.Number' imported but unused
.\pyplot.py:47:1: F401 'cycler.cycler' imported but unused
.\pyplot.py:52:1: F401 'matplotlib.style' imported but unused
.\pyplot.py:53:1: F401 'matplotlib.interactive' imported but unused
.\pyplot.py:62:1: F401 'matplotlib.axes.Subplot' imported but unused
.\pyplot.py:65:1: F401 'matplotlib.scale.get_scale_names' imported but unused
.\pyplot.py:68:1: F401 'matplotlib.cm.get_cmap' imported but unused
.\pyplot.py:68:1: F401 'matplotlib.cm.register_cmap' imported but unused
.\pyplot.py:73:1: F401 'matplotlib.colors.Normalize' imported but unused
.\pyplot.py:74:1: F401 'matplotlib.lines.Line2D' imported but unused
.\pyplot.py:75:1: F401 'matplotlib.text.Text' imported but unused
.\pyplot.py:75:1: F401 'matplotlib.text.Annotation' imported but unused
.\pyplot.py:76:1: F401 'matplotlib.patches.Polygon' imported but unused
.\pyplot.py:76:1: F401 'matplotlib.patches.Rectangle' imported but unused
.\pyplot.py:76:1: F401 'matplotlib.patches.Circle' imported but unused
.\pyplot.py:76:1: F401 'matplotlib.patches.Arrow' imported but unused
.\pyplot.py:77:1: F401 'matplotlib.widgets.Button' imported but unused
.\pyplot.py:77:1: F401 'matplotlib.widgets.Slider' imported but unused
.\pyplot.py:77:1: F401 'matplotlib.widgets.Widget' imported but unused
.\pyplot.py:79:1: F401 '.ticker.TickHelper' imported but unused
.\pyplot.py:79:1: F401 '.ticker.Formatter' imported but unused
.\pyplot.py:79:1: F401 '.ticker.FixedFormatter' imported but unused
.\pyplot.py:79:1: F401 '.ticker.NullFormatter' imported but unused
.\pyplot.py:79:1: F401 '.ticker.FuncFormatter' imported but unused
.\pyplot.py:79:1: F401 '.ticker.FormatStrFormatter' imported but unused
.\pyplot.py:79:1: F401 '.ticker.ScalarFormatter' imported but unused
.\pyplot.py:79:1: F401 '.ticker.LogFormatter' imported but unused
.\pyplot.py:79:1: F401 '.ticker.LogFormatterExponent' imported but unused
.\pyplot.py:79:1: F401 '.ticker.LogFormatterMathtext' imported but unused
.\pyplot.py:79:1: F401 '.ticker.Locator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.IndexLocator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.FixedLocator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.NullLocator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.LinearLocator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.LogLocator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.AutoLocator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.MultipleLocator' imported but unused
.\pyplot.py:79:1: F401 '.ticker.MaxNLocator' imported but unused
.\text.py:17:1: F401 '.textpath.TextPath' imported but unused
.\__init__.py:102:1: F401 'warnings' imported but unused
.\__init__.py:104:1: F401 'numpy' imported but unused
.\__init__.py:110:1: F401 'matplotlib.cbook.MatplotlibDeprecationWarning' imported but unused
.\__init__.py:111:1: F401 'matplotlib.cbook.mplDeprecation' imported but unused
.\__init__.py:112:1: F401 'matplotlib.rcsetup.cycler' imported but unused
.\__init__.py:193:5: F401 '.ft2font' imported but unused
.\__init__.py:1452:1: F401 'matplotlib.cm._colormaps as colormaps' imported but unused
.\axes\_axes.py:15:1: F401 'matplotlib.dates' imported but unused
.\axes\__init__.py:1:1: F401 '._subplots.*' imported but unused
.\axes\__init__.py:2:1: F401 '._axes.*' imported but unused
.\backends\backend_agg.py:32:1: F401 'PIL.Image' imported but unused
.\backends\backend_gtk3.py:13:1: F401 'matplotlib.figure.Figure' imported but unused
.\backends\backend_gtk3.py:31:1: F401 '._backend_gtk.backend_version' imported but unused
.\backends\backend_gtk4.py:4:1: F401 'pathlib.Path' imported but unused
.\backends\backend_gtk4.py:28:1: F401 '._backend_gtk.backend_version' imported but unused
.\backends\backend_nbagg.py:23:1: F401 'matplotlib.backends.backend_webagg_core.TimerTornado' imported but unused
.\backends\backend_nbagg.py:23:1: F401 'matplotlib.backends.backend_webagg_core.TimerAsyncio' imported but unused
.\backends\backend_pgf.py:20:1: F401 'matplotlib.backend_bases.GraphicsContextBase' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.backend_version' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.SPECIAL_KEYS' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.cursord' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt._create_qApp' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.TimerQT' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.MainWindow' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.FigureCanvasQT' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.FigureManagerQT' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.ToolbarQt' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.NavigationToolbar2QT' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.SubplotToolQt' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.SaveFigureQt' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.ConfigureSubplotsQt' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.SetCursorQt' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.RubberbandQt' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.HelpQt' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.ToolCopyToClipboardQT' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.FigureCanvasBase' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.FigureManagerBase' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.MouseButton' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.NavigationToolbar2' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.TimerBase' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.ToolContainerBase' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.figureoptions' imported but unused
.\backends\backend_qt5.py:1:1: F401 '.backend_qt.Gcf' imported but unused
.\backends\backend_qt5agg.py:5:1: F401 '.backend_qtagg.FigureCanvasQTAgg' imported but unused
.\backends\backend_qt5agg.py:5:1: F401 '.backend_qtagg.FigureManagerQT' imported but unused
.\backends\backend_qt5agg.py:5:1: F401 '.backend_qtagg.NavigationToolbar2QT' imported but unused
.\backends\backend_qt5agg.py:5:1: F401 '.backend_qtagg.backend_version' imported but unused
.\backends\backend_qt5agg.py:5:1: F401 '.backend_qtagg.FigureCanvasAgg' imported but unused
.\backends\backend_qt5agg.py:5:1: F401 '.backend_qtagg.FigureCanvasQT' imported but unused
.\backends\backend_qt5cairo.py:1:1: F401 '.backend_qtcairo.FigureCanvasQTCairo' imported but unused
.\backends\backend_qt5cairo.py:1:1: F401 '.backend_qtcairo.FigureCanvasCairo' imported but unused
.\backends\backend_qt5cairo.py:1:1: F401 '.backend_qtcairo.FigureCanvasQT' imported but unused
.\backends\backend_qtagg.py:12:1: F401 '.backend_qt.QtWidgets' imported but unused
.\backends\backend_qtagg.py:12:1: F401 '.backend_qt.FigureManagerQT' imported but unused
.\backends\backend_qtagg.py:12:1: F401 '.backend_qt.NavigationToolbar2QT' imported but unused
.\backends\backend_qtagg.py:12:1: F401 '.backend_qt.backend_version' imported but unused
.\backends\backend_tkagg.py:3:1: F401 '._backend_tk.FigureManagerTk' imported but unused
.\backends\backend_tkagg.py:3:1: F401 '._backend_tk.NavigationToolbar2Tk' imported but unused
.\backends\backend_webagg.py:39:1: F401 '.backend_webagg_core.TimerAsyncio' imported but unused
.\backends\backend_webagg.py:39:1: F401 '.backend_webagg_core.TimerTornado' imported but unused
.\backends\backend_wx.py:28:1: F401 'matplotlib.backend_managers.ToolManager' imported but unused
.\backends\backend_wx.py:29:1: F401 'matplotlib.figure.Figure' imported but unused
.\backends\backend_wx.py:32:1: F401 'matplotlib.widgets.SubplotTool' imported but unused
.\backends\backend_wxagg.py:5:1: F401 '.backend_wx.NavigationToolbar2Wx as NavigationToolbar2WxAgg' imported but unused
.\backends\backend_wxcairo.py:5:1: F401 '.backend_wx.NavigationToolbar2Wx as NavigationToolbar2WxCairo' imported but unused
.\cbook\deprecation.py:2:1: F401 'matplotlib._api.deprecation.MatplotlibDeprecationWarning' imported but unused
.\cbook\deprecation.py:2:1: F401 'matplotlib._api.deprecation.mplDeprecation' imported but unused
.\cbook\deprecation.py:2:1: F401 'matplotlib._api.deprecation.deprecated' imported but unused
.\cbook\__init__.py:32:1: F401 'matplotlib._api.deprecation.mplDeprecation' imported but unused
.\style\__init__.py:1:1: F401 '.core.use' imported but unused
.\style\__init__.py:1:1: F401 '.core.context' imported but unused
.\style\__init__.py:1:1: F401 '.core.available' imported but unused
.\style\__init__.py:1:1: F401 '.core.library' imported but unused
.\style\__init__.py:1:1: F401 '.core.reload_library' imported but unused
.\tests\conftest.py:1:1: F401 'matplotlib.testing.conftest.mpl_test_settings' imported but unused
.\tests\conftest.py:1:1: F401 'matplotlib.testing.conftest.pytest_configure' imported but unused
.\tests\conftest.py:1:1: F401 'matplotlib.testing.conftest.pytest_unconfigure' imported but unused
.\tests\conftest.py:1:1: F401 'matplotlib.testing.conftest.pd' imported but unused
.\tests\test_backend_qt.py:21:5: F401 'matplotlib.backends.qt_compat.QtGui' imported but unused
.\tests\test_backend_qt.py:21:5: F401 'matplotlib.backends.qt_compat.QtWidgets' imported but unused
.\tests\test_backend_qt.py:91:5: F401 'matplotlib.backends.qt_compat.QtCore' imported but unused
.\tests\test_backend_qt.py:142:5: F401 'sys' imported but unused
.\tests\test_backend_qt.py:145:5: F401 'matplotlib.backends.qt_compat.QtCore' imported but unused
.\tests\test_backend_qt.py:502:5: F401 'matplotlib.backends.qt_compat.QtCore' imported but unused
.\tri\__init__.py:5:1: F401 '.triangulation.*' imported but unused
.\tri\__init__.py:6:1: F401 '.tricontour.*' imported but unused
.\tri\__init__.py:7:1: F401 '.tritools.*' imported but unused
.\tri\__init__.py:8:1: F401 '.trifinder.*' imported but unused
.\tri\__init__.py:9:1: F401 '.triinterpolate.*' imported but unused
.\tri\__init__.py:10:1: F401 '.trirefine.*' imported but unused
.\tri\__init__.py:11:1: F401 '.tripcolor.*' imported but unused
.\tri\__init__.py:12:1: F401 '.triplot.*' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.deprecated' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.warn_deprecated' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.rename_parameter' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.delete_parameter' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.make_keyword_only' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.deprecate_method_override' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.deprecate_privatize_attribute' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.suppress_matplotlib_deprecation_warning' imported but unused
.\_api\__init__.py:19:1: F401 '.deprecation.MatplotlibDeprecationWarning' imported but unused
pylint
(base) C:\Users\Oscar\matplotlib\lib>pylint --disable=all --enable=W0611 matplotlib
************* Module matplotlib.lines
matplotlib\lines.py:12:0: W0611: Unused matplotlib imported as mpl (unused-import)
matplotlib\lines.py:13:0: W0611: Unused import artist (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETLEFT imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETRIGHT imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETUP imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETDOWN imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETLEFTBASE imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETRIGHTBASE imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETUPBASE imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused CARETDOWNBASE imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused TICKLEFT imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused TICKRIGHT imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused TICKUP imported from markers (unused-import)
matplotlib\lines.py:25:0: W0611: Unused TICKDOWN imported from markers (unused-import)
************* Module matplotlib.pylab
matplotlib\pylab.py:14:0: W0611: Unused flatten imported from matplotlib.cbook (unused-import)
matplotlib\pylab.py:14:0: W0611: Unused silent_list imported from matplotlib.cbook (unused-import)
matplotlib\pylab.py:16:0: W0611: Unused matplotlib imported as mpl (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused date2num imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused num2date imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused datestr2num imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused drange imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused epoch2num imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused num2epoch imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused DateFormatter imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused DateLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused RRuleLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused YearLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused MonthLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused WeekdayLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused DayLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused HourLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused MinuteLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused SecondLocator imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused rrule imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused MO imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused TU imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused WE imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused TH imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused FR imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused SA imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused SU imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused YEARLY imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused MONTHLY imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused WEEKLY imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused DAILY imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused HOURLY imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused MINUTELY imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused SECONDLY imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:18:0: W0611: Unused relativedelta imported from matplotlib.dates (unused-import)
matplotlib\pylab.py:31:0: W0611: Unused detrend imported from matplotlib.mlab (unused-import)
matplotlib\pylab.py:31:0: W0611: Unused detrend_linear imported from matplotlib.mlab (unused-import)
matplotlib\pylab.py:31:0: W0611: Unused detrend_mean imported from matplotlib.mlab (unused-import)
matplotlib\pylab.py:31:0: W0611: Unused detrend_none imported from matplotlib.mlab (unused-import)
matplotlib\pylab.py:31:0: W0611: Unused window_hanning imported from matplotlib.mlab (unused-import)
matplotlib\pylab.py:31:0: W0611: Unused window_none imported from matplotlib.mlab (unused-import)
matplotlib\pylab.py:35:0: W0611: Unused cbook imported from matplotlib (unused-import)
matplotlib\pylab.py:35:0: W0611: Unused mlab imported from matplotlib (unused-import)
matplotlib\pylab.py:35:0: W0611: Unused pyplot imported from matplotlib as plt (unused-import)
matplotlib\pylab.py:43:0: W0611: Unused numpy imported as np (unused-import)
matplotlib\pylab.py:44:0: W0611: Unused numpy.ma imported as ma (unused-import)
matplotlib\pylab.py:47:0: W0611: Unused import datetime (unused-import)
************* Module matplotlib.pyplot
matplotlib\pyplot.py:38:0: W0611: Unused Number imported from numbers (unused-import)
matplotlib\pyplot.py:47:0: W0611: Unused cycler imported from cycler (unused-import)
matplotlib\pyplot.py:52:0: W0611: Unused style imported from matplotlib (unused-import)
matplotlib\pyplot.py:53:0: W0611: Unused interactive imported from matplotlib (unused-import)
matplotlib\pyplot.py:62:0: W0611: Unused Subplot imported from matplotlib.axes (unused-import)
matplotlib\pyplot.py:65:0: W0611: Unused get_scale_names imported from matplotlib.scale (unused-import)
matplotlib\pyplot.py:68:0: W0611: Unused get_cmap imported from matplotlib.cm (unused-import)
matplotlib\pyplot.py:68:0: W0611: Unused register_cmap imported from matplotlib.cm (unused-import)
matplotlib\pyplot.py:73:0: W0611: Unused Normalize imported from matplotlib.colors (unused-import)
matplotlib\pyplot.py:74:0: W0611: Unused Line2D imported from matplotlib.lines (unused-import)
matplotlib\pyplot.py:75:0: W0611: Unused Text imported from matplotlib.text (unused-import)
matplotlib\pyplot.py:75:0: W0611: Unused Annotation imported from matplotlib.text (unused-import)
matplotlib\pyplot.py:76:0: W0611: Unused Polygon imported from matplotlib.patches (unused-import)
matplotlib\pyplot.py:76:0: W0611: Unused Rectangle imported from matplotlib.patches (unused-import)
matplotlib\pyplot.py:76:0: W0611: Unused Circle imported from matplotlib.patches (unused-import)
matplotlib\pyplot.py:76:0: W0611: Unused Arrow imported from matplotlib.patches (unused-import)
matplotlib\pyplot.py:77:0: W0611: Unused Button imported from matplotlib.widgets (unused-import)
matplotlib\pyplot.py:77:0: W0611: Unused Slider imported from matplotlib.widgets (unused-import)
matplotlib\pyplot.py:77:0: W0611: Unused Widget imported from matplotlib.widgets (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused TickHelper imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused Formatter imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused FixedFormatter imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused NullFormatter imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused FuncFormatter imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused FormatStrFormatter imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused ScalarFormatter imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused LogFormatter imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused LogFormatterExponent imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused LogFormatterMathtext imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused Locator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused IndexLocator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused FixedLocator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused NullLocator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused LinearLocator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused LogLocator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused AutoLocator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused MultipleLocator imported from ticker (unused-import)
matplotlib\pyplot.py:79:0: W0611: Unused MaxNLocator imported from ticker (unused-import)
************* Module matplotlib.text
matplotlib\text.py:17:0: W0611: Unused TextPath imported from textpath (unused-import)
************* Module matplotlib.axes._axes
matplotlib\axes\_axes.py:10:0: W0611: Unused import matplotlib.category (unused-import)
matplotlib\axes\_axes.py:15:0: W0611: Unused import matplotlib.dates (unused-import)
************* Module matplotlib.backends.backend_agg
matplotlib\backends\backend_agg.py:32:0: W0611: Unused Image imported from PIL (unused-import)
************* Module matplotlib.backends.backend_gtk3
matplotlib\backends\backend_gtk3.py:13:0: W0611: Unused Figure imported from matplotlib.figure (unused-import)
matplotlib\backends\backend_gtk3.py:31:0: W0611: Unused backend_version imported from _backend_gtk (unused-import)
************* Module matplotlib.backends.backend_gtk4
matplotlib\backends\backend_gtk4.py:4:0: W0611: Unused Path imported from pathlib (unused-import)
matplotlib\backends\backend_gtk4.py:28:0: W0611: Unused backend_version imported from _backend_gtk (unused-import)
************* Module matplotlib.backends.backend_nbagg
matplotlib\backends\backend_nbagg.py:23:0: W0611: Unused TimerTornado imported from matplotlib.backends.backend_webagg_core (unused-import)
matplotlib\backends\backend_nbagg.py:23:0: W0611: Unused TimerAsyncio imported from matplotlib.backends.backend_webagg_core (unused-import)
************* Module matplotlib.backends.backend_pgf
matplotlib\backends\backend_pgf.py:20:0: W0611: Unused GraphicsContextBase imported from matplotlib.backend_bases (unused-import)
************* Module matplotlib.backends.backend_qt5
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused backend_version imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused SPECIAL_KEYS imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused cursord imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused _create_qApp imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused TimerQT imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused MainWindow imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused FigureCanvasQT imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused FigureManagerQT imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused ToolbarQt imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused NavigationToolbar2QT imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused SubplotToolQt imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused SaveFigureQt imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused ConfigureSubplotsQt imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused SetCursorQt imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused RubberbandQt imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused HelpQt imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused ToolCopyToClipboardQT imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused FigureCanvasBase imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused FigureManagerBase imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused MouseButton imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused NavigationToolbar2 imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused TimerBase imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused ToolContainerBase imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused figureoptions imported from backend_qt (unused-import)
matplotlib\backends\backend_qt5.py:1:0: W0611: Unused Gcf imported from backend_qt (unused-import)
************* Module matplotlib.backends.backend_qt5agg
matplotlib\backends\backend_qt5agg.py:5:0: W0611: Unused FigureCanvasQTAgg imported from backend_qtagg (unused-import)
matplotlib\backends\backend_qt5agg.py:5:0: W0611: Unused FigureManagerQT imported from backend_qtagg (unused-import)
matplotlib\backends\backend_qt5agg.py:5:0: W0611: Unused NavigationToolbar2QT imported from backend_qtagg (unused-import)
matplotlib\backends\backend_qt5agg.py:5:0: W0611: Unused backend_version imported from backend_qtagg (unused-import)
matplotlib\backends\backend_qt5agg.py:5:0: W0611: Unused FigureCanvasAgg imported from backend_qtagg (unused-import)
matplotlib\backends\backend_qt5agg.py:5:0: W0611: Unused FigureCanvasQT imported from backend_qtagg (unused-import)
************* Module matplotlib.backends.backend_qt5cairo
matplotlib\backends\backend_qt5cairo.py:1:0: W0611: Unused FigureCanvasQTCairo imported from backend_qtcairo (unused-import)
matplotlib\backends\backend_qt5cairo.py:1:0: W0611: Unused FigureCanvasCairo imported from backend_qtcairo (unused-import)
matplotlib\backends\backend_qt5cairo.py:1:0: W0611: Unused FigureCanvasQT imported from backend_qtcairo (unused-import)
************* Module matplotlib.backends.backend_qtagg
matplotlib\backends\backend_qtagg.py:12:0: W0611: Unused QtWidgets imported from backend_qt (unused-import)
matplotlib\backends\backend_qtagg.py:12:0: W0611: Unused FigureManagerQT imported from backend_qt (unused-import)
matplotlib\backends\backend_qtagg.py:12:0: W0611: Unused NavigationToolbar2QT imported from backend_qt (unused-import)
matplotlib\backends\backend_qtagg.py:12:0: W0611: Unused backend_version imported from backend_qt (unused-import)
************* Module matplotlib.backends.backend_tkagg
matplotlib\backends\backend_tkagg.py:3:0: W0611: Unused FigureManagerTk imported from _backend_tk (unused-import)
matplotlib\backends\backend_tkagg.py:3:0: W0611: Unused NavigationToolbar2Tk imported from _backend_tk (unused-import)
************* Module matplotlib.backends.backend_webagg
matplotlib\backends\backend_webagg.py:39:0: W0611: Unused TimerAsyncio imported from backend_webagg_core (unused-import)
matplotlib\backends\backend_webagg.py:39:0: W0611: Unused TimerTornado imported from backend_webagg_core (unused-import)
************* Module matplotlib.backends.backend_wx
matplotlib\backends\backend_wx.py:28:0: W0611: Unused ToolManager imported from matplotlib.backend_managers (unused-import)
matplotlib\backends\backend_wx.py:29:0: W0611: Unused Figure imported from matplotlib.figure (unused-import)
matplotlib\backends\backend_wx.py:32:0: W0611: Unused SubplotTool imported from matplotlib.widgets (unused-import)
************* Module matplotlib.backends.backend_wxagg
matplotlib\backends\backend_wxagg.py:5:0: W0611: Unused NavigationToolbar2Wx imported from backend_wx as NavigationToolbar2WxAgg (unused-import)
************* Module matplotlib.backends.backend_wxcairo
matplotlib\backends\backend_wxcairo.py:5:0: W0611: Unused NavigationToolbar2Wx imported from backend_wx as NavigationToolbar2WxCairo (unused-import)
************* Module matplotlib.cbook.deprecation
matplotlib\cbook\deprecation.py:2:0: W0611: Unused MatplotlibDeprecationWarning imported from matplotlib._api.deprecation (unused-import)
matplotlib\cbook\deprecation.py:2:0: W0611: Unused mplDeprecation imported from matplotlib._api.deprecation (unused-import)
matplotlib\cbook\deprecation.py:2:0: W0611: Unused deprecated imported from matplotlib._api.deprecation (unused-import)
************* Module matplotlib.tests.conftest
matplotlib\tests\conftest.py:1:0: W0611: Unused mpl_test_settings imported from matplotlib.testing.conftest (unused-import)
matplotlib\tests\conftest.py:1:0: W0611: Unused pytest_configure imported from matplotlib.testing.conftest (unused-import)
matplotlib\tests\conftest.py:1:0: W0611: Unused pytest_unconfigure imported from matplotlib.testing.conftest (unused-import)
matplotlib\tests\conftest.py:1:0: W0611: Unused pd imported from matplotlib.testing.conftest (unused-import)
************* Module matplotlib.tests.test_backend_qt
matplotlib\tests\test_backend_qt.py:21:4: W0611: Unused QtGui imported from matplotlib.backends.qt_compat (unused-import)
matplotlib\tests\test_backend_qt.py:21:4: W0611: Unused QtWidgets imported from matplotlib.backends.qt_compat (unused-import)
************* Module matplotlib.tests.test_determinism
matplotlib\tests\test_determinism.py:12:0: W0611: Unused import matplotlib.testing.compare (unused-import)

Apart from being a bit "disturbing" when the editor shows warnings, it is primarily a problem if you have to modify a line with unused imports as pylint will then complain and fail the test.

To disable these warnings use:

from ... import ...  # noqa: F401 # pylint: disable=W0611

@pedrompecanha
Copy link
Contributor

Hey! I'd love to know the state of this, as I think it would be a great opportunity for me to understand how to utilize linters and other tools to find unused imports.

@timhoffm
Copy link
Member Author

@pedrompecanha Thanks for your interest. This is not a technical issue. The way to use linters to find unused imports is already written down in the collapsed sections of #22149 (comment).

The key task here is to make judgement calls on the unused imported items, whether we want to remove them or whether they are an intentional reimport and we want to consider them part of the public API of pyplot.

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

No branches or pull requests

3 participants