[Scipy-svn] r2623 - trunk/Lib/sandbox/timeseries

scipy-svn at scipy.org scipy-svn at scipy.org
Sat Jan 27 19:25:40 CST 2007


Author: pierregm
Date: 2007-01-27 19:25:37 -0600 (Sat, 27 Jan 2007)
New Revision: 2623

Modified:
   trunk/Lib/sandbox/timeseries/tdates.py
Log:
let strfmt accept an empty format string (forced to default)

Modified: trunk/Lib/sandbox/timeseries/tdates.py
===================================================================
--- trunk/Lib/sandbox/timeseries/tdates.py	2007-01-28 00:06:38 UTC (rev 2622)
+++ trunk/Lib/sandbox/timeseries/tdates.py	2007-01-28 01:25:37 UTC (rev 2623)
@@ -33,8 +33,7 @@
 
 
 import logging
-logging.basicConfig(level=logging.DEBUG,
-                    format='%(name)-15s %(levelname)s %(message)s',)
+logging.basicConfig(level=logging.DEBUG,format='%(name)-15s %(levelname)s %(message)s',)
 daflog = logging.getLogger('darray_from')
 dalog = logging.getLogger('DateArray')
 
@@ -125,7 +124,7 @@
             self.freq = corelib.fmtFreq(freq.freq)
         else:
             self.freq = corelib.fmtFreq(freq)
-        self.type = corelib.freqToType(self.freq)
+        self.freqstr = self.freq
         
         if value is not None:
             if self.freq == 'A':
@@ -356,9 +355,12 @@
         
     def strfmt(self, fmt):
         "Formats the date"
+        if fmt is None:
+            fmt = self.default_fmtstr()
         qFmt = fmt.replace("%q", "XXXX")
         tmpStr = self.mxDate.strftime(qFmt)
-        if "XXXX" in tmpStr: tmpStr = tmpStr.replace("XXXX", str(self.quarter))
+        if "XXXX" in tmpStr: 
+            tmpStr = tmpStr.replace("XXXX", str(self.quarter))
         return tmpStr
             
     def __str__(self):
@@ -505,9 +507,9 @@
 accesses the array element by element. Therefore, `d` is a Date object.    
     """
     def __new__(cls, dates=None, freq='U', copy=False):
-        #dalog.info("__new__ received %s [%i]" % (type(dates), numpy.size(dates)))
+        #logging.debug('DA:__new__ received %s [%i]" % (type(dates), numpy.size(dates)))
         if isinstance(dates, DateArray):
-            #dalog.info("__new__ sends %s as %s" % (type(dates), cls))
+            #logging.debug('DA:__new__ sends %s as %s" % (type(dates), cls))
             cls.__defaultfreq = dates.freq
             if not copy:
                 return dates.view(cls)
@@ -516,7 +518,7 @@
             _dates = numeric.asarray(dates, dtype=int_)
             if copy:
                 _dates = _dates.copy()
-            #dalog.info("__new__ sends %s as %s" % (type(_dates), cls))
+            #logging.debug('DA:__new__ sends %s as %s" % (type(_dates), cls))
             if freq is None:
                 freq = 'U'
             cls.__defaultfreq = corelib.fmtFreq(freq)
@@ -531,15 +533,17 @@
             raise ArithmeticDateError, "(function %s)" % context[0].__name__
     
     def __array_finalize__(self, obj):
-        #dalog.info("__array_finalize__ received %s" % type(obj))
+        #logging.debug('DA:__array_finalize__ received %s" % type(obj))
         if hasattr(obj, 'freq'):
             self.freq = obj.freq
+            self.freqstr = obj.freqstr
         else:
             self.freq = self.__defaultfreq
-        #dalog.info("__array_finalize__ sends %s" % type(self))
+            self.freqstr = self.__defaultfreq
+        #logging.debug('DA:__array_finalize__ sends %s" % type(self))
     
     def __getitem__(self, index):
-        #dalog.info("__getitem__ got  index %s (%s)"%(index, type(index)))
+        #logging.debug('DA:__getitem__ got  index %s (%s)"%(index, type(index)))
         if isinstance(index, Date):
             index = self.find_dates(index)
         elif numeric.asarray(index).dtype.kind == 'O':
@@ -620,15 +624,6 @@
         return numeric.asarray(cseries.getDateInfo(numeric.asarray(self), self.freq, info), dtype=int_)
         
     #.... Conversion methods ....................
-#    def toobject(self):
-#        "Converts the dates from ordinals to Date objects."
-#        # Note: we better try to cache the result
-#        if self.__toobj is None:
-##            toobj = numeric.empty(self.size, dtype=object_)
-##            toobj[:] = [Date(self.freq, value=d) for d in self]
-##            self.__toobj = toobj
-#            self.__toobj = self
-#        return self.__toobj
     #
     def tovalue(self):
         "Converts the dates to integer values."
@@ -763,7 +758,7 @@
         self._asdates = asdates
         self.__doc__ = getattr(methodname, '__doc__')
         self.obj = None
-        #dalog.info('__datearithmetics got method %s' % methodname)
+        #logging.debug('DA:__datearithmetics got method %s' % methodname)
     #
     def __get__(self, obj, objtype=None):
         self.obj = obj
@@ -775,7 +770,7 @@
         freq = instance.freq
         if 'context' not in kwargs:
             kwargs['context'] = 'DateOK'
-        #dalog.info('__datearithmetics got other %s' % type(other))
+        #logging.debug('DA:__datearithmetics got other %s' % type(other))
         method = getattr(super(DateArray,instance), self.methodname)
         if isinstance(other, DateArray):
             if other.freq != freq:
@@ -787,7 +782,7 @@
                 raise FrequencyDateError("Cannot operate on dates", \
                                          freq, other.freq)
             other = other.value
-            #dalog.info('__datearithmetics got other %s' % type(other))
+            #logging.debug('DA:__datearithmetics got other %s' % type(other))
         elif isinstance(other, ndarray):
             if other.dtype.kind not in ['i','f']:
                 raise ArithmeticDateError
@@ -901,6 +896,7 @@
     - a starting date and either an ending date or a given length.
     - a list of dates.
     """
+    #TODO: make sure we can use a string for a date!
     freq = corelib.fmtFreq(freq)
     # Case #1: we have a list ...................
     if dlist is not None:



More information about the Scipy-svn mailing list