From: fuzzyray Date: Thu, 7 May 2009 21:59:54 +0000 (-0000) Subject: Add patch from Robert Buchholz: Reformat '2008-01-01' dates to 'January 01, 2008... X-Git-Tag: gentoolkit-0.3.0_rc6~5 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=9371e372e07fb23adb26f8222c0fb8b97d8b690b;p=gentoolkit.git Add patch from Robert Buchholz: Reformat '2008-01-01' dates to 'January 01, 2008' to keep output consistent. svn path=/trunk/gentoolkit/; revision=628 --- diff --git a/pym/gentoolkit/glsa/__init__.py b/pym/gentoolkit/glsa/__init__.py index b7985d9..86a6dd3 100644 --- a/pym/gentoolkit/glsa/__init__.py +++ b/pym/gentoolkit/glsa/__init__.py @@ -397,6 +397,32 @@ def getMinUpgrade(vulnerableList, unaffectedList, minimize=True): rValue += "-"+c_pv[3] return rValue +def format_date(datestr): + """ + Takes a date (announced, revised) date from a GLSA and formats + it as readable text (i.e. "January 1, 2008"). + + @type date: String + @param date: the date string to reformat + @rtype: String + @return: a reformatted string, or the original string + if it cannot be reformatted. + """ + splitdate = datestr.split("-", 2) + if len(splitdate) != 3: + return datestr + + # This cannot raise an error as we use () instead of [] + splitdate = (int(x) for x in splitdate) + + from datetime import date + try: + d = date(*splitdate) + except ValueError: + return datestr + + # TODO We could format to local date format '%x' here? + return d.strftime("%B %d, %Y") # simple Exception classes to catch specific errors class GlsaTypeException(Exception): @@ -483,7 +509,7 @@ class Glsa: # the simple (single, required, top-level, #PCDATA) tags first self.title = getText(myroot.getElementsByTagName("title")[0], format="strip") self.synopsis = getText(myroot.getElementsByTagName("synopsis")[0], format="strip") - self.announced = getText(myroot.getElementsByTagName("announced")[0], format="strip") + self.announced = format_date(getText(myroot.getElementsByTagName("announced")[0], format="strip")) count = 1 # Support both formats of revised: @@ -496,6 +522,8 @@ class Glsa: elif (self.revised.find(":") >= 0): (self.revised, count) = self.revised.split(":") + self.revised = format_date(self.revised) + try: self.count = int(count) except ValueError: