From 04791606f82c7610ae8d99f7cb2e762d378cb4d4 Mon Sep 17 00:00:00 2001 From: Zhitao Li Date: Fri, 21 Feb 2025 18:26:24 -0600 Subject: [PATCH 1/2] Do a proper mpl version check --- mpl_interactions/generic.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/mpl_interactions/generic.py b/mpl_interactions/generic.py index 3968e15..5239ae3 100644 --- a/mpl_interactions/generic.py +++ b/mpl_interactions/generic.py @@ -1,6 +1,7 @@ """Functions that will be useful irrespective of backend.""" from collections.abc import Callable +from packaging.version import parse import numpy as np from matplotlib import __version__ as mpl_version @@ -32,6 +33,23 @@ ] +def compare_version(v1, v2): + """Compare two version strings. + Returns: + -1 if v1 < v2 + 0 if v1 == v2 + 1 if v1 > v2 + """ + p1 = parse(v1) + p2 = parse(v2) + if p1 < p2: + return -1 + elif p1 > p2: + return 1 + else: + return 0 + + def heatmap_slicer( X, Y, @@ -517,7 +535,7 @@ def __init__( default_props = {"color": "black", "linewidth": 1, "alpha": 0.8} if (props is None) and (lineprops is None): props = default_props - elif (lineprops is not None) and (mpl_version >= "3.7"): + elif (lineprops is not None) and (compare_version(mpl_version, "3.7") == 1): print("*lineprops* is deprecated in matplotlib 3.7+, please use *props*") props = {"color": "black", "linewidth": 1, "alpha": 0.8} @@ -528,7 +546,7 @@ def __init__( if isinstance(lasso_mousebutton, str): lasso_mousebutton = button_dict[lasso_mousebutton.lower()] - if mpl_version < "3.7": + if compare_version(mpl_version, "3.7") == -1: self.lasso = LassoSelector( self.ax, self._onselect, lineprops=props, useblit=useblit, button=lasso_mousebutton ) From 19410262f2490d93e5284cd284097c5b20b9bf7e Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 22 Feb 2025 00:28:40 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- mpl_interactions/generic.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mpl_interactions/generic.py b/mpl_interactions/generic.py index 5239ae3..bc63484 100644 --- a/mpl_interactions/generic.py +++ b/mpl_interactions/generic.py @@ -1,7 +1,6 @@ """Functions that will be useful irrespective of backend.""" from collections.abc import Callable -from packaging.version import parse import numpy as np from matplotlib import __version__ as mpl_version @@ -11,6 +10,7 @@ from matplotlib.pyplot import close, ioff, subplots from matplotlib.widgets import LassoSelector from numpy import asanyarray, asarray, max, min +from packaging.version import parse from .controller import gogogo_controls, prep_scalars from .helpers import ( @@ -35,11 +35,12 @@ def compare_version(v1, v2): """Compare two version strings. - Returns: - -1 if v1 < v2 - 0 if v1 == v2 - 1 if v1 > v2 - """ + + Returns: + -1 if v1 < v2 + 0 if v1 == v2 + 1 if v1 > v2 + """ p1 = parse(v1) p2 = parse(v2) if p1 < p2: