diff --git a/lib/matplotlib/artist.py b/lib/matplotlib/artist.py index c1e7c7a67c76..93a91a67538b 100644 --- a/lib/matplotlib/artist.py +++ b/lib/matplotlib/artist.py @@ -383,7 +383,7 @@ def contains(self, mouseevent): -------- set_contains, get_contains """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) _log.warning("%r needs 'contains' method", self.__class__.__name__) return False, {} @@ -411,6 +411,8 @@ def contains(artist: Artist, event: MouseEvent) -> bool, dict implementation of the respective artist, but may provide additional information. """ + if not callable(picker): + raise TypeError("picker is not a callable") self._contains = picker def get_contains(self): diff --git a/lib/matplotlib/axes/_base.py b/lib/matplotlib/axes/_base.py index 8287983a3039..5786cc6c1d46 100644 --- a/lib/matplotlib/axes/_base.py +++ b/lib/matplotlib/axes/_base.py @@ -4229,7 +4229,7 @@ def get_children(self): def contains(self, mouseevent): # docstring inherited. - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) return self.patch.contains(mouseevent) diff --git a/lib/matplotlib/axis.py b/lib/matplotlib/axis.py index e33e55a2ee5a..93472c729223 100644 --- a/lib/matplotlib/axis.py +++ b/lib/matplotlib/axis.py @@ -246,7 +246,7 @@ def contains(self, mouseevent): This function always returns false. It is more useful to test if the axis as a whole contains the mouse rather than the set of tick marks. """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) return False, {} @@ -1858,7 +1858,7 @@ class XAxis(Axis): def contains(self, mouseevent): """Test whether the mouse event occurred in the x axis. """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) x, y = mouseevent.x, mouseevent.y @@ -2202,7 +2202,7 @@ def contains(self, mouseevent): Returns *True* | *False* """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) x, y = mouseevent.x, mouseevent.y diff --git a/lib/matplotlib/collections.py b/lib/matplotlib/collections.py index a58d60e19d65..9b9bb068821b 100644 --- a/lib/matplotlib/collections.py +++ b/lib/matplotlib/collections.py @@ -352,7 +352,7 @@ def contains(self, mouseevent): Returns ``bool, dict(ind=itemlist)``, where every item in itemlist contains the event. """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) if not self.get_visible(): diff --git a/lib/matplotlib/figure.py b/lib/matplotlib/figure.py index f86c0c78936c..ddd4d7eec4f1 100644 --- a/lib/matplotlib/figure.py +++ b/lib/matplotlib/figure.py @@ -656,7 +656,7 @@ def contains(self, mouseevent): ------- bool, {} """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) inside = self.bbox.contains(mouseevent.x, mouseevent.y) return inside, {} diff --git a/lib/matplotlib/image.py b/lib/matplotlib/image.py index f1970a356536..2ec7eee423ec 100644 --- a/lib/matplotlib/image.py +++ b/lib/matplotlib/image.py @@ -613,7 +613,7 @@ def contains(self, mouseevent): """ Test whether the mouse event occurred within the image. """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) # TODO: make sure this is consistent with patch and patch # collection on nonlinear transformed coordinates. @@ -1310,7 +1310,7 @@ def get_window_extent(self, renderer=None): def contains(self, mouseevent): """Test whether the mouse event occurred within the image.""" - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) if not self.get_visible(): # or self.get_figure()._renderer is None: diff --git a/lib/matplotlib/patches.py b/lib/matplotlib/patches.py index 0a025ed2f96a..7d7945efe118 100644 --- a/lib/matplotlib/patches.py +++ b/lib/matplotlib/patches.py @@ -127,7 +127,7 @@ def contains(self, mouseevent, radius=None): Returns T/F, {} """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) radius = self._process_radius(radius) inside = self.get_path().contains_point( diff --git a/lib/matplotlib/table.py b/lib/matplotlib/table.py index 33827fc726fe..55eadc51b0c1 100644 --- a/lib/matplotlib/table.py +++ b/lib/matplotlib/table.py @@ -438,7 +438,7 @@ def _get_grid_bbox(self, renderer): def contains(self, mouseevent): # docstring inherited - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) # TODO: Return index of the cell containing the cursor so that the user diff --git a/lib/matplotlib/text.py b/lib/matplotlib/text.py index 6f036c5ae6e8..5fbe603d84c8 100644 --- a/lib/matplotlib/text.py +++ b/lib/matplotlib/text.py @@ -193,7 +193,7 @@ def contains(self, mouseevent): ------- bool : bool """ - if callable(self._contains): + if self._contains is not None: return self._contains(self, mouseevent) if not self.get_visible() or self._renderer is None: pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy