[Scipy-svn] r2974 - in trunk/Lib/sandbox/timeseries: . include

scipy-svn at scipy.org scipy-svn at scipy.org
Wed May 9 13:08:35 EDT 2007


Author: mattknox_ca
Date: 2007-05-09 12:08:29 -0500 (Wed, 09 May 2007)
New Revision: 2974

Added:
   trunk/Lib/sandbox/timeseries/include/
   trunk/Lib/sandbox/timeseries/include/c_lib.h
   trunk/Lib/sandbox/timeseries/include/c_tdates.h
   trunk/Lib/sandbox/timeseries/include/c_tseries.h
Log:
adding files related to restructuring of the C code

Added: trunk/Lib/sandbox/timeseries/include/c_lib.h
===================================================================
--- trunk/Lib/sandbox/timeseries/include/c_lib.h	2007-05-08 15:59:31 UTC (rev 2973)
+++ trunk/Lib/sandbox/timeseries/include/c_lib.h	2007-05-09 17:08:29 UTC (rev 2974)
@@ -0,0 +1,30 @@
+#ifndef C_LIB_H
+#define C_LIB_H
+
+#include <Python.h>
+#include <structmember.h>
+#include "arrayobject.h"
+
+/* c_lib defines generic functions that aren't inherently time series/date
+specific but are needed in various parts of the module. */
+
+#define INT_ERR_CODE -999
+
+#define MEM_CHECK(item) if (item == NULL) { return PyErr_NoMemory(); }
+#define ERR_CHECK(item) if (item == NULL) { return NULL; }
+
+char *str_uppercase(char *);
+char *str_replace(const char*, const char*, const char*);
+
+PyObject *np_add(PyObject*, PyObject*);
+PyObject *np_multiply(PyObject*, PyObject*);
+PyObject *np_subtract(PyObject*, PyObject*);
+PyObject *np_sqrt(PyObject*);
+int np_greater(PyObject*, PyObject*);
+int np_greater_equal(PyObject*, PyObject*);
+
+PyObject *set_callback(PyObject*, PyObject**);
+
+void import_c_lib(PyObject*);
+
+#endif

