Skip to content

Commit da25337

Browse files
committed
Update math stub arguments reflect protocol support
Update math.factorial to reflect support for __int__ protocol. Update other math functions to reflect support for __float__ protocol.
1 parent 6a1d25b commit da25337

File tree

1 file changed

+45
-45
lines changed

1 file changed

+45
-45
lines changed

stdlib/2and3/math.pyi

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Stubs for math
22
# See: http://docs.python.org/2/library/math.html
33

4-
from typing import Tuple, Iterable, Optional
4+
from typing import Tuple, Iterable, Optional, SupportsFloat, SupportsInt
55

66
import sys
77

@@ -13,57 +13,57 @@ if sys.version_info >= (3, 5):
1313
if sys.version_info >= (3, 6):
1414
tau = ... # type: float
1515

16-
def acos(x: float) -> float: ...
17-
def acosh(x: float) -> float: ...
18-
def asin(x: float) -> float: ...
19-
def asinh(x: float) -> float: ...
20-
def atan(x: float) -> float: ...
21-
def atan2(y: float, x: float) -> float: ...
22-
def atanh(x: float) -> float: ...
16+
def acos(x: SupportsFloat) -> float: ...
17+
def acosh(x: SupportsFloat) -> float: ...
18+
def asin(x: SupportsFloat) -> float: ...
19+
def asinh(x: SupportsFloat) -> float: ...
20+
def atan(x: SupportsFloat) -> float: ...
21+
def atan2(y: SupportsFloat, x: SupportsFloat) -> float: ...
22+
def atanh(x: SupportsFloat) -> float: ...
2323
if sys.version_info >= (3,):
24-
def ceil(x: float) -> int: ...
24+
def ceil(x: SupportsFloat) -> int: ...
2525
else:
26-
def ceil(x: float) -> float: ...
27-
def copysign(x: float, y: float) -> float: ...
28-
def cos(x: float) -> float: ...
29-
def cosh(x: float) -> float: ...
30-
def degrees(x: float) -> float: ...
31-
def erf(x: float) -> float: ...
32-
def erfc(x: float) -> float: ...
33-
def exp(x: float) -> float: ...
34-
def expm1(x: float) -> float: ...
35-
def fabs(x: float) -> float: ...
36-
def factorial(x: int) -> int: ...
26+
def ceil(x: SupportsFloat) -> float: ...
27+
def copysign(x: SupportsFloat, y: SupportsFloat) -> float: ...
28+
def cos(x: SupportsFloat) -> float: ...
29+
def cosh(x: SupportsFloat) -> float: ...
30+
def degrees(x: SupportsFloat) -> float: ...
31+
def erf(x: SupportsFloat) -> float: ...
32+
def erfc(x: SupportsFloat) -> float: ...
33+
def exp(x: SupportsFloat) -> float: ...
34+
def expm1(x: SupportsFloat) -> float: ...
35+
def fabs(x: SupportsFloat) -> float: ...
36+
def factorial(x: SupportsInt) -> int: ...
3737
if sys.version_info >= (3,):
38-
def floor(x: float) -> int: ...
38+
def floor(x: SupportsFloat) -> int: ...
3939
else:
40-
def floor(x: float) -> float: ...
41-
def fmod(x: float, y: float) -> float: ...
42-
def frexp(x: float) -> Tuple[float, int]: ...
40+
def floor(x: SupportsFloat) -> float: ...
41+
def fmod(x: SupportsFloat, y: SupportsFloat) -> float: ...
42+
def frexp(x: SupportsFloat) -> Tuple[float, int]: ...
4343
def fsum(iterable: Iterable) -> float: ...
44-
def gamma(x: float) -> float: ...
44+
def gamma(x: SupportsFloat) -> float: ...
4545
if sys.version_info >= (3, 5):
4646
def gcd(a: int, b: int) -> int: ...
47-
def hypot(x: float, y: float) -> float: ...
47+
def hypot(x: SupportsFloat, y: SupportsFloat) -> float: ...
4848
if sys.version_info >= (3, 5):
49-
def isclose(a: float, b: float, rel_tol: float = ..., abs_tol: float = ...) -> bool: ...
50-
def isinf(x: float) -> bool: ...
49+
def isclose(a: SupportsFloat, b: SupportsFloat, rel_tol: SupportsFloat = ..., abs_tol: SupportsFloat = ...) -> bool: ...
50+
def isinf(x: SupportsFloat) -> bool: ...
5151
if sys.version_info >= (3,):
52-
def isfinite(x: float) -> bool: ...
53-
def isnan(x: float) -> bool: ...
54-
def ldexp(x: float, i: int) -> float: ...
55-
def lgamma(x: float) -> float: ...
56-
def log(x: float, base: float = ...) -> float: ...
57-
def log10(x: float) -> float: ...
58-
def log1p(x: float) -> float: ...
52+
def isfinite(x: SupportsFloat) -> bool: ...
53+
def isnan(x: SupportsFloat) -> bool: ...
54+
def ldexp(x: SupportsFloat, i: int) -> float: ...
55+
def lgamma(x: SupportsFloat) -> float: ...
56+
def log(x: SupportsFloat, base: SupportsFloat = ...) -> float: ...
57+
def log10(x: SupportsFloat) -> float: ...
58+
def log1p(x: SupportsFloat) -> float: ...
5959
if sys.version_info >= (3, 3):
60-
def log2(x: float) -> float: ...
61-
def modf(x: float) -> Tuple[float, float]: ...
62-
def pow(x: float, y: float) -> float: ...
63-
def radians(x: float) -> float: ...
64-
def sin(x: float) -> float: ...
65-
def sinh(x: float) -> float: ...
66-
def sqrt(x: float) -> float: ...
67-
def tan(x: float) -> float: ...
68-
def tanh(x: float) -> float: ...
69-
def trunc(x: float) -> int: ...
60+
def log2(x: SupportsFloat) -> float: ...
61+
def modf(x: SupportsFloat) -> Tuple[float, float]: ...
62+
def pow(x: SupportsFloat, y: SupportsFloat) -> float: ...
63+
def radians(x: SupportsFloat) -> float: ...
64+
def sin(x: SupportsFloat) -> float: ...
65+
def sinh(x: SupportsFloat) -> float: ...
66+
def sqrt(x: SupportsFloat) -> float: ...
67+
def tan(x: SupportsFloat) -> float: ...
68+
def tanh(x: SupportsFloat) -> float: ...
69+
def trunc(x: SupportsFloat) -> int: ...

0 commit comments

Comments
 (0)