diff --git a/stdlib/fractions.pyi b/stdlib/fractions.pyi index 3c84978c1..7ec8addeb 100644 --- a/stdlib/fractions.pyi +++ b/stdlib/fractions.pyi @@ -22,11 +22,9 @@ else: class Fraction(Rational): @overload - def __new__( - cls, numerator: int | Rational = 0, denominator: int | Rational | None = None, *, _normalize: bool = True - ) -> Self: ... + def __new__(cls, numerator: int | Rational = 0, denominator: int | Rational | None = None) -> Self: ... @overload - def __new__(cls, __value: float | Decimal | str, *, _normalize: bool = True) -> Self: ... + def __new__(cls, __value: float | Decimal | str) -> Self: ... @classmethod def from_float(cls, f: float) -> Self: ... @classmethod @@ -34,6 +32,8 @@ class Fraction(Rational): def limit_denominator(self, max_denominator: int = 1000000) -> Fraction: ... if sys.version_info >= (3, 8): def as_integer_ratio(self) -> tuple[int, int]: ... + if sys.version_info >= (3, 12): + def is_integer(self) -> bool: ... @property def numerator(a) -> int: ... diff --git a/tests/stubtest_allowlists/py3_common.txt b/tests/stubtest_allowlists/py3_common.txt index c378d7922..d2f5727e3 100644 --- a/tests/stubtest_allowlists/py3_common.txt +++ b/tests/stubtest_allowlists/py3_common.txt @@ -407,6 +407,10 @@ pickle.Unpickler.memo # undocumented implementation detail, has different type re.Pattern.scanner # Undocumented and not useful. #6405 tempfile._TemporaryFileWrapper.[\w_]+ # Dynamically specified by __getattr__, and thus don't exist on the class +# Removed undocumented and often mistakenly used _normalize parameter that was removed in 3.12 +# On 3.12, stubtest doesn't correctly combine the overload because parameter names mismatch +fractions.Fraction.__new__ + # Details of runtime definition don't need to be in stubs typing_extensions\._SpecialForm.* typing_extensions\.TypeVar.*