Added: trunk/Lib/sandbox/timeseries/include/c_tdates.h
===================================================================
--- trunk/Lib/sandbox/timeseries/include/c_tdates.h	2007-05-08 15:59:31 UTC (rev 2973)
+++ trunk/Lib/sandbox/timeseries/include/c_tdates.h	2007-05-09 17:08:29 UTC (rev 2974)
@@ -0,0 +1,129 @@
+#ifndef C_TDATES_H
+#define C_TDATES_H
+
+#include "c_lib.h"
+
+#define HIGHFREQ_ORIG 719163
+
+/*** FREQUENCY CONSTANTS ***/
+
+#define FR_ANN  1000  /* Annual */
+#define FR_ANNDEC  FR_ANN  /* Annual - December year end*/
+#define FR_ANNJAN  1001  /* Annual - January year end*/
+#define FR_ANNFEB  1002  /* Annual - February year end*/
+#define FR_ANNMAR  1003  /* Annual - March year end*/
+#define FR_ANNAPR  1004  /* Annual - April year end*/
+#define FR_ANNMAY  1005  /* Annual - May year end*/
+#define FR_ANNJUN  1006  /* Annual - June year end*/
+#define FR_ANNJUL  1007  /* Annual - July year end*/
+#define FR_ANNAUG  1008  /* Annual - August year end*/
+#define FR_ANNSEP  1009  /* Annual - September year end*/
+#define FR_ANNOCT  1010  /* Annual - October year end*/
+#define FR_ANNNOV  1011  /* Annual - November year end*/
+
+/* The standard quarterly frequencies. Year is determined by what year the end
+   month lies in. */
+#define FR_QTR  2000       /* Quarterly - December year end (default quarterly) */
+#define FR_QTRDEC  FR_QTR  /* Quarterly - December year end */
+#define FR_QTRJAN  2001    /* Quarterly - January year end */
+#define FR_QTRFEB  2002    /* Quarterly - February year end */
+#define FR_QTRMAR  2003    /* Quarterly - March year end */
+#define FR_QTRAPR  2004    /* Quarterly - April year end */
+#define FR_QTRMAY  2005    /* Quarterly - May year end */
+#define FR_QTRJUN  2006    /* Quarterly - June year end */
+#define FR_QTRJUL  2007    /* Quarterly - July year end */
+#define FR_QTRAUG  2008    /* Quarterly - August year end */
+#define FR_QTRSEP  2009    /* Quarterly - September year end */
+#define FR_QTROCT  2010    /* Quarterly - October year end */
+#define FR_QTRNOV  2011    /* Quarterly - November year end */
+
+/* End period based quarterly frequencies. Year is determined by what year the
+   end month lies in. */
+#define FR_QTREDEC  FR_QTRDEC  /* Quarterly - December year end*/
+#define FR_QTREJAN  FR_QTRJAN  /* Quarterly - January year end*/
+#define FR_QTREFEB  FR_QTRFEB  /* Quarterly - February year end*/
+#define FR_QTREMAR  FR_QTRMAR  /* Quarterly - March year end*/
+#define FR_QTREAPR  FR_QTRAPR  /* Quarterly - April year end*/
+#define FR_QTREMAY  FR_QTRMAY  /* Quarterly - May year end*/
+#define FR_QTREJUN  FR_QTRJUN  /* Quarterly - June year end*/
+#define FR_QTREJUL  FR_QTRJUL  /* Quarterly - July year end*/
+#define FR_QTREAUG  FR_QTRAUG  /* Quarterly - August year end*/
+#define FR_QTRESEP  FR_QTRSEP  /* Quarterly - September year end*/
+#define FR_QTREOCT  FR_QTROCT  /* Quarterly - October year end*/
+#define FR_QTRENOV  FR_QTRNOV  /* Quarterly - November year end*/
+
+/* Starting period based quarterly frequencies. Year is determined by what year
+   the starting month lies in. */
+#define FR_QTRSDEC  FR_QTRDEC+12  /* Quarterly - December year end*/
+#define FR_QTRSJAN  FR_QTRJAN+12  /* Quarterly - January year end*/
+#define FR_QTRSFEB  FR_QTRFEB+12  /* Quarterly - February year end*/
+#define FR_QTRSMAR  FR_QTRMAR+12  /* Quarterly - March year end*/
+#define FR_QTRSAPR  FR_QTRAPR+12  /* Quarterly - April year end*/
+#define FR_QTRSMAY  FR_QTRMAY+12  /* Quarterly - May year end*/
+#define FR_QTRSJUN  FR_QTRJUN+12  /* Quarterly - June year end*/
+#define FR_QTRSJUL  FR_QTRJUL+12  /* Quarterly - July year end*/
+#define FR_QTRSAUG  FR_QTRAUG+12  /* Quarterly - August year end*/
+#define FR_QTRSSEP  FR_QTRSEP+12  /* Quarterly - September year end*/
+#define FR_QTRSOCT  FR_QTROCT+12  /* Quarterly - October year end*/
+#define FR_QTRSNOV  FR_QTRNOV+12  /* Quarterly - November year end*/
+
+#define FR_MTH  3000  /* Monthly */
+
+#define FR_WK   4000  /* Weekly */
+#define FR_WKSUN FR_WK /* Weekly - Sunday end of week */
+#define FR_WKMON 4001 /* Weekly - Monday end of week */
+#define FR_WKTUE 4002 /* Weekly - Tuesday end of week */
+#define FR_WKWED 4003 /* Weekly - Wednesday end of week */
+#define FR_WKTHU 4004 /* Weekly - Thursday end of week */
+#define FR_WKFRI 4005 /* Weekly - Friday end of week */
+#define FR_WKSAT 4006 /* Weekly - Saturday end of week */
+
+#define FR_BUS  5000  /* Business days */
+#define FR_DAY  6000  /* Daily */
+#define FR_HR   7000  /* Hourly */
+#define FR_MIN  8000  /* Minutely */
+#define FR_SEC  9000  /* Secondly */
+#define FR_UND  -10000 /* Undefined */
+
+////////////////////////////////////////////////////
+
+int get_freq_group(int);
+
+typedef struct {
+    int from_week_end; //day the week ends on in the "from" frequency
+    int to_week_end; //day the week ends on in the "to" frequency
+
+    int from_a_year_end; //month the year ends on in the "from" frequency
+    int to_a_year_end; //month the year ends on in the "to" frequency
+
+    int from_q_year_end; //month the year ends on in the "from" frequency
+    int to_q_year_end; //month the year ends on in the "to" frequency
+} asfreq_info;
+
+int check_freq(PyObject *);
+void get_asfreq_info(int, int, asfreq_info*);
+long (*get_asfreq_func(int, int, int))(long, char, asfreq_info*);
+
+#define CHECK_ASFREQ(result) if ((result) == INT_ERR_CODE) return NULL
+
+PyObject *DateArray_asfreq(PyObject *, PyObject *);
+PyObject *DateArray_getDateInfo(PyObject *, PyObject *);
+
+char c_tdates_thisday_doc[];
+PyObject *c_tdates_thisday(PyObject *, PyObject *);
+
+char c_tdates_check_freq_doc[];
+PyObject *c_tdates_check_freq(PyObject *, PyObject *);
+
+char c_tdates_check_freq_str_doc[];
+PyObject *c_tdates_check_freq_str(PyObject *, PyObject *);
+
+char c_tdates_get_freq_group_doc[];
+PyObject *c_tdates_get_freq_group(PyObject *, PyObject *);
+
+PyObject *set_callback_DateFromString(PyObject *, PyObject *);
+PyObject *set_callback_DateTimeFromString(PyObject *, PyObject *);
+
+void import_c_tdates(PyObject *);
+
+#endif

Added: trunk/Lib/sandbox/timeseries/include/c_tseries.h
===================================================================
--- trunk/Lib/sandbox/timeseries/include/c_tseries.h	2007-05-08 15:59:31 UTC (rev 2973)
+++ trunk/Lib/sandbox/timeseries/include/c_tseries.h	2007-05-09 17:08:29 UTC (rev 2974)
@@ -0,0 +1,15 @@
+#ifndef C_TSERIES_H
+#define C_TSERIES_H
+
+#include "c_lib.h"
+
+PyObject *TimeSeries_convert(PyObject *, PyObject *);
+
+PyObject *MaskedArray_mov_sum(PyObject *, PyObject *, PyObject *);
+PyObject *MaskedArray_mov_median(PyObject *, PyObject *, PyObject *);
+PyObject *MaskedArray_mov_average(PyObject *, PyObject *, PyObject *);
+PyObject *MaskedArray_mov_stddev(PyObject *, PyObject *, PyObject *);
+
+void import_c_tseries(PyObject *);
+
+#endif




More information about the Scipy-svn mailing list