commit:     b67c57cc2e0a17b8e6454dc316c59e8736582894
Author:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 11 01:49:01 2022 +0000
Commit:     Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Mon Jul 11 03:59:02 2022 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=b67c57cc

xml.metadata.py: Fix gentoolkit traceback in _Useflag class

brian@storm ~/Dev/git/gentoolkit $ equery u smartmontools
Traceback (most recent call last):
  File "/home/brian/Dev/git/gentoolkit/bin/equery", line 44, in <module>
    equery.main(sys.argv)
  File "/home/brian/Dev/git/gentoolkit/pym/gentoolkit/equery/__init__.py", line 
359, in main
    loaded_module.main(module_args)
  File "/home/brian/Dev/git/gentoolkit/pym/gentoolkit/equery/uses.py", line 
341, in main
    output = get_output_descriptions(pkg, global_usedesc)
  File "/home/brian/Dev/git/gentoolkit/pym/gentoolkit/equery/uses.py", line 
201, in get_output_descriptions
    local_usedesc = pkg.metadata.use()
  File "/usr/lib/python3.10/site-packages/portage/xml/metadata.py", line 337, 
in use
    self._useflags = tuple(_Useflag(node) for node in iterate("flag"))
  File "/usr/lib/python3.10/site-packages/portage/xml/metadata.py", line 337, 
in <genexpr>
    self._useflags = tuple(_Useflag(node) for node in iterate("flag"))
  File "/usr/lib/python3.10/site-packages/portage/xml/metadata.py", line 109, 
in __init__
    for child in node.getchildren():
AttributeError: 'xml.etree.ElementTree.Element' object has no attribute 
'getchildren'

Reported by: IRC user kurly

gentoolkit code class used node.iter()
Found another commmit where getchidren was deprecated and replaced.

Bug:https://bugs.gentoo.org/857537
Signed-off-by: Brian Dolbec <dolsen <AT> gentoo.org>

 lib/portage/xml/metadata.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/portage/xml/metadata.py b/lib/portage/xml/metadata.py
index 807847d7e..672f64358 100644
--- a/lib/portage/xml/metadata.py
+++ b/lib/portage/xml/metadata.py
@@ -106,7 +106,7 @@ class _Useflag:
         _desc = ""
         if node.text:
             _desc = node.text
-        for child in node.getchildren():
+        for child in node.iter():
             _desc += child.text if child.text else ""
             _desc += child.tail if child.tail else ""
         # This takes care of tabs and newlines left from the file

Reply via email to