-
-
Notifications
You must be signed in to change notification settings - Fork 11.8k
TYP: fix np.number and np.*integer method declaration
#29706
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
np.*integer method declarationnp.number and np.*integer method declaration
|
Diff from mypy_primer, showing the effect of this PR on type check results on a corpus of open source code: jax (https://github.com/google/jax)
+ jax/_src/basearray.pyi:111: error: Unused "type: ignore" comment [unused-ignore]
+ jax/_src/basearray.pyi:112: error: Unused "type: ignore" comment [unused-ignore]
+ jax/_src/basearray.pyi:113: error: Unused "type: ignore" comment [unused-ignore]
+ jax/_src/basearray.pyi:115: error: Unused "type: ignore" comment [unused-ignore]
+ jax/_src/basearray.pyi:119: error: Unused "type: ignore" comment [unused-ignore]
freqtrade (https://github.com/freqtrade/freqtrade)
- freqtrade/data/converter/orderflow.py:175: error: Argument 1 to "__call__" of "_NumberOp" has incompatible type "str"; expected "complex | number[Any, int | float | complex] | numpy.bool[builtins.bool]" [arg-type]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("str" and "integer[Any]") [operator]
- freqtrade/data/converter/orderflow.py:175: error: Argument 1 to "__call__" of "_NumberOp" has incompatible type "bytes"; expected "complex | number[Any, int | float | complex] | numpy.bool[builtins.bool]" [arg-type]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("bytes" and "integer[Any]") [operator]
- freqtrade/data/converter/orderflow.py:175: error: Argument 1 to "__call__" of "_NumberOp" has incompatible type "date"; expected "complex | number[Any, int | float | complex] | numpy.bool[builtins.bool]" [arg-type]
- freqtrade/data/converter/orderflow.py:175: error: Argument 1 to "__call__" of "_NumberOp" has incompatible type "datetime"; expected "complex | number[Any, int | float | complex] | numpy.bool[builtins.bool]" [arg-type]
- freqtrade/data/converter/orderflow.py:175: error: Argument 1 to "__call__" of "_NumberOp" has incompatible type "timedelta"; expected "complex | number[Any, int | float | complex] | numpy.bool[builtins.bool]" [arg-type]
- freqtrade/data/converter/orderflow.py:175: error: Argument 1 to "__call__" of "_NumberOp" has incompatible type "Timestamp"; expected "complex | number[Any, int | float | complex] | numpy.bool[builtins.bool]" [arg-type]
- freqtrade/data/converter/orderflow.py:175: error: Argument 1 to "__call__" of "_NumberOp" has incompatible type "Timedelta"; expected "complex | number[Any, int | float | complex] | numpy.bool[builtins.bool]" [arg-type]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("integer[Any]" and "str") [operator]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("integer[Any]" and "bytes") [operator]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("integer[Any]" and "date") [operator]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("integer[Any]" and "datetime") [operator]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("integer[Any]" and "timedelta") [operator]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("integer[Any]" and "Timestamp") [operator]
+ freqtrade/data/converter/orderflow.py:175: error: Unsupported operand types for - ("integer[Any]" and "Timedelta") [operator]
pandas-stubs (https://github.com/pandas-dev/pandas-stubs)
+ pandas-stubs/_libs/tslibs/period.pyi:167: error: Unused "type: ignore" comment [unused-ignore]
colour (https://github.com/colour-science/colour)
- colour/continuous/signal.py:838: error: No overload variant of "__call__" of "_ComparisonOpLE" matches argument type "Buffer" [call-overload]
+ colour/continuous/signal.py:838: error: No overload variant of "__le__" of "number" matches argument type "Buffer" [operator]
- colour/continuous/signal.py:838: note: def __call__(self, complex | number[Any, int | float | complex] | numpy.bool[builtins.bool], /) -> numpy.bool[builtins.bool]
+ colour/continuous/signal.py:838: note: def __le__(self, complex | number[Any, int | float | complex] | numpy.bool[builtins.bool], /) -> numpy.bool[builtins.bool]
- colour/continuous/signal.py:838: note: def __call__(self, _SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]] | _NestedSequence[_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]]] | complex | _NestedSequence[complex], /) -> ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]
+ colour/continuous/signal.py:838: note: def __le__(self, _SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]] | _NestedSequence[_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]]] | complex | _NestedSequence[complex] | _NestedSequence[_SupportsGE], /) -> ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]
- colour/continuous/signal.py:838: note: def __call__(self, _NestedSequence[_SupportsGE], /) -> ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]
- colour/continuous/signal.py:838: note: def __call__(self, _SupportsGE, /) -> numpy.bool[builtins.bool]
+ colour/continuous/signal.py:838: note: def __le__(self, _SupportsGE, /) -> numpy.bool[builtins.bool]
- colour/continuous/signal.py:838: error: Argument 1 to "__call__" of "_ComparisonOpLE" has incompatible type "_NestedSequence[complex | bytes | str]"; expected "_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]] | _NestedSequence[_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]]] | complex | _NestedSequence[complex]" [arg-type]
+ colour/continuous/signal.py:838: error: Unsupported operand types for <= ("floating[_16Bit]" and "_NestedSequence[complex | bytes | str]") [operator]
+ colour/continuous/signal.py:838: error: Unsupported operand types for <= ("floating[_32Bit]" and "_NestedSequence[complex | bytes | str]") [operator]
+ colour/continuous/signal.py:838: error: Unsupported operand types for <= ("float64" and "_NestedSequence[complex | bytes | str]") [operator]
- colour/continuous/signal.py:838: error: No overload variant of "__call__" of "_ComparisonOpLE" matches argument type "slice[Any, Any, Any]" [call-overload]
+ colour/continuous/signal.py:838: error: No overload variant of "__le__" of "number" matches argument type "slice[Any, Any, Any]" [operator]
- colour/continuous/signal.py:839: error: No overload variant of "__call__" of "_ComparisonOpGE" matches argument type "Buffer" [call-overload]
+ colour/continuous/signal.py:839: error: No overload variant of "__ge__" of "number" matches argument type "Buffer" [operator]
- colour/continuous/signal.py:839: note: def __call__(self, complex | number[Any, int | float | complex] | numpy.bool[builtins.bool], /) -> numpy.bool[builtins.bool]
+ colour/continuous/signal.py:839: note: def __ge__(self, complex | number[Any, int | float | complex] | numpy.bool[builtins.bool], /) -> numpy.bool[builtins.bool]
- colour/continuous/signal.py:839: note: def __call__(self, _SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]] | _NestedSequence[_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]]] | complex | _NestedSequence[complex], /) -> ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]
+ colour/continuous/signal.py:839: note: def __ge__(self, _SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]] | _NestedSequence[_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]]] | complex | _NestedSequence[complex] | _NestedSequence[_SupportsLE], /) -> ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]
- colour/continuous/signal.py:839: note: def __call__(self, _NestedSequence[_SupportsGT], /) -> ndarray[tuple[Any, ...], dtype[numpy.bool[builtins.bool]]]
- colour/continuous/signal.py:839: note: def __call__(self, _SupportsGT, /) -> numpy.bool[builtins.bool]
+ colour/continuous/signal.py:839: note: def __ge__(self, _SupportsLE, /) -> numpy.bool[builtins.bool]
- colour/continuous/signal.py:839: error: Argument 1 to "__call__" of "_ComparisonOpGE" has incompatible type "_NestedSequence[complex | bytes | str]"; expected "_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]] | _NestedSequence[_SupportsArray[dtype[numpy.bool[builtins.bool] | number[Any, int | float | complex]]]] | complex | _NestedSequence[complex]" [arg-type]
+ colour/continuous/signal.py:839: error: Unsupported operand types for >= ("floating[_16Bit]" and "_NestedSequence[complex | bytes | str]") [operator]
+ colour/continuous/signal.py:839: error: Unsupported operand types for >= ("floating[_32Bit]" and "_NestedSequence[complex | bytes | str]") [operator]
+ colour/continuous/signal.py:839: error: Unsupported operand types for >= ("float64" and "_NestedSequence[complex | bytes | str]") [operator]
- colour/continuous/signal.py:839: error: No overload variant of "__call__" of "_ComparisonOpGE" matches argument type "slice[Any, Any, Any]" [call-overload]
+ colour/continuous/signal.py:839: error: No overload variant of "__ge__" of "number" matches argument type "slice[Any, Any, Any]" [operator]
|
|
The mypy_primer diffs might look problematic at first glance, but they're actually good news. In case of jax and pandas-stubs, it allows them to remove some The ffreqtrade diff applies to a single line, and is caused by mypy now reporting a different error code ( |
|
Thanks Joren. |
Follow-up of #29695, partially addressing python/mypy#15993 (comment)
This only leaves
floating,timedelta64, anddatetime64.