diff roundup/date.py @ 3460:c75dd71a7963 maint-0.8

merge from HEAD
author Richard Jones <richard@users.sourceforge.net>
date Fri, 13 Jan 2006 01:29:48 +0000
parents ff490d669015
children
line wrap: on
line diff
--- a/roundup/date.py	Sat Jan 07 10:13:44 2006 +0000
+++ b/roundup/date.py	Fri Jan 13 01:29:48 2006 +0000
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 #
-# $Id: date.py,v 1.77.2.4 2005-03-03 04:47:35 richard Exp $
+# $Id: date.py,v 1.77.2.5 2006-01-13 01:29:45 richard Exp $
 
 """Date, time and time interval handling.
 """
@@ -40,6 +40,19 @@
             src[gran] = int(src[gran]) + value
             break
 
+# no, I don't know why we must anchor the date RE when we only ever use it
+# in a match()
+date_re = re.compile(r'''^
+    ((?P<y>\d\d\d\d)([/-](?P<m>\d\d?)([/-](?P<d>\d\d?))?)? # yyyy[-mm[-dd]]
+    |(?P<a>\d\d?)[/-](?P<b>\d\d?))?              # or mm-dd
+    (?P<n>\.)?                                   # .
+    (((?P<H>\d?\d):(?P<M>\d\d))?(:(?P<S>\d\d(\.\d+)?))?)?  # hh:mm:ss
+    (?P<o>[\d\smyd\-+]+)?                        # offset
+$''', re.VERBOSE)
+serialised_date_re = re.compile(r'''
+    (\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d?(\.\d+)?)
+''', re.VERBOSE)
+
 class Date:
     '''
     As strings, date-and-time stamps are specified with the date in
@@ -154,15 +167,8 @@
         except:
             raise ValueError, 'Unknown spec %r' % (spec,)
 
-    def set(self, spec, offset=0, date_re=re.compile(r'''
-            ((?P<y>\d\d\d\d)([/-](?P<m>\d\d?)([/-](?P<d>\d\d?))?)? # yyyy[-mm[-dd]]
-            |(?P<a>\d\d?)[/-](?P<b>\d\d?))?              # or mm-dd
-            (?P<n>\.)?                                     # .
-            (((?P<H>\d?\d):(?P<M>\d\d))?(:(?P<S>\d\d(\.\d+)?))?)?  # hh:mm:ss
-            (?P<o>.+)?                                     # offset
-            ''', re.VERBOSE), serialised_re=re.compile(r'''
-            (\d{4})(\d\d)(\d\d)(\d\d)(\d\d)(\d\d?(\.\d+)?)
-            ''', re.VERBOSE), add_granularity=0):
+    def set(self, spec, offset=0, date_re=date_re,
+            serialised_re=serialised_date_re, add_granularity=0):
         ''' set the date to the value in spec
         '''
 

Roundup Issue Tracker: http://roundup-tracker.org/