[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