diff --git a/stdlib/2/__builtin__.pyi b/stdlib/2/__builtin__.pyi index 6bc892f47ba7..9563c32f1b78 100644 --- a/stdlib/2/__builtin__.pyi +++ b/stdlib/2/__builtin__.pyi @@ -168,7 +168,7 @@ class int: def __rtruediv__(self, x: int) -> float: ... def __rmod__(self, x: int) -> int: ... def __rdivmod__(self, x: int) -> Tuple[int, int]: ... - def __pow__(self, x: int) -> Any: ... # Return type can be int or float, depending on x. + def __pow__(self, x: int, modulo: Optional[int] = ...) -> Any: ... # Return type can be int or float, depending on x. def __rpow__(self, x: int) -> Any: ... def __and__(self, n: int) -> int: ... def __or__(self, n: int) -> int: ... @@ -185,6 +185,9 @@ class int: def __invert__(self) -> int: ... if sys.version_info >= (3,): def __round__(self, ndigits: Optional[int] = ...) -> int: ... + def __trunc__(self) -> int: ... + def __floor__(self) -> int: ... + def __ceil__(self) -> int: ... def __getnewargs__(self) -> Tuple[int]: ... def __eq__(self, x: object) -> bool: ... @@ -242,11 +245,12 @@ class float: def __getnewargs__(self) -> Tuple[float]: ... if sys.version_info >= (3,): @overload - def __round__(self) -> int: ... - @overload - def __round__(self, ndigits: None) -> int: ... + def __round__(self, ndigits: None = ...) -> int: ... @overload def __round__(self, ndigits: int) -> float: ... + def __trunc__(self) -> int: ... + def __floor__(self) -> int: ... + def __ceil__(self) -> int: ... def __eq__(self, x: object) -> bool: ... def __ne__(self, x: object) -> bool: ... diff --git a/stdlib/2and3/builtins.pyi b/stdlib/2and3/builtins.pyi index 6bc892f47ba7..9563c32f1b78 100644 --- a/stdlib/2and3/builtins.pyi +++ b/stdlib/2and3/builtins.pyi @@ -168,7 +168,7 @@ class int: def __rtruediv__(self, x: int) -> float: ... def __rmod__(self, x: int) -> int: ... def __rdivmod__(self, x: int) -> Tuple[int, int]: ... - def __pow__(self, x: int) -> Any: ... # Return type can be int or float, depending on x. + def __pow__(self, x: int, modulo: Optional[int] = ...) -> Any: ... # Return type can be int or float, depending on x. def __rpow__(self, x: int) -> Any: ... def __and__(self, n: int) -> int: ... def __or__(self, n: int) -> int: ... @@ -185,6 +185,9 @@ class int: def __invert__(self) -> int: ... if sys.version_info >= (3,): def __round__(self, ndigits: Optional[int] = ...) -> int: ... + def __trunc__(self) -> int: ... + def __floor__(self) -> int: ... + def __ceil__(self) -> int: ... def __getnewargs__(self) -> Tuple[int]: ... def __eq__(self, x: object) -> bool: ... @@ -242,11 +245,12 @@ class float: def __getnewargs__(self) -> Tuple[float]: ... if sys.version_info >= (3,): @overload - def __round__(self) -> int: ... - @overload - def __round__(self, ndigits: None) -> int: ... + def __round__(self, ndigits: None = ...) -> int: ... @overload def __round__(self, ndigits: int) -> float: ... + def __trunc__(self) -> int: ... + def __floor__(self) -> int: ... + def __ceil__(self) -> int: ... def __eq__(self, x: object) -> bool: ... def __ne__(self, x: object) -> bool: ... diff --git a/stdlib/2and3/numbers.pyi b/stdlib/2and3/numbers.pyi index 50b561c24a32..befe7d53a781 100644 --- a/stdlib/2and3/numbers.pyi +++ b/stdlib/2and3/numbers.pyi @@ -5,7 +5,7 @@ # Note: these stubs are incomplete. The more complex type # signatures are currently omitted. -from typing import Any, Optional, SupportsFloat +from typing import Any, Optional, SupportsFloat, overload from abc import ABCMeta, abstractmethod import sys @@ -70,7 +70,11 @@ class Real(Complex, SupportsFloat): @abstractmethod def __ceil__(self) -> int: ... @abstractmethod - def __round__(self, ndigits: Optional[int] = ...): ... + @overload + def __round__(self, ndigits: None = ...): ... + @abstractmethod + @overload + def __round__(self, ndigits: int): ... def __divmod__(self, other): ... def __rdivmod__(self, other): ... @abstractmethod