From b8002a4ababf6bac753cd5450f8efc22e71a70a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Fri, 8 Apr 2022 00:03:58 +0200 Subject: [PATCH] yet more typing magic --- src/c3nav/mapdata/utils/mpl.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/c3nav/mapdata/utils/mpl.py b/src/c3nav/mapdata/utils/mpl.py index 969bf98d..6f21bc51 100644 --- a/src/c3nav/mapdata/utils/mpl.py +++ b/src/c3nav/mapdata/utils/mpl.py @@ -12,7 +12,7 @@ from c3nav.mapdata.utils.geometry import assert_multipolygon class MplPathProxy(ABC): @abstractmethod - def intersects_path(self, path: Path) -> bool: + def intersects_path(self, path: Path, filled: bool = False) -> bool: pass @abstractmethod @@ -38,7 +38,7 @@ class MplPolygonPath(MplPathProxy): def exteriors(self): return (self.exterior, ) - def intersects_path(self, path, filled=False): + def intersects_path(self, path: Path, filled: bool = False) -> bool: if filled: if not self.exterior.intersects_path(path, filled=True): return False @@ -56,7 +56,7 @@ class MplPolygonPath(MplPathProxy): return True return False - def contains_points(self, points): + def contains_points(self, points: np.ndarray[tuple[int, Literal[2]], np.uint32]) -> bool: # noinspection PyTypeChecker result = self.exterior.contains_points(points) for interior in self.interiors: @@ -66,7 +66,7 @@ class MplPolygonPath(MplPathProxy): result[ix] = np.logical_not(interior.contains_points(points[ix])) return result - def contains_point(self, point): + def contains_point(self, point: tuple[int, int]) -> bool: if not self.exterior.contains_point(point): return False @@ -88,19 +88,19 @@ class MplMultipolygonPath(MplPathProxy): def exteriors(self): return tuple(polygon.exterior for polygon in self.polygons) - def intersects_path(self, path, filled=False): + def intersects_path(self, path: Path, filled: bool = False) -> bool: for polygon in self.polygons: if polygon.intersects_path(path, filled=filled): return True return False - def contains_point(self, point): + def contains_point(self, point: tuple[int, int]) -> bool: for polygon in self.polygons: if polygon.contains_point(point): return True return False - def contains_points(self, points): + def contains_points(self, points: np.ndarray[tuple[int, Literal[2]], np.uint32]) -> bool: result = np.full((len(points),), fill_value=False, dtype=np.bool) for polygon in self.polygons: ix = np.argwhere(np.logical_not(result)).flatten()