mirror of
https://github.com/davidhalter/typeshed.git
synced 2025-12-09 21:46:42 +08:00
Allow math functions to accept objects implementing the __index__ protocol (#6211)
This commit is contained in:
121
stdlib/math.pyi
121
stdlib/math.pyi
@@ -1,6 +1,9 @@
|
||||
import sys
|
||||
from _typeshed import SupportsTrunc
|
||||
from typing import Iterable, SupportsFloat, SupportsInt, overload
|
||||
from typing import Iterable, SupportsFloat, Union, overload
|
||||
from typing_extensions import SupportsIndex
|
||||
|
||||
_SupportsFloatOrIndex = Union[SupportsFloat, SupportsIndex]
|
||||
|
||||
e: float
|
||||
pi: float
|
||||
@@ -8,94 +11,100 @@ inf: float
|
||||
nan: float
|
||||
tau: float
|
||||
|
||||
def acos(__x: SupportsFloat) -> float: ...
|
||||
def acosh(__x: SupportsFloat) -> float: ...
|
||||
def asin(__x: SupportsFloat) -> float: ...
|
||||
def asinh(__x: SupportsFloat) -> float: ...
|
||||
def atan(__x: SupportsFloat) -> float: ...
|
||||
def atan2(__y: SupportsFloat, __x: SupportsFloat) -> float: ...
|
||||
def atanh(__x: SupportsFloat) -> float: ...
|
||||
def ceil(__x: SupportsFloat) -> int: ...
|
||||
def acos(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def acosh(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def asin(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def asinh(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def atan(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def atan2(__y: _SupportsFloatOrIndex, __x: _SupportsFloatOrIndex) -> float: ...
|
||||
def atanh(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def ceil(__x: _SupportsFloatOrIndex) -> int: ...
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
def comb(__n: int, __k: int) -> int: ...
|
||||
def comb(__n: SupportsIndex, __k: SupportsIndex) -> int: ...
|
||||
|
||||
def copysign(__x: SupportsFloat, __y: SupportsFloat) -> float: ...
|
||||
def cos(__x: SupportsFloat) -> float: ...
|
||||
def cosh(__x: SupportsFloat) -> float: ...
|
||||
def degrees(__x: SupportsFloat) -> float: ...
|
||||
def copysign(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float: ...
|
||||
def cos(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def cosh(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def degrees(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
def dist(__p: Iterable[SupportsFloat], __q: Iterable[SupportsFloat]) -> float: ...
|
||||
def dist(__p: Iterable[_SupportsFloatOrIndex], __q: Iterable[_SupportsFloatOrIndex]) -> float: ...
|
||||
|
||||
def erf(__x: SupportsFloat) -> float: ...
|
||||
def erfc(__x: SupportsFloat) -> float: ...
|
||||
def exp(__x: SupportsFloat) -> float: ...
|
||||
def expm1(__x: SupportsFloat) -> float: ...
|
||||
def fabs(__x: SupportsFloat) -> float: ...
|
||||
def factorial(__x: SupportsInt) -> int: ...
|
||||
def floor(__x: SupportsFloat) -> int: ...
|
||||
def fmod(__x: SupportsFloat, __y: SupportsFloat) -> float: ...
|
||||
def frexp(__x: SupportsFloat) -> tuple[float, int]: ...
|
||||
def fsum(__seq: Iterable[float]) -> float: ...
|
||||
def gamma(__x: SupportsFloat) -> float: ...
|
||||
def erf(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def erfc(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def exp(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def expm1(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def fabs(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def factorial(__x: SupportsIndex) -> int: ...
|
||||
def floor(__x: _SupportsFloatOrIndex) -> int: ...
|
||||
def fmod(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float: ...
|
||||
def frexp(__x: _SupportsFloatOrIndex) -> tuple[float, int]: ...
|
||||
def fsum(__seq: Iterable[_SupportsFloatOrIndex]) -> float: ...
|
||||
def gamma(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
def gcd(*integers: int) -> int: ...
|
||||
def gcd(*integers: SupportsIndex) -> int: ...
|
||||
|
||||
else:
|
||||
def gcd(__x: int, __y: int) -> int: ...
|
||||
def gcd(__x: SupportsIndex, __y: SupportsIndex) -> int: ...
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
def hypot(*coordinates: SupportsFloat) -> float: ...
|
||||
def hypot(*coordinates: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
else:
|
||||
def hypot(__x: SupportsFloat, __y: SupportsFloat) -> float: ...
|
||||
def hypot(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
def isclose(a: SupportsFloat, b: SupportsFloat, *, rel_tol: SupportsFloat = ..., abs_tol: SupportsFloat = ...) -> bool: ...
|
||||
def isinf(__x: SupportsFloat) -> bool: ...
|
||||
def isfinite(__x: SupportsFloat) -> bool: ...
|
||||
def isnan(__x: SupportsFloat) -> bool: ...
|
||||
def isclose(
|
||||
a: _SupportsFloatOrIndex,
|
||||
b: _SupportsFloatOrIndex,
|
||||
*,
|
||||
rel_tol: _SupportsFloatOrIndex = ...,
|
||||
abs_tol: _SupportsFloatOrIndex = ...,
|
||||
) -> bool: ...
|
||||
def isinf(__x: _SupportsFloatOrIndex) -> bool: ...
|
||||
def isfinite(__x: _SupportsFloatOrIndex) -> bool: ...
|
||||
def isnan(__x: _SupportsFloatOrIndex) -> bool: ...
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
def isqrt(__n: int) -> int: ...
|
||||
def isqrt(__n: SupportsIndex) -> int: ...
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
def lcm(*integers: int) -> int: ...
|
||||
def lcm(*integers: SupportsIndex) -> int: ...
|
||||
|
||||
def ldexp(__x: SupportsFloat, __i: int) -> float: ...
|
||||
def lgamma(__x: SupportsFloat) -> float: ...
|
||||
def log(x: SupportsFloat, base: SupportsFloat = ...) -> float: ...
|
||||
def log10(__x: SupportsFloat) -> float: ...
|
||||
def log1p(__x: SupportsFloat) -> float: ...
|
||||
def log2(__x: SupportsFloat) -> float: ...
|
||||
def modf(__x: SupportsFloat) -> tuple[float, float]: ...
|
||||
def ldexp(__x: _SupportsFloatOrIndex, __i: int) -> float: ...
|
||||
def lgamma(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def log(x: _SupportsFloatOrIndex, base: _SupportsFloatOrIndex = ...) -> float: ...
|
||||
def log10(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def log1p(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def log2(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def modf(__x: _SupportsFloatOrIndex) -> tuple[float, float]: ...
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
def nextafter(__x: SupportsFloat, __y: SupportsFloat) -> float: ...
|
||||
def nextafter(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
def perm(__n: int, __k: int | None = ...) -> int: ...
|
||||
def perm(__n: SupportsIndex, __k: SupportsIndex | None = ...) -> int: ...
|
||||
|
||||
def pow(__x: SupportsFloat, __y: SupportsFloat) -> float: ...
|
||||
def pow(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
if sys.version_info >= (3, 8):
|
||||
@overload
|
||||
def prod(__iterable: Iterable[int], *, start: int = ...) -> int: ... # type: ignore
|
||||
def prod(__iterable: Iterable[SupportsIndex], *, start: SupportsIndex = ...) -> int: ... # type: ignore
|
||||
@overload
|
||||
def prod(__iterable: Iterable[SupportsFloat], *, start: SupportsFloat = ...) -> float: ...
|
||||
def prod(__iterable: Iterable[_SupportsFloatOrIndex], *, start: _SupportsFloatOrIndex = ...) -> float: ...
|
||||
|
||||
def radians(__x: SupportsFloat) -> float: ...
|
||||
def radians(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
if sys.version_info >= (3, 7):
|
||||
def remainder(__x: SupportsFloat, __y: SupportsFloat) -> float: ...
|
||||
def remainder(__x: _SupportsFloatOrIndex, __y: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
def sin(__x: SupportsFloat) -> float: ...
|
||||
def sinh(__x: SupportsFloat) -> float: ...
|
||||
def sqrt(__x: SupportsFloat) -> float: ...
|
||||
def tan(__x: SupportsFloat) -> float: ...
|
||||
def tanh(__x: SupportsFloat) -> float: ...
|
||||
def sin(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def sinh(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def sqrt(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def tan(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def tanh(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
def trunc(__x: SupportsTrunc) -> int: ...
|
||||
|
||||
if sys.version_info >= (3, 9):
|
||||
def ulp(__x: SupportsFloat) -> float: ...
|
||||
def ulp(__x: _SupportsFloatOrIndex) -> float: ...
|
||||
|
||||
Reference in New Issue
Block a user