Fix use of deprecated function in xml module.
This commit is contained in:
parent
32b57d57a0
commit
d829a50a5b
2 changed files with 5 additions and 3 deletions
2
changelogs/fragments/xml-deprecated-functions.yml
Normal file
2
changelogs/fragments/xml-deprecated-functions.yml
Normal 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
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue