From: Zac Medico Date: Sat, 27 Aug 2011 19:01:06 +0000 (-0700) Subject: egencache: implement XMLParser.doctype() X-Git-Tag: v2.2.0_alpha52~50 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=63035acd702ab0cdaac31e33676b5a20a91eae47;p=portage.git 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. --- 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: