You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
from decimal import Decimal
from math import prod
from typing import TYPE_CHECKING
result = prod([Decimal(1), Decimal(2)])
if TYPE_CHECKING:
reveal_type(result)
else:
print(type(result))
Test:
$ mypy --version
mypy 1.10.0 (compiled: yes)
$ mypy decimal_prod.py
decimal_prod.py:8: note: Revealed type is "builtins.float"
Success: no issues found in 1 source file
$ python decimal_prod.py
<class 'decimal.Decimal'>
It sounds as if we should use a TypeVar here, but the existing overload makes me a bit anxious. Any fix should include tests to check a few use cases. (But as always: PR welcome!)
Presumably all non-int return types should be a union with Literal[1]. No matter what type the sequence elements are, it is possible to get the integer 1 with an empty sequence:
Presumably all non-int return types should be a union with Literal[1]. No matter what type the sequence elements are, it is possible to get the integer 1 with an empty sequence:
Test file (
decimal_prod.py
):Test:
defined here: https://github.com/python/typeshed/blob/main/stdlib/math.pyi#L102-L105
The text was updated successfully, but these errors were encountered: