commit: e66ee7b35405a650c517939e503443948b660ca9 Author: Dirkjan Ochtman <dirkjan <AT> ochtman <DOT> nl> AuthorDate: Mon Jan 25 18:33:32 2016 +0000 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> CommitDate: Tue May 3 06:25:53 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=e66ee7b3
repoman/modules/.../pkgmetadata.py: Early return in metadata check code for
readability
pym/repoman/modules/scan/metadata/pkgmetadata.py | 190 ++++++++++++-----------
1 file changed, 96 insertions(+), 94 deletions(-)
diff --git a/pym/repoman/modules/scan/metadata/pkgmetadata.py
b/pym/repoman/modules/scan/metadata/pkgmetadata.py
index 5c6452a..3c1c2d0 100644
--- a/pym/repoman/modules/scan/metadata/pkgmetadata.py
+++ b/pym/repoman/modules/scan/metadata/pkgmetadata.py
@@ -83,112 +83,114 @@ class PkgMetadata(ScanBase, USEFlagChecks):
# metadata.xml file check
if "metadata.xml" not in checkdirlist:
self.qatracker.add_error("metadata.missing", xpkg +
"/metadata.xml")
+ self.muselist = frozenset(self.musedict)
+ return False
+
# metadata.xml parse check
+ metadata_bad = False
+ xml_info = {}
+ xml_parser = _XMLParser(xml_info, target=_MetadataTreeBuilder())
+
+ # read metadata.xml into memory
+ try:
+ _metadata_xml = xml.etree.ElementTree.parse(
+ _unicode_encode(
+ os.path.join(checkdir, "metadata.xml"),
+ encoding=_encodings['fs'],
errors='strict'),
+ parser=xml_parser)
+ except (ExpatError, SyntaxError, EnvironmentError) as e:
+ metadata_bad = True
+ self.qatracker.add_error("metadata.bad",
"%s/metadata.xml: %s" % (xpkg, e))
+ del e
else:
- metadata_bad = False
- xml_info = {}
- xml_parser = _XMLParser(xml_info,
target=_MetadataTreeBuilder())
-
- # read metadata.xml into memory
- try:
- _metadata_xml = xml.etree.ElementTree.parse(
- _unicode_encode(
- os.path.join(checkdir,
"metadata.xml"),
- encoding=_encodings['fs'],
errors='strict'),
- parser=xml_parser)
- except (ExpatError, SyntaxError, EnvironmentError) as e:
- metadata_bad = True
- self.qatracker.add_error("metadata.bad",
"%s/metadata.xml: %s" % (xpkg, e))
- del e
+ if not hasattr(xml_parser, 'parser') or \
+ sys.hexversion < 0x2070000 or \
+ (sys.hexversion > 0x3000000 and sys.hexversion
< 0x3020000):
+ # doctype is not parsed with python 2.6 or 3.1
+ pass
else:
- if not hasattr(xml_parser, 'parser') or \
- sys.hexversion < 0x2070000 or \
- (sys.hexversion > 0x3000000 and
sys.hexversion < 0x3020000):
- # doctype is not parsed with python 2.6
or 3.1
- pass
+ if "XML_DECLARATION" not in xml_info:
+ self.qatracker.add_error(
+ "metadata.bad",
"%s/metadata.xml: "
+ "xml declaration is missing on
first line, "
+ "should be '%s'" % (xpkg,
metadata_xml_declaration))
else:
- if "XML_DECLARATION" not in xml_info:
+ xml_version, xml_encoding,
xml_standalone = \
+ xml_info["XML_DECLARATION"]
+ if xml_encoding is None or \
+ xml_encoding.upper() !=
metadata_xml_encoding:
+ if xml_encoding is None:
+ encoding_problem = "but
it is undefined"
+ else:
+ encoding_problem = "not
'%s'" % xml_encoding
self.qatracker.add_error(
"metadata.bad",
"%s/metadata.xml: "
- "xml declaration is
missing on first line, "
- "should be '%s'" %
(xpkg, metadata_xml_declaration))
- else:
- xml_version, xml_encoding,
xml_standalone = \
-
xml_info["XML_DECLARATION"]
- if xml_encoding is None or \
- xml_encoding.upper() !=
metadata_xml_encoding:
- if xml_encoding is None:
-
encoding_problem = "but it is undefined"
- else:
-
encoding_problem = "not '%s'" % xml_encoding
-
self.qatracker.add_error(
- "metadata.bad",
"%s/metadata.xml: "
- "xml
declaration encoding should be '%s', %s" %
- (xpkg,
metadata_xml_encoding, encoding_problem))
-
- if "DOCTYPE" not in xml_info:
- metadata_bad = True
- self.qatracker.add_error(
- "metadata.bad",
- "%s/metadata.xml: %s" %
(xpkg, "DOCTYPE is missing"))
- else:
- doctype_name, doctype_system,
doctype_pubid = \
- xml_info["DOCTYPE"]
- if doctype_system !=
metadata_dtd_uri:
- if doctype_system is
None:
- system_problem
= "but it is undefined"
- else:
- system_problem
= "not '%s'" % doctype_system
-
self.qatracker.add_error(
- "metadata.bad",
"%s/metadata.xml: "
- "DOCTYPE:
SYSTEM should refer to '%s', %s" %
- (xpkg,
metadata_dtd_uri, system_problem))
+ "xml declaration
encoding should be '%s', %s" %
+ (xpkg,
metadata_xml_encoding, encoding_problem))
- if doctype_name !=
metadata_doctype_name:
-
self.qatracker.add_error(
- "metadata.bad",
"%s/metadata.xml: "
- "DOCTYPE: name
should be '%s', not '%s'" %
- (xpkg,
metadata_doctype_name, doctype_name))
-
- # load USE flags from metadata.xml
- try:
- self.musedict =
parse_metadata_use(_metadata_xml)
- except portage.exception.ParseError as e:
+ if "DOCTYPE" not in xml_info:
metadata_bad = True
self.qatracker.add_error(
- "metadata.bad",
"%s/metadata.xml: %s" % (xpkg, e))
+ "metadata.bad",
+ "%s/metadata.xml: %s" % (xpkg,
"DOCTYPE is missing"))
else:
- for atom in
chain(*self.musedict.values()):
- if atom is None:
- continue
- try:
- atom = Atom(atom)
- except InvalidAtom as e:
+ doctype_name, doctype_system,
doctype_pubid = \
+ xml_info["DOCTYPE"]
+ if doctype_system != metadata_dtd_uri:
+ if doctype_system is None:
+ system_problem = "but
it is undefined"
+ else:
+ system_problem = "not
'%s'" % doctype_system
+ self.qatracker.add_error(
+ "metadata.bad",
"%s/metadata.xml: "
+ "DOCTYPE: SYSTEM should
refer to '%s', %s" %
+ (xpkg,
metadata_dtd_uri, system_problem))
+
+ if doctype_name !=
metadata_doctype_name:
+ self.qatracker.add_error(
+ "metadata.bad",
"%s/metadata.xml: "
+ "DOCTYPE: name should
be '%s', not '%s'" %
+ (xpkg,
metadata_doctype_name, doctype_name))
+
+ # load USE flags from metadata.xml
+ try:
+ self.musedict =
parse_metadata_use(_metadata_xml)
+ except portage.exception.ParseError as e:
+ metadata_bad = True
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: %s" %
(xpkg, e))
+ else:
+ for atom in chain(*self.musedict.values()):
+ if atom is None:
+ continue
+ try:
+ atom = Atom(atom)
+ except InvalidAtom as e:
+ self.qatracker.add_error(
+ "metadata.bad",
+ "%s/metadata.xml:
Invalid atom: %s" % (xpkg, e))
+ else:
+ if atom.cp != xpkg:
self.qatracker.add_error(
"metadata.bad",
-
"%s/metadata.xml: Invalid atom: %s" % (xpkg, e))
- else:
- if atom.cp != xpkg:
-
self.qatracker.add_error(
-
"metadata.bad",
-
"%s/metadata.xml: Atom contains "
-
"unexpected cat/pn: %s" % (xpkg, atom))
-
- # Run other metadata.xml checkers
- try:
- check_metadata(_metadata_xml,
get_herd_base(
- self.repoman_settings))
- except (UnknownHerdsError, ) as e:
- metadata_bad = True
- self.qatracker.add_error(
- "metadata.bad",
"%s/metadata.xml: %s" % (xpkg, e))
- del e
-
- # Only carry out if in package directory or check forced
- if not metadata_bad:
- if not self.xmllint.check(checkdir, repolevel):
-
self.qatracker.add_error("metadata.bad", xpkg + "/metadata.xml")
- del metadata_bad
+
"%s/metadata.xml: Atom contains "
+ "unexpected
cat/pn: %s" % (xpkg, atom))
+
+ # Run other metadata.xml checkers
+ try:
+ check_metadata(_metadata_xml, get_herd_base(
+ self.repoman_settings))
+ except (UnknownHerdsError, ) as e:
+ metadata_bad = True
+ self.qatracker.add_error(
+ "metadata.bad", "%s/metadata.xml: %s" %
(xpkg, e))
+ del e
+
+ # Only carry out if in package directory or check forced
+ if not metadata_bad:
+ if not self.xmllint.check(checkdir, repolevel):
+ self.qatracker.add_error("metadata.bad", xpkg +
"/metadata.xml")
+ del metadata_bad
self.muselist = frozenset(self.musedict)
return False
