From 8db369f7e2a0480a59d6a119ea4887a578be0395 Mon Sep 17 00:00:00 2001 From: Ismail Date: Mon, 29 Feb 2016 15:28:03 +0000 Subject: [PATCH] Improve types on ElementPath --- stdlib/3/xml/etree/ElementPath.pyi | 43 +++++++++++++++++------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/stdlib/3/xml/etree/ElementPath.pyi b/stdlib/3/xml/etree/ElementPath.pyi index dee3bb82d..af1afaa07 100644 --- a/stdlib/3/xml/etree/ElementPath.pyi +++ b/stdlib/3/xml/etree/ElementPath.pyi @@ -2,27 +2,34 @@ # # NOTE: This dynamically typed stub was automatically generated by stubgen. -from typing import Any +from typing import Any, Pattern, Dict, Generator, Tuple, List, Union, TypeVar, Callable, Optional +from .ElementTree import Element -xpath_tokenizer_re = ... # type: Any +xpath_tokenizer_re = ... # type: Pattern -def xpath_tokenizer(pattern, namespaces=...): ... -def get_parent_map(context): ... -def prepare_child(next, token): ... -def prepare_star(next, token): ... -def prepare_self(next, token): ... -def prepare_descendant(next, token): ... -def prepare_parent(next, token): ... -def prepare_predicate(next, token): ... +_token = Tuple[str, str] +_next = Callable[[], _token] +_callback = Callable[[_SelectorContext, List[Element]], Generator[Element, None, None]] -ops = ... # type: Any +def xpath_tokenizer(pattern: str, namespaces: Dict[str, str]=...) -> Generator[_token, None, None]: ... +def get_parent_map(context: _SelectorContext) -> Dict[Element, Element]: ... +def prepare_child(next: _next, token: _token) -> _callback: ... +def prepare_star(next: _next, token: _token) -> _callback: ... +def prepare_self(next: _next, token: _token) -> _callback: ... +def prepare_descendant(next: _next, token: _token) -> _callback: ... +def prepare_parent(next: _next, token: _token) -> _callback: ... +def prepare_predicate(next: _next, token: _token) -> _callback: ... + +ops = ... # type: Dict[str, Callable[[_next, _token], _callback]] class _SelectorContext: - parent_map = ... # type: Any - root = ... # type: Any - def __init__(self, root) -> None: ... + parent_map = ... # type: Dict[Element, Element] + root = ... # type: Element + def __init__(self, root: Element) -> None: ... -def iterfind(elem, path, namespaces=...): ... -def find(elem, path, namespaces=...): ... -def findall(elem, path, namespaces=...): ... -def findtext(elem, path, default=..., namespaces=...): ... +_T = TypeVar('_T') + +def iterfind(elem: Element, path: str, namespaces: Dict[str, str]=...) -> List[Element]: ... +def find(elem: Element, path: str, namespaces: Dict[str, str]=...) -> Optional[Element]: ... +def findall(elem: Element, path: str, namespaces: Dict[str, str]=...) -> List[Element]: ... +def findtext(elem: Element, path: str, default: _T=..., namespaces: Dict[str, str]=...) -> Union[_T, str]: ...