summaryrefslogtreecommitdiffstats
path: root/bin/egencache
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-08-27 12:01:06 -0700
committerZac Medico <zmedico@gentoo.org>2011-08-27 12:01:06 -0700
commit63035acd702ab0cdaac31e33676b5a20a91eae47 (patch)
treed260473d5085bf3c26f8aa37e3afdfd94c529dd3 /bin/egencache
parent42c96587b86ba8f551f605086e47a5cd96843a1a (diff)
downloadportage-63035acd702ab0cdaac31e33676b5a20a91eae47.tar.gz
portage-63035acd702ab0cdaac31e33676b5a20a91eae47.tar.bz2
portage-63035acd702ab0cdaac31e33676b5a20a91eae47.zip
egencache: implement XMLParser.doctype()
This is prevents "DeprecationWarning: This method of XMLParser is deprecated. Define doctype() method on the TreeBuilder target." warnings. The code is copied from repoman, commit 5a5e51a2737a0855bb562683f50c57cc31587460.
Diffstat (limited to 'bin/egencache')
-rwxr-xr-xbin/egencache12
1 files changed, 11 insertions, 1 deletions
diff --git a/bin/egencache b/bin/egencache
index 6d8df35b5..a87394c0d 100755
--- a/bin/egencache
+++ b/bin/egencache
@@ -368,6 +368,14 @@ class GenCache(object):
"committing target: %s\n" % (ce,),
level=logging.ERROR, noiselevel=-1)
+class _MetadataTreeBuilder(ElementTree.TreeBuilder):
+ """
+ Implements doctype() as required to avoid deprecation warnings with
+ >=python-2.7.
+ """
+ def doctype(self, name, pubid, system):
+ pass
+
class GenUseLocalDesc(object):
def __init__(self, portdb, output=None,
preserve_comments=False):
@@ -475,7 +483,9 @@ class GenUseLocalDesc(object):
for cp in self._portdb.cp_all():
metadata_path = os.path.join(repo_path, cp, 'metadata.xml')
try:
- metadata = ElementTree.parse(metadata_path)
+ metadata = ElementTree.parse(metadata_path,
+ parser=ElementTree.XMLParser(
+ target=_MetadataTreeBuilder()))
except IOError:
pass
except (ExpatError, EnvironmentError) as e: