From f44497ede9857856c05e5253fd4488df72f79ecc Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 9 Jul 2021 05:27:45 -0400 Subject: [PATCH 1/4] Fix creation of GTK backend version. --- lib/matplotlib/backends/backend_gtk3.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/matplotlib/backends/backend_gtk3.py b/lib/matplotlib/backends/backend_gtk3.py index 060dca2c2aca..045549e28c13 100644 --- a/lib/matplotlib/backends/backend_gtk3.py +++ b/lib/matplotlib/backends/backend_gtk3.py @@ -33,7 +33,7 @@ _log = logging.getLogger(__name__) backend_version = "%s.%s.%s" % ( - Gtk.get_major_version(), Gtk.get_micro_version(), Gtk.get_minor_version()) + Gtk.get_major_version(), Gtk.get_minor_version(), Gtk.get_micro_version()) try: _display = Gdk.Display.get_default() From db08e7a9f92dfa9dab98694ddb03ddbc4d6cc49b Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Fri, 9 Jul 2021 05:28:38 -0400 Subject: [PATCH 2/4] Use f-strings more in GTK backend. --- lib/matplotlib/backends/backend_gtk3.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/matplotlib/backends/backend_gtk3.py b/lib/matplotlib/backends/backend_gtk3.py index 045549e28c13..7214f3e5f401 100644 --- a/lib/matplotlib/backends/backend_gtk3.py +++ b/lib/matplotlib/backends/backend_gtk3.py @@ -263,7 +263,7 @@ def _get_key(self, event): for key_mask, prefix in modifiers: if event.state & key_mask: if not (prefix == 'shift' and unikey.isprintable()): - key = '{0}+{1}'.format(prefix, key) + key = f'{prefix}+{key}' return key def configure_event(self, widget, event): @@ -577,7 +577,7 @@ def save_figure(self, *args): ff = Gtk.FileFilter() ff.set_name(name) for fmt in fmts: - ff.add_pattern("*." + fmt) + ff.add_pattern(f'*.{fmt}') dialog.add_filter(ff) if self.canvas.get_default_filetype() in fmts: dialog.set_filter(ff) @@ -587,7 +587,7 @@ def on_notify_filter(*args): name = dialog.get_filter().get_name() fmt = self.canvas.get_supported_filetypes_grouped()[name][0] dialog.set_current_name( - str(Path(dialog.get_current_name()).with_suffix("." + fmt))) + str(Path(dialog.get_current_name()).with_suffix(f'.{fmt}'))) dialog.set_current_folder(mpl.rcParams["savefig.directory"]) dialog.set_current_name(self.canvas.get_default_filename()) @@ -678,7 +678,7 @@ def toggle_toolitem(self, name, toggled): def remove_toolitem(self, name): if name not in self._toolitems: - self.toolmanager.message_event('%s Not in toolbar' % name, self) + self.toolmanager.message_event(f'{name} not in toolbar', self) return for group in self._groups: From 027e1eb61075f93369b17d26518dd15e4f941625 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Tue, 20 Jul 2021 16:44:55 -0400 Subject: [PATCH 3/4] Use Cursors instead of cursors in GTK3. --- lib/matplotlib/backends/backend_gtk3.py | 27 +++++++++++++------------ 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/lib/matplotlib/backends/backend_gtk3.py b/lib/matplotlib/backends/backend_gtk3.py index 7214f3e5f401..5747e6ced397 100644 --- a/lib/matplotlib/backends/backend_gtk3.py +++ b/lib/matplotlib/backends/backend_gtk3.py @@ -9,7 +9,8 @@ from matplotlib._pylab_helpers import Gcf from matplotlib.backend_bases import ( _Backend, FigureCanvasBase, FigureManagerBase, NavigationToolbar2, - TimerBase, ToolContainerBase, cursors) + TimerBase, ToolContainerBase) +from matplotlib.backend_tools import Cursors from matplotlib.figure import Figure from matplotlib.widgets import SubplotTool @@ -38,11 +39,11 @@ try: _display = Gdk.Display.get_default() cursord = { # deprecated in Matplotlib 3.5. - cursors.MOVE: Gdk.Cursor.new_from_name(_display, "move"), - cursors.HAND: Gdk.Cursor.new_from_name(_display, "pointer"), - cursors.POINTER: Gdk.Cursor.new_from_name(_display, "default"), - cursors.SELECT_REGION: Gdk.Cursor.new_from_name(_display, "crosshair"), - cursors.WAIT: Gdk.Cursor.new_from_name(_display, "wait"), + Cursors.MOVE: Gdk.Cursor.new_from_name(_display, "move"), + Cursors.HAND: Gdk.Cursor.new_from_name(_display, "pointer"), + Cursors.POINTER: Gdk.Cursor.new_from_name(_display, "default"), + Cursors.SELECT_REGION: Gdk.Cursor.new_from_name(_display, "crosshair"), + Cursors.WAIT: Gdk.Cursor.new_from_name(_display, "wait"), } except TypeError as exc: cursord = {} # deprecated in Matplotlib 3.5. @@ -90,13 +91,13 @@ def _create_application(): @functools.lru_cache() def _mpl_to_gtk_cursor(mpl_cursor): name = { - cursors.MOVE: "move", - cursors.HAND: "pointer", - cursors.POINTER: "default", - cursors.SELECT_REGION: "crosshair", - cursors.WAIT: "wait", - cursors.RESIZE_HORIZONTAL: "ew-resize", - cursors.RESIZE_VERTICAL: "ns-resize", + Cursors.MOVE: "move", + Cursors.HAND: "pointer", + Cursors.POINTER: "default", + Cursors.SELECT_REGION: "crosshair", + Cursors.WAIT: "wait", + Cursors.RESIZE_HORIZONTAL: "ew-resize", + Cursors.RESIZE_VERTICAL: "ns-resize", }[mpl_cursor] return Gdk.Cursor.new_from_name(Gdk.Display.get_default(), name) From d7889a2531eaaf5a00490e13bda32fac86e5a8ae Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Wed, 21 Jul 2021 01:45:10 -0400 Subject: [PATCH 4/4] Correctly prepare coverage before codecov upload. The new codecov uploader strictly does upload, and none of the magic preparation that that bash uploader did. So we need to make sure we have a full coverage XML report to upload. --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3f3fb74742fd..64508593e238 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -219,7 +219,7 @@ jobs: run: | ${{ matrix.XVFB_RUN }} python -mpytest -raR -n auto \ --maxfail=50 --timeout=300 --durations=25 \ - --cov-report= --cov=lib --log-level=DEBUG + --cov-report=xml --cov=lib --log-level=DEBUG - name: Filter C coverage run: |