From dd20ac3222f8f16d9376190624b88db703b473a1 Mon Sep 17 00:00:00 2001 From: Alex Waygood Date: Mon, 29 Nov 2021 23:46:30 +0000 Subject: [PATCH] Return `bool` from `operator` comparison functions --- stdlib/_operator.pyi | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/stdlib/_operator.pyi b/stdlib/_operator.pyi index f6473e4692a1..5333161ee5de 100644 --- a/stdlib/_operator.pyi +++ b/stdlib/_operator.pyi @@ -24,12 +24,15 @@ _K = TypeVar("_K") _V = TypeVar("_V") _P = ParamSpec("_P") -def lt(__a: Any, __b: Any) -> Any: ... -def le(__a: Any, __b: Any) -> Any: ... -def eq(__a: Any, __b: Any) -> Any: ... -def ne(__a: Any, __b: Any) -> Any: ... -def ge(__a: Any, __b: Any) -> Any: ... -def gt(__a: Any, __b: Any) -> Any: ... +# In theory, the comparison functions could return anything, +# but in the vast majority of cases, +# `x < y` will either evaluate to a boolean value, or throw an exception +def lt(__a: Any, __b: Any) -> bool: ... +def le(__a: Any, __b: Any) -> bool: ... +def eq(__a: Any, __b: Any) -> bool: ... +def ne(__a: Any, __b: Any) -> bool: ... +def ge(__a: Any, __b: Any) -> bool: ... +def gt(__a: Any, __b: Any) -> bool: ... def not_(__a: Any) -> bool: ... def truth(__a: Any) -> bool: ... def is_(__a: Any, __b: Any) -> bool: ...