From a618ee30d4062c9dfa6a2f84af11f5841ecb2b91 Mon Sep 17 00:00:00 2001 From: Roy Williams Date: Tue, 27 Feb 2018 17:59:11 -0500 Subject: [PATCH] Fix instantiating a xml.etree.ElementTree.Element (#1930) The methods removed by https://github.com/python/typeshed/pull/1816 are abstract in `MutableSequence` and therefore must be specified on `Element`. --- stdlib/2and3/xml/etree/ElementTree.pyi | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/stdlib/2and3/xml/etree/ElementTree.pyi b/stdlib/2and3/xml/etree/ElementTree.pyi index 9703c2049..f79281917 100644 --- a/stdlib/2and3/xml/etree/ElementTree.pyi +++ b/stdlib/2and3/xml/etree/ElementTree.pyi @@ -1,6 +1,6 @@ # Stubs for xml.etree.ElementTree -from typing import Any, Callable, Dict, Generator, IO, ItemsView, Iterable, Iterator, KeysView, List, MutableSequence, Optional, Sequence, Text, Tuple, TypeVar, Union +from typing import Any, Callable, Dict, Generator, IO, ItemsView, Iterable, Iterator, KeysView, List, MutableSequence, Optional, overload, Sequence, Text, Tuple, TypeVar, Union import io import sys @@ -70,6 +70,17 @@ class Element(MutableSequence['Element']): def remove(self, subelement: 'Element') -> None: ... def set(self, key: _str_argument_type, value: _str_argument_type) -> None: ... def __bool__(self) -> bool: ... + def __delitem__(self, i: Union[int, slice]) -> None: ... + @overload + def __getitem__(self, i: int) -> 'Element': ... + @overload + def __getitem__(self, s: slice) -> Sequence['Element']: ... + def __len__(self) -> int: ... + @overload + def __setitem__(self, i: int, o: 'Element') -> None: ... + @overload + def __setitem__(self, s: slice, o: Iterable['Element']) -> None: ... + def SubElement(parent: Element, tag: _str_argument_type, attrib: Dict[_str_argument_type, _str_argument_type]=..., **extra: _str_argument_type) -> Element: ... def Comment(text: _str_argument_type=...) -> Element: ...