Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6385edc

Browse files
committed
Use overloads for Normalize.__call__ and inverse, ensure NoNorm returns type consistent with superclass
1 parent 47d155d commit 6385edc

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

lib/matplotlib/colors.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2095,9 +2095,13 @@ class NoNorm(Normalize):
20952095
indices directly in a `~matplotlib.cm.ScalarMappable`.
20962096
"""
20972097
def __call__(self, value, clip=None):
2098+
if np.iterable(value):
2099+
return np.ma.array(value)
20982100
return value
20992101

21002102
def inverse(self, value):
2103+
if np.iterable(value):
2104+
return np.ma.array(value)
21012105
return value
21022106

21032107

lib/matplotlib/colors.pyi

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,17 @@ class Normalize:
146146
def clip(self, value: bool) -> None: ...
147147
@staticmethod
148148
def process_value(value: ArrayLike) -> tuple[np.ma.MaskedArray, bool]: ...
149-
def __call__(self, value: ArrayLike, clip: bool | None = ...) -> np.ma.MaskedArray: ...
149+
@overload
150+
def __call__(self, value: float, clip: bool | None = ...) -> float: ...
151+
@overload
152+
def __call__(self, value: np.ndarray, clip: bool | None = ...) -> np.ma.MaskedArray: ...
153+
@overload
154+
def __call__(self, value: ArrayLike, clip: bool | None = ...) -> ArrayLike: ...
155+
@overload
156+
def inverse(self, value: float) -> float: ...
157+
@overload
158+
def inverse(self, value: np.ndarray) -> np.ma.MaskedArray: ...
159+
@overload
150160
def inverse(self, value: ArrayLike) -> ArrayLike: ...
151161
def autoscale(self, A: ArrayLike) -> None: ...
152162
def autoscale_None(self, A: ArrayLike) -> None: ...
@@ -161,8 +171,6 @@ class TwoSlopeNorm(Normalize):
161171
@vcenter.setter
162172
def vcenter(self, value: float) -> None: ...
163173
def autoscale_None(self, A: ArrayLike) -> None: ...
164-
def __call__(self, value: ArrayLike, clip: bool | None = ...) -> np.ma.MaskedArray: ...
165-
def inverse(self, value: ArrayLike) -> ArrayLike: ...
166174

167175
class CenteredNorm(Normalize):
168176
def __init__(
@@ -240,8 +248,6 @@ class PowerNorm(Normalize):
240248
vmax: float | None = ...,
241249
clip: bool = ...,
242250
) -> None: ...
243-
def __call__(self, value: ArrayLike, clip: bool | None = ...) -> np.ma.MaskedArray: ...
244-
def inverse(self, value: ArrayLike) -> ArrayLike: ...
245251

246252
class BoundaryNorm(Normalize):
247253
boundaries: np.ndarray
@@ -256,12 +262,8 @@ class BoundaryNorm(Normalize):
256262
*,
257263
extend: Literal["neither", "both", "min", "max"] = ...
258264
) -> None: ...
259-
def __call__(self, value: ArrayLike, clip: bool | None = ...) -> np.ma.MaskedArray: ...
260-
def inverse(self, value: ArrayLike) -> ArrayLike: ...
261265

262-
class NoNorm(Normalize):
263-
def __call__(self, value: ArrayLike, clip: bool | None = ...) -> np.ma.MaskedArray: ...
264-
def inverse(self, value: ArrayLike) -> ArrayLike: ...
266+
class NoNorm(Normalize): ...
265267

266268
def rgb_to_hsv(arr: ArrayLike) -> np.ndarray: ...
267269
def hsv_to_rgb(hsv: ArrayLike) -> np.ndarray: ...

0 commit comments

Comments
 (0)