-
-
Notifications
You must be signed in to change notification settings - Fork 11.1k
Labels
Description
Describe the issue:
I have a class that has an numpy array as an attribute. Its __array__
method simply calls np.ndarray.__array__
(see below). Mypy complains about non-matching types, but I believe the typehints that I provide are reasonable.
Reproduce the code example:
import numpy as np
import numpy.typing as npt
from typing import Optional
class Test:
def __init__(self, ar: np.ndarray):
self.ar = ar
def __array__(self,
dtype: Optional[npt.DTypeLike] = None,
*,
copy: Optional[bool] = None) -> np.ndarray:
return self.ar.__array__(dtype,copy=copy)
Error message:
test.py:14: error: Argument 1 to "__array__" of "ndarray" has incompatible type "type[Any] | dtype[Any] | _SupportsDType[dtype[Any]] | tuple[Any, Any] | list[Any] | _DTypeDict | str | None | None"; expected "None" [arg-type]
test.py:14: error: Argument "copy" to "__array__" of "ndarray" has incompatible type "builtins.bool | None"; expected "numpy.bool[builtins.bool] | None" [arg-type]
Python and NumPy Versions:
- Python 3.13.3
- NumPy 2.3.0
Type-checker version and settings:
- Mypy 1.16.0
Additional typing packages.
n/a