1/* 2 * Author: George V. Neville-Neil 3 */ 4 5#include "Python.h" 6 7/* Our stuff... */ 8#include "timing.h" 9 10static PyObject * 11start_timing(PyObject *self) 12{ 13 Py_INCREF(Py_None); 14 BEGINTIMING; 15 return Py_None; 16} 17 18static PyObject * 19finish_timing(PyObject *self) 20{ 21 ENDTIMING 22 Py_INCREF(Py_None); 23 return Py_None; 24} 25 26static PyObject * 27seconds(PyObject *self) 28{ 29 return PyInt_FromLong(TIMINGS); 30} 31 32static PyObject * 33milli(PyObject *self) 34{ 35 return PyInt_FromLong(TIMINGMS); 36} 37 38static PyObject * 39micro(PyObject *self) 40{ 41 return PyInt_FromLong(TIMINGUS); 42} 43 44 45static 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 55PyMODINIT_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