py-rrdtool-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[py-rrdtool-cvs] [Commit] py-rrdtool/src _rrdtoolmodule.c


From: Hye-Shik Chang <address@hidden>
Subject: [py-rrdtool-cvs] [Commit] py-rrdtool/src _rrdtoolmodule.c
Date: Mon, 27 May 2002 15:48:25 -0400

perky       02/05/27 15:48:25

  Modified:    src      _rrdtoolmodule.c
  Log:
  Remove isnan method and change all NaNs to None
  
  Revision  Changes    Path
  1.9       +15 -27    py-rrdtool/src/_rrdtoolmodule.c
  
  Index: _rrdtoolmodule.c
  ===================================================================
  RCS file: /cvsroot/py-rrdtool/py-rrdtool/src/_rrdtoolmodule.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- _rrdtoolmodule.c  26 May 2002 00:40:26 -0000      1.8
  +++ _rrdtoolmodule.c  27 May 2002 19:48:25 -0000      1.9
  @@ -4,10 +4,10 @@
    * RRDTool Python binding
    *
    * Author  : Hye-Shik Chang <address@hidden>
  - * Date    : $Date: 2002/05/26 00:40:26 $
  + * Date    : $Date: 2002/05/27 19:48:25 $
    * Created : 23 May 2002
    *
  - * $Revision: 1.8 $
  + * $Revision: 1.9 $
    *
    *  
==========================================================================
    *  This file is part of py-rrdtool.
  @@ -29,7 +29,7 @@
    */
   
   static char *version =
  -"$Id: _rrdtoolmodule.c,v 1.8 2002/05/26 00:40:26 perky Exp $";
  +"$Id: _rrdtoolmodule.c,v 1.9 2002/05/27 19:48:25 perky Exp $";
   
   #include "Python.h"
   #include "rrd.h"
  @@ -158,6 +158,7 @@
       } else {
           PyObject *range_tup, *dsnam_tup, *data_list, *t;
           int i, j, row = ((end - start)/step + 1);
  +        rrd_value_t dv;
           /* Return :
             ((start, end, step), (name1, name2, ...), [(data1, data2, ..), 
...]) */
   
  @@ -181,8 +182,15 @@
           for (i = 0; i < row; i ++) {
               t = PyTuple_New(ds_cnt);
               PyList_SET_ITEM(data_list, i, t);
  -            for (j = 0; j < ds_cnt; j++)
  -                PyTuple_SET_ITEM(t, j, 
PyFloat_FromDouble((double)*(datai++)));
  +            for (j = 0; j < ds_cnt; j++) {
  +                dv = *(datai++);
  +                if (isnan(dv)) {
  +                    PyTuple_SET_ITEM(t, j, Py_None);
  +                    Py_INCREF(Py_None);
  +                } else {
  +                    PyTuple_SET_ITEM(t, j, 
PyFloat_FromDouble((double)*(datai++)));
  +                }
  +            }
           }
   
           for (i = 0; i < ds_cnt; i++)
  @@ -373,7 +381,8 @@
       Py_DECREF(t);
   
   #define DICTSET_VAL(dict, name, value) \
  -    t = PyFloat_FromDouble((double)value); \
  +    t = isnan(value) ? (Py_INCREF(Py_None), Py_None) :  \
  +        PyFloat_FromDouble((double)value); \
       PyDict_SetItemString(dict, name, t); \
       Py_DECREF(t);
   
  @@ -441,26 +450,6 @@
       return r;
   }
   
  -static char PyRRD_isnan__doc__[] =
  -"isnan(value): test wheter value is NaN";
  -
  -static PyObject *
  -PyRRD_isnan(PyObject *self, PyObject *args)
  -{
  -    double tv;
  -
  -    if (! PyArg_ParseTuple(args, "d:isnan", &tv))
  -        return NULL;
  -
  -    if (isnan(tv)) {
  -        Py_INCREF(Py_True);
  -        return Py_True;
  -    } else {
  -        Py_INCREF(Py_False);
  -        return Py_False;
  -    }
  -}
  -
   /* List of methods defined in the module */
   #define meth(name, func, doc) {name, (PyCFunction)func, METH_VARARGS, doc}
   
  @@ -473,7 +462,6 @@
       meth("last",    PyRRD_last,     PyRRD_last__doc__),
       meth("resize",  PyRRD_resize,   PyRRD_resize__doc__),
       meth("info",    PyRRD_info,     PyRRD_info__doc__),
  -    meth("isnan",   PyRRD_isnan,    PyRRD_isnan__doc__),
       {NULL, NULL},
   };
   
  
  
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]