While writing an ndarray subclass, Mypy flags a problem related to the declaration of the method
argument in __array_ufunc__
.
The __array_ufunc__
docs say:
- method is a string indicating how the Ufunc was called, either
"__call__"
to indicate it was called directly, or one of its methods:"reduce"
,"accumulate"
,"reduceat"
,"outer"
, or"at"
.
Which is consistent with the ufunc methods documentation.
However, Numpy declares __array_ufunc__
as:
def __array_ufunc__(
self,
ufunc: ufunc,
method: L["__call__", "reduce", "reduceat", "accumulate", "outer", "inner"],
*inputs: Any,
**kwargs: Any,
) -> Any: ...
Method "at"
is missing, replaced by a mysterious "inner"
, which is not an ufunc method.
Is this a bug? Am I missing something?