summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2019-09-01 11:18:35 +0300
committerGitHub <noreply@github.com>2019-09-01 11:18:35 +0300
commitf02ea6225bc3b71bd5fe66224d199a6e3e23b14d (patch)
treeffd4a17d92f18ad031f5aa221d67876ffe8e8865 /Lib
parentc5b242f87f31286ad38991bc3868cf4cfbf2b681 (diff)
downloadcpython-git-f02ea6225bc3b71bd5fe66224d199a6e3e23b14d.tar.gz
bpo-36543: Remove old-deprecated ElementTree features. (GH-12707)
Remove methods Element.getchildren(), Element.getiterator() and ElementTree.getiterator() and the xml.etree.cElementTree module.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_xml_etree.py60
-rw-r--r--Lib/xml/etree/ElementTree.py31
2 files changed, 10 insertions, 81 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index db06aceb14..87a6fa1464 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -242,7 +242,6 @@ class ElementTreeTest(unittest.TestCase):
check_method(element.extend)
check_method(element.insert)
check_method(element.remove)
- check_method(element.getchildren)
check_method(element.find)
check_method(element.iterfind)
check_method(element.findall)
@@ -254,7 +253,6 @@ class ElementTreeTest(unittest.TestCase):
check_method(element.items)
check_method(element.iter)
check_method(element.itertext)
- check_method(element.getiterator)
# These methods return an iterable. See bug 6472.
@@ -741,24 +739,20 @@ class ElementTreeTest(unittest.TestCase):
('end-ns', ''),
])
- # Element.getchildren() and ElementTree.getiterator() are deprecated.
- @checkwarnings(("This method will be removed in future versions. "
- "Use .+ instead.",
- DeprecationWarning))
- def test_getchildren(self):
- # Test Element.getchildren()
+ def test_children(self):
+ # Test Element children iteration
with open(SIMPLE_XMLFILE, "rb") as f:
tree = ET.parse(f)
- self.assertEqual([summarize_list(elem.getchildren())
+ self.assertEqual([summarize_list(elem)
for elem in tree.getroot().iter()], [
['element', 'element', 'empty-element'],
[],
[],
[],
])
- self.assertEqual([summarize_list(elem.getchildren())
- for elem in tree.getiterator()], [
+ self.assertEqual([summarize_list(elem)
+ for elem in tree.iter()], [
['element', 'element', 'empty-element'],
[],
[],
@@ -766,13 +760,13 @@ class ElementTreeTest(unittest.TestCase):
])
elem = ET.XML(SAMPLE_XML)
- self.assertEqual(len(elem.getchildren()), 3)
- self.assertEqual(len(elem[2].getchildren()), 1)
- self.assertEqual(elem[:], elem.getchildren())
+ self.assertEqual(len(list(elem)), 3)
+ self.assertEqual(len(list(elem[2])), 1)
+ self.assertEqual(elem[:], list(elem))
child1 = elem[0]
child2 = elem[2]
del elem[1:2]
- self.assertEqual(len(elem.getchildren()), 2)
+ self.assertEqual(len(list(elem)), 2)
self.assertEqual(child1, elem[0])
self.assertEqual(child2, elem[1])
elem[0:2] = [child2, child1]
@@ -780,7 +774,7 @@ class ElementTreeTest(unittest.TestCase):
self.assertEqual(child1, elem[1])
self.assertNotEqual(child1, elem[0])
elem.clear()
- self.assertEqual(elem.getchildren(), [])
+ self.assertEqual(list(elem), [])
def test_writestring(self):
elem = ET.XML("<html><body>text</body></html>")
@@ -2955,40 +2949,6 @@ class ElementIterTest(unittest.TestCase):
self.assertEqual(self._ilist(doc), all_tags)
self.assertEqual(self._ilist(doc, '*'), all_tags)
- # Element.getiterator() is deprecated.
- @checkwarnings(("This method will be removed in future versions. "
- "Use .+ instead.", DeprecationWarning))
- def test_getiterator(self):
- doc = ET.XML('''
- <document>
- <house>
- <room>bedroom1</room>
- <room>bedroom2</room>
- </house>
- <shed>nothing here
- </shed>
- <house>
- <room>bedroom8</room>
- </house>
- </document>''')
-
- self.assertEqual(summarize_list(doc.getiterator('room')),
- ['room'] * 3)
- self.assertEqual(summarize_list(doc.getiterator('house')),
- ['house'] * 2)
-
- # test that getiterator also accepts 'tag' as a keyword arg
- self.assertEqual(
- summarize_list(doc.getiterator(tag='room')),
- ['room'] * 3)
-
- # make sure both tag=None and tag='*' return all tags
- all_tags = ['document', 'house', 'room', 'room',
- 'shed', 'house', 'room']
- self.assertEqual(summarize_list(doc.getiterator()), all_tags)
- self.assertEqual(summarize_list(doc.getiterator(None)), all_tags)
- self.assertEqual(summarize_list(doc.getiterator('*')), all_tags)
-
def test_copy(self):
a = ET.Element('a')
it = a.iter()
diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py
index 431ecd0ddd..beb2d68803 100644
--- a/Lib/xml/etree/ElementTree.py
+++ b/Lib/xml/etree/ElementTree.py
@@ -273,19 +273,6 @@ class Element:
# assert iselement(element)
self._children.remove(subelement)
- def getchildren(self):
- """(Deprecated) Return all subelements.
-
- Elements are returned in document order.
-
- """
- warnings.warn(
- "This method will be removed in future versions. "
- "Use 'list(elem)' or iteration over elem instead.",
- DeprecationWarning, stacklevel=2
- )
- return self._children
-
def find(self, path, namespaces=None):
"""Find first matching element by tag name or path.
@@ -409,15 +396,6 @@ class Element:
for e in self._children:
yield from e.iter(tag)
- # compatibility
- def getiterator(self, tag=None):
- warnings.warn(
- "This method will be removed in future versions. "
- "Use 'elem.iter()' or 'list(elem.iter())' instead.",
- DeprecationWarning, stacklevel=2
- )
- return list(self.iter(tag))
-
def itertext(self):
"""Create text iterator.
@@ -617,15 +595,6 @@ class ElementTree:
# assert self._root is not None
return self._root.iter(tag)
- # compatibility
- def getiterator(self, tag=None):
- warnings.warn(
- "This method will be removed in future versions. "
- "Use 'tree.iter()' or 'list(tree.iter())' instead.",
- DeprecationWarning, stacklevel=2
- )
- return list(self.iter(tag))
-
def find(self, path, namespaces=None):
"""Find first matching element by tag name or path.