Gentoo Archives: gentoo-portage-dev

From: Aaron Bauman <bman@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Aaron Bauman <bman@g.o>
Subject: [gentoo-portage-dev] [PATCH] lib/portage/xml/metadata.py: fix ungrouped-imports w/refactor
Date: Thu, 06 Aug 2020 23:28:23
Message-Id: 20200806232813.1977027-1-bman@gentoo.org
1 * This drops the import for cElementTree as it is deprecated. See:
2
3 https://docs.python.org/3/library/xml.etree.elementtree.html
4
5 * Drop the error checking as these modules are a part of stdlib.
6
7 * Additionally, the pyexpat issue was fixed in 3.2. See:
8
9 https://bugs.python.org/issue14988
10
11 Signed-off-by: Aaron Bauman <bman@g.o>
12 ---
13 lib/portage/xml/metadata.py | 29 ++++++++---------------------
14 1 file changed, 8 insertions(+), 21 deletions(-)
15
16 diff --git a/lib/portage/xml/metadata.py b/lib/portage/xml/metadata.py
17 index 646edb5b9..808ba2246 100644
18 --- a/lib/portage/xml/metadata.py
19 +++ b/lib/portage/xml/metadata.py
20 @@ -31,29 +31,16 @@
21 __all__ = ('MetaDataXML', 'parse_metadata_use')
22
23
24 -try:
25 - import xml.etree.cElementTree as etree
26 -except (SystemExit, KeyboardInterrupt):
27 - raise
28 -except (ImportError, SystemError, RuntimeError, Exception):
29 - # broken or missing xml support
30 - # https://bugs.python.org/issue14988
31 - import xml.etree.ElementTree as etree
32 -
33 -try:
34 - from xml.parsers.expat import ExpatError
35 -except (SystemExit, KeyboardInterrupt):
36 - raise
37 -except (ImportError, SystemError, RuntimeError, Exception):
38 - ExpatError = SyntaxError
39 -
40 import re
41 -import xml.etree.ElementTree
42 +import xml.etree.ElementTree as etree
43 +
44 +from xml.parsers.expat import ExpatError
45 +
46 from portage import _encodings, _unicode_encode
47 from portage.util import cmp_sort_key, unique_everseen
48
49
50 -class _MetadataTreeBuilder(xml.etree.ElementTree.TreeBuilder):
51 +class _MetadataTreeBuilder(etree.TreeBuilder):
52 """
53 Implements doctype() as required to avoid deprecation warnings with
54 Python >=2.7.
55 @@ -198,8 +185,8 @@ class MetaDataXML:
56
57 try:
58 self._xml_tree = etree.parse(_unicode_encode(metadata_xml_path,
59 - encoding=_encodings['fs'], errors='strict'),
60 - parser=etree.XMLParser(target=_MetadataTreeBuilder()))
61 + encoding = _encodings['fs'], errors='strict'),
62 + parser = etree.XMLParser(target=_MetadataTreeBuilder()))
63 except ImportError:
64 pass
65 except ExpatError as e:
66 @@ -238,7 +225,7 @@ class MetaDataXML:
67 try:
68 self._herdstree = etree.parse(_unicode_encode(self._herds_path,
69 encoding=_encodings['fs'], errors='strict'),
70 - parser=etree.XMLParser(target=_MetadataTreeBuilder()))
71 + parser = etree.XMLParser(target=_MetadataTreeBuilder()))
72 except (ImportError, IOError, SyntaxError):
73 return None
74
75 --
76 2.28.0