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

scipy-svn at scipy.org scipy-svn at scipy.org
Wed Dec 13 09:28:03 EST 2006


Author: mattknox_ca
Date: 2006-12-13 08:27:59 -0600 (Wed, 13 Dec 2006)
New Revision: 2404

Modified:
   trunk/Lib/sandbox/timeseries/tsdate.py
Log:


Modified: trunk/Lib/sandbox/timeseries/tsdate.py
===================================================================
--- trunk/Lib/sandbox/timeseries/tsdate.py	2006-12-13 11:03:40 UTC (rev 2403)
+++ trunk/Lib/sandbox/timeseries/tsdate.py	2006-12-13 14:27:59 UTC (rev 2404)
@@ -12,19 +12,19 @@
         
         if val is not None:
             if self.freq == 'D':
-                self.__date = val+originDate
+                self.mxDate = val+originDate
             elif self.freq == 'B':
-                self.__date = originDate + val + (val//5)*7 - (val//5)*5
+                self.mxDate = originDate + val + (val//5)*7 - (val//5)*5
             elif self.freq == 'S':
-                self.__date = secondlyOriginDate + mx.DateTime.DateTimeDeltaFromSeconds(val)
+                self.mxDate = secondlyOriginDate + mx.DateTime.DateTimeDeltaFromSeconds(val)
             elif self.freq == 'M':
-                self.__date = originDate + mx.DateTime.RelativeDateTime(months=val, day=-1)
+                self.mxDate = originDate + mx.DateTime.RelativeDateTime(months=val, day=-1)
             elif self.freq == 'A':
-                self.__date = originDate + mx.DateTime.RelativeDateTime(years=val, month=-1, day=-1)
+                self.mxDate = originDate + mx.DateTime.RelativeDateTime(years=val, month=-1, day=-1)
             elif self.freq == 'Q':
-                self.__date = originDate + 1 + mx.DateTime.RelativeDateTime(years=int(val/4), month=int(12 * (float(val)/4 - val/4)), day=-1)
+                self.mxDate = originDate + 1 + mx.DateTime.RelativeDateTime(years=int(val/4), month=int(12 * (float(val)/4 - val/4)), day=-1)
         elif mxDate is not None:
-            self.__date = mxDate
+            self.mxDate = mxDate
         else:
             error = ValueError("Insufficient parameters given to create a date at the given frequency")
 
@@ -47,30 +47,32 @@
                 if month is None or day is None or seconds is None: raise error
                 
             if self.freq != 'S':
-                self.__date = mx.DateTime.Date(year, month, day)
+                self.mxDate = mx.DateTime.Date(year, month, day)
                 if self.freq == 'B':
-                    if self.__date.day_of_week == 5 or self.__date.day_of_week == 6:
+                    if self.mxDate.day_of_week == 5 or self.mxDate.day_of_week == 6:
                         raise ValueError("Weekend passed as business day")
             else:
                 _hours = int(seconds/3600)
                 _minutes = int((seconds - _hours*3600)/60)
                 _seconds = seconds % 60
                 
-                self.__date = mx.DateTime.Date(year, month, day, _hours, _minutes, _seconds)
+                self.mxDate = mx.DateTime.Date(year, month, day, _hours, _minutes, _seconds)
+                
+        self.value = self.__value()
                         
                 
-    def day(self):          return self.mxDate().day
-    def day_of_week(self):  return self.mxDate().day_of_week
-    def month(self):        return self.mxDate().month
-    def quarter(self):      return monthToQuarter(self.mxDate().month)
-    def year(self):         return self.mxDate().year
-    def seconds(self):      return int(self.mxDate().second)
-    def minute(self):       return int(self.mxDate().minute)
-    def hour(self):         return int(self.mxDate().hour)
+    def day(self):          return self.mxDate.day
+    def day_of_week(self):  return self.mxDate.day_of_week
+    def month(self):        return self.mxDate.month
+    def quarter(self):      return monthToQuarter(self.mxDate.month)
+    def year(self):         return self.mxDate.year
+    def seconds(self):      return int(self.mxDate.second)
+    def minute(self):       return int(self.mxDate.minute)
+    def hour(self):         return int(self.mxDate.hour)
     
     def strfmt(self, fmt):
         qFmt = fmt.replace("%q", "XXXX")
-        tmpStr = self.__date.strftime(qFmt)
+        tmpStr = self.mxDate.strftime(qFmt)
         return tmpStr.replace("XXXX", str(self.quarter()))
             
     def __str__(self):
@@ -120,26 +122,24 @@
     def __hash__(self): return hash(int(self)) ^ hash(self.freq)
     
     def __int__(self):
-        return self.value()
+        return self.value
             
-    def value(self):
+    def __value(self):
         if self.freq == 'D':
-            return int((self.__date-originDate).days)
+            return int((self.mxDate-originDate).days)
         elif self.freq == 'B':
-            days = (self.__date-originDate).days
+            days = (self.mxDate-originDate).days
             weeks = days // 7
             return int((weeks*5) + (days - weeks*7))
         elif self.freq == 'M':
-            return (self.__date.year - originDate.year)*12 + (self.__date.month - originDate.month)
+            return (self.mxDate.year - originDate.year)*12 + (self.mxDate.month - originDate.month)
         elif self.freq == 'S':
-            return int((self.__date - secondlyOriginDate).seconds)
+            return int((self.mxDate - secondlyOriginDate).seconds)
         elif self.freq == 'A':
-            return int(self.__date.year - originDate.year + 1)
+            return int(self.mxDate.year - originDate.year + 1)
         elif self.freq == 'Q':
-            return int ((self.__date.year - originDate.year)*4 + (self.__date.month - originDate.month)/3)
+            return int ((self.mxDate.year - originDate.year)*4 + (self.mxDate.month - originDate.month)/3)
             
-    def mxDate(self):
-        return self.__date
     
 originDate = mx.DateTime.Date(1850)-1
 secondlyOriginDate = mx.DateTime.Date(1980) - mx.DateTime.DateTimeDeltaFromSeconds(1)
@@ -194,7 +194,7 @@
         if toFreq == 'B':
             # BEFORE result: preceeding Friday if date is a weekend, same day otherwise
             # AFTER result: following Monday if date is a weekend, same day otherwise
-            tempDate = date.mxDate()
+            tempDate = date.mxDate
             if _rel == 'B':
                 if tempDate.day_of_week >= 5: tempDate -= (tempDate.day_of_week - 4)
             elif _rel == 'A':
@@ -228,7 +228,7 @@
     elif date.freq == 'M':
 
         if toFreq == 'D':
-            tempDate = date.mxDate()
+            tempDate = date.mxDate
             if _rel == 'B':
                 return Date(freq='D', year=date.year(), month=date.month(), day=1)
             elif _rel == 'A':




More information about the Scipy-svn mailing list