Fix some issues with __round__ (#2907)

In python 3, add an overload for there being no digits argument
and make it return int.

In python 2, __round__ doesn't exist and SupportsRound doesn't exist
in the typing module. Use SupportsFloat for python 2 round().

Remove decimal's __round__ overload that takes None, since it doesn't exist
This commit is contained in:
Michael J. Sullivan
2019-04-09 11:45:10 -07:00
committed by GitHub
parent 50a661afed
commit 0350e9fa89
5 changed files with 13 additions and 16 deletions

View File

@@ -95,8 +95,12 @@ class SupportsAbs(Protocol[_T_co]):
@runtime
class SupportsRound(Protocol[_T_co]):
@overload
@abstractmethod
def __round__(self, ndigits: int = ...) -> _T_co: ...
def __round__(self) -> int: ...
@overload
@abstractmethod
def __round__(self, ndigits: int) -> _T_co: ...
@runtime
class Reversible(Protocol[_T_co]):