From c02dcf2da592fe2e8b638d02ddd835bf380bf568 Mon Sep 17 00:00:00 2001 From: Martijn Pieters Date: Thu, 4 May 2023 12:52:18 +0100 Subject: [PATCH] Use recursion in the _TagSelector collection hint --- lxml-stubs/etree.pyi | 8 +------- test-data/test-etree.yml | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/lxml-stubs/etree.pyi b/lxml-stubs/etree.pyi index 3dd42f1..1102d51 100644 --- a/lxml-stubs/etree.pyi +++ b/lxml-stubs/etree.pyi @@ -39,13 +39,7 @@ _AnySmartStr = Union[ ] _TagName = Union[str, bytes, QName] # _TagSelector also allows Element, Comment, ProcessingInstruction -_TagSelector = Union[ - str, - bytes, - QName, - Collection[Any], # really Collection[_TagSelector] - Any, -] +_TagSelector = Union[_TagName, Collection[_TagSelector], Any] # XPath object - http://lxml.de/xpathxslt.html#xpath-return-values _XPathObject = Union[ bool, diff --git a/test-data/test-etree.yml b/test-data/test-etree.yml index 1c7f782..546eaff 100644 --- a/test-data/test-etree.yml +++ b/test-data/test-etree.yml @@ -34,7 +34,7 @@ main: | from lxml import etree element = etree.Element("foo") - reveal_type(element.iterchildren) # N: Revealed type is "def (tag: Union[builtins.str, builtins.bytes, lxml.etree.QName, typing.Collection[Any], Any, None] =, *tags: Union[builtins.str, builtins.bytes, lxml.etree.QName, typing.Collection[Any], Any], *, reversed: builtins.bool =) -> typing.Iterator[lxml.etree._Element]" + reveal_type(element.iterchildren) # N: Revealed type is "def (tag: Union[Union[builtins.str, builtins.bytes, lxml.etree.QName], typing.Collection[Union[builtins.str, builtins.bytes, lxml.etree.QName, typing.Collection[...], ...]], Any, None] =, *tags: Union[builtins.str, builtins.bytes, lxml.etree.QName, typing.Collection[...], ...], *, reversed: builtins.bool =) -> typing.Iterator[lxml.etree._Element]" result = element.iterchildren("my-attr") reveal_type(result) # N: Revealed type is "typing.Iterator[lxml.etree._Element]"