1 /* 2 * Author: George V. Neville-Neil 3 */ 4 5 #include "Python.h" 6 7 /* Our stuff... */ 8 #include "timing.h" 9 10 static PyObject * 11 start_timing(PyObject *self) 12 { 13 Py_INCREF(Py_None); 14 BEGINTIMING; 15 return Py_None; 16 } 17 18 static PyObject * 19 finish_timing(PyObject *self) 20 { 21 ENDTIMING 22 Py_INCREF(Py_None); 23 return Py_None; 24 } 25 26 static PyObject * 27 seconds(PyObject *self) 28 { 29 return PyInt_FromLong(TIMINGS); 30 } 31 32 static PyObject * 33 milli(PyObject *self) 34 { 35 return PyInt_FromLong(TIMINGMS); 36 } 37 38 static PyObject * 39 micro(PyObject *self) 40 { 41 return PyInt_FromLong(TIMINGUS); 42 } 43 44 45 static PyMethodDef timing_methods[] = { 46 {"start", (PyCFunction)start_timing, METH_NOARGS}, 47 {"finish", (PyCFunction)finish_timing, METH_NOARGS}, 48 {"seconds", (PyCFunction)seconds, METH_NOARGS}, 49 {"milli", (PyCFunction)milli, METH_NOARGS}, 50 {"micro", (PyCFunction)micro, METH_NOARGS}, 51 {NULL, NULL} 52 }; 53 54 55 PyMODINIT_FUNC inittiming(void) 56 { 57 if (PyErr_WarnPy3k("the timing module has been removed in " 58 "Python 3.0; use time.clock() instead", 2) < 0) 59 return; 60 61 (void)Py_InitModule("timing", timing_methods); 62 } 63