Fix use of deprecated function in xml module.

This commit is contained in:
Matt Clay 2019-10-15 14:57:23 -07:00
parent 32b57d57a0
commit d829a50a5b
2 changed files with 5 additions and 3 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- Fix the ``xml`` module to use ``list(elem)`` instead of ``elem.getchildren()`` since it is being removed in Python 3.9

View file

@ -441,7 +441,7 @@ def delete_xpath_target(module, tree, xpath, namespaces):
def replace_children_of(children, match): def replace_children_of(children, match):
for element in match.getchildren(): for element in list(match):
match.remove(element) match.remove(element)
match.extend(children) match.extend(children)
@ -458,8 +458,8 @@ def set_target_children_inner(module, tree, xpath, namespaces, children, in_type
# xpaths always return matches as a list, so.... # xpaths always return matches as a list, so....
for match in matches: for match in matches:
# Check if elements differ # Check if elements differ
if len(match.getchildren()) == len(children): if len(list(match)) == len(children):
for idx, element in enumerate(match.getchildren()): for idx, element in enumerate(list(match)):
if etree.tostring(element) != children_as_string[idx]: if etree.tostring(element) != children_as_string[idx]:
replace_children_of(children, match) replace_children_of(children, match)
changed = True changed = True