From 92d135a37c8d449c756d5470b839c70d8ad4b44e Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Fri, 28 Jan 2022 12:33:45 +0300 Subject: [PATCH] Use `TypeGuard` in `ElementTree.pyi` (#7059) Co-authored-by: Alex Waygood --- stdlib/xml/etree/ElementTree.pyi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/stdlib/xml/etree/ElementTree.pyi b/stdlib/xml/etree/ElementTree.pyi index c4236cf29..c0bef1e0b 100644 --- a/stdlib/xml/etree/ElementTree.pyi +++ b/stdlib/xml/etree/ElementTree.pyi @@ -16,7 +16,7 @@ from typing import ( Union, overload, ) -from typing_extensions import Literal, SupportsIndex +from typing_extensions import Literal, SupportsIndex, TypeGuard _T = TypeVar("_T") _File = Union[StrOrBytesPath, FileDescriptor, IO[Any]] @@ -27,7 +27,8 @@ class ParseError(SyntaxError): code: int position: tuple[int, int] -def iselement(element: object) -> bool: ... +# In reality it works based on `.tag` attribute duck typing. +def iselement(element: object) -> TypeGuard[Element]: ... if sys.version_info >= (3, 8): @overload