aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzyray <fuzzyray@gentoo.org>2009-05-20 21:12:34 +0000
committerfuzzyray <fuzzyray@gentoo.org>2009-05-20 21:12:34 +0000
commit6cf95c2447ad2748dc9e8eab721e721f5dd22fd3 (patch)
tree5dde182f66fc1c165f6973b2ac62524f86e9273e
parentHandle unicode encoding when dumping to stdout and start migration to using S... (diff)
downloadgentoolkit-6cf95c2447ad2748dc9e8eab721e721f5dd22fd3.tar.gz
gentoolkit-6cf95c2447ad2748dc9e8eab721e721f5dd22fd3.tar.bz2
gentoolkit-6cf95c2447ad2748dc9e8eab721e721f5dd22fd3.zip
Some python tweaks to speed glsa-checkgentoolkit-0.2.4.5
svn path=/branches/gentoolkit-0.2.4/; revision=644
-rwxr-xr-xsrc/glsa-check/glsa-check2
-rw-r--r--src/glsa-check/glsa.py37
2 files changed, 13 insertions, 26 deletions
diff --git a/src/glsa-check/glsa-check b/src/glsa-check/glsa-check
index 24e2dcf..b5982cf 100755
--- a/src/glsa-check/glsa-check
+++ b/src/glsa-check/glsa-check
@@ -132,7 +132,7 @@ if mode == "help" or mode == "HELP":
sys.stderr.write("\n" + msg)
sys.exit(1)
-# we need root priviledges for write access
+# we need root privileges for write access
if mode in ["fix", "inject"] and os.geteuid() != 0:
sys.stderr.write(__program__ + ": root access is needed for \""+mode+"\" mode\n")
sys.exit(2)
diff --git a/src/glsa-check/glsa.py b/src/glsa-check/glsa.py
index ec2a679..7c0dee2 100644
--- a/src/glsa-check/glsa.py
+++ b/src/glsa-check/glsa.py
@@ -18,6 +18,7 @@ import sys
import urllib
import codecs
import re
+import operator
import xml.dom.minidom
from StringIO import StringIO
@@ -153,7 +154,7 @@ def get_glsa_list(repository, myconfig):
for f in dirlist:
try:
- if f[:len(prefix)] == prefix:
+ if f[:len(prefix)] == prefix and f[-1*len(suffix):] == suffix:
rValue.append(f[len(prefix):-1*len(suffix)])
except IndexError:
pass
@@ -168,13 +169,11 @@ def getListElements(listnode):
@rtype: List of Strings
@return: a list that contains the value of the <li> elements
"""
- rValue = []
if not listnode.nodeName in ["ul", "ol"]:
raise GlsaFormatException("Invalid function call: listnode is not <ul> or <ol>")
- for li in listnode.childNodes:
- if li.nodeType != xml.dom.Node.ELEMENT_NODE:
- continue
- rValue.append(getText(li, format="strip"))
+ rValue = [getText(li, format="strip") \
+ for li in listnode.childNodes \
+ if li.nodeType == xml.dom.Node.ELEMENT_NODE]
return rValue
def getText(node, format, textfd = None):
@@ -262,9 +261,8 @@ def getMultiTagsText(rootnode, tagname, format):
@rtype: List of Strings
@return: a list containing the text of all I{tagname} childnodes
"""
- rValue = []
- for e in rootnode.getElementsByTagName(tagname):
- rValue.append(getText(e, format))
+ rValue = [getText(e, format) \
+ for e in rootnode.getElementsByTagName(tagname)]
return rValue
def makeAtom(pkgname, versionNode):
@@ -396,13 +394,8 @@ def getMinUpgrade(vulnerableList, unaffectedList, minimize=True):
the installed version.
"""
rValue = None
- v_installed = []
- u_installed = []
- for v in vulnerableList:
- v_installed += match(v, "vartree")
-
- for u in unaffectedList:
- u_installed += match(u, "vartree")
+ v_installed = reduce(operator.add, [match(v, "vartree") for v in vulnerableList], [])
+ u_installed = reduce(operator.add, [match(u, "vartree") for u in unaffectedList], [])
install_unaffected = True
for i in v_installed:
@@ -636,21 +629,15 @@ class Glsa:
pass
if len(self.bugs) > 0:
outstream.write("\nRelated bugs: ")
- for i in range(0, len(self.bugs)):
- outstream.write(self.bugs[i])
- if i < len(self.bugs)-1:
- outstream.write(", ")
- else:
- outstream.write("\n")
+ outstream.write(", ".join(self.bugs))
+ outstream.write("\n")
if self.background:
outstream.write("\n"+wrap(self.background, width, caption="Background: "))
outstream.write("\n"+wrap(self.description, width, caption="Description: "))
outstream.write("\n"+wrap(self.impact_text, width, caption="Impact: "))
outstream.write("\n"+wrap(self.workaround, width, caption="Workaround: "))
outstream.write("\n"+wrap(self.resolution, width, caption="Resolution: "))
- myreferences = ""
- for r in self.references:
- myreferences += (r.replace(" ", SPACE_ESCAPE)+NEWLINE_ESCAPE+" ")
+ myreferences = " ".join(r.replace(" ", SPACE_ESCAPE)+NEWLINE_ESCAPE for r in self.references)
outstream.write("\n"+wrap(myreferences, width, caption="References: "))
outstream.write("\n")