From 3e83e42a0fd7b531679d0222a3cb0d050f0e4669 Mon Sep 17 00:00:00 2001 From: Sebastian Rittau Date: Mon, 3 Mar 2025 17:49:41 +0100 Subject: [PATCH] Update pyright to v1.1.395; disable a pow() check (#13564) pyright and mypy disagree about the exact type due to differing overloads handling. --------- Co-authored-by: Avasam --- requirements-tests.txt | 2 +- stdlib/@tests/test_cases/builtins/check_pow.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/requirements-tests.txt b/requirements-tests.txt index f49905636..1c4ad7897 100644 --- a/requirements-tests.txt +++ b/requirements-tests.txt @@ -1,7 +1,7 @@ # Type checkers that we test our stubs against. These should always # be pinned to a specific version to make failure reproducible. mypy==1.15.0 -pyright==1.1.389 +pyright==1.1.395 # pytype can be installed on Windows, but requires building wheels, let's not do that on the CI pytype==2024.10.11; platform_system != "Windows" and python_version >= "3.10" and python_version < "3.13" diff --git a/stdlib/@tests/test_cases/builtins/check_pow.py b/stdlib/@tests/test_cases/builtins/check_pow.py index 6fe7aacff..448d41ad8 100644 --- a/stdlib/@tests/test_cases/builtins/check_pow.py +++ b/stdlib/@tests/test_cases/builtins/check_pow.py @@ -47,7 +47,9 @@ assert_type(pow(complex(6), 6.2), complex) assert_type(complex(6) ** 6.2, complex) assert_type(pow(complex(9), 7.3, None), complex) -assert_type(pow(Fraction(), 4, None), Fraction) +# pyright infers Fraction | float | complex, while mypy infers Fraction. +# This is probably because of differences in @overload handling. +assert_type(pow(Fraction(), 4, None), Fraction) # pyright: ignore[reportAssertTypeFailure] assert_type(Fraction() ** 4, Fraction) assert_type(pow(Fraction(3, 7), complex(1, 8)), complex)