Guido van Rossum | 026f01a | 1996-09-06 21:16:21 +0000 | [diff] [blame] | 1 | #include "Python.h" |
| 2 | |
| 3 | static PyObject * |
Thomas Wouters | 7889010 | 2000-07-22 19:25:51 +0000 | [diff] [blame] | 4 | ex_foo(PyObject *self, PyObject *args) |
Guido van Rossum | 026f01a | 1996-09-06 21:16:21 +0000 | [diff] [blame] | 5 | { |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 6 | printf("Hello, world\n"); |
| 7 | Py_INCREF(Py_None); |
| 8 | return Py_None; |
Guido van Rossum | 026f01a | 1996-09-06 21:16:21 +0000 | [diff] [blame] | 9 | } |
| 10 | |
| 11 | static PyMethodDef example_methods[] = { |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 12 | {"foo", ex_foo, METH_VARARGS, "foo() doc string"}, |
| 13 | {NULL, NULL} |
Guido van Rossum | 026f01a | 1996-09-06 21:16:21 +0000 | [diff] [blame] | 14 | }; |
| 15 | |
Georg Brandl | 574b127 | 2009-01-02 19:20:26 +0000 | [diff] [blame] | 16 | static struct PyModuleDef examplemodule = { |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 17 | PyModuleDef_HEAD_INIT, |
| 18 | "example", |
| 19 | "example module doc string", |
| 20 | -1, |
| 21 | example_methods, |
| 22 | NULL, |
| 23 | NULL, |
| 24 | NULL, |
| 25 | NULL |
Georg Brandl | 574b127 | 2009-01-02 19:20:26 +0000 | [diff] [blame] | 26 | }; |
| 27 | |
Thomas Wouters | 477c8d5 | 2006-05-27 19:21:47 +0000 | [diff] [blame] | 28 | PyMODINIT_FUNC |
Georg Brandl | 574b127 | 2009-01-02 19:20:26 +0000 | [diff] [blame] | 29 | PyInit_example(void) |
Guido van Rossum | 026f01a | 1996-09-06 21:16:21 +0000 | [diff] [blame] | 30 | { |
Antoine Pitrou | f95a1b3 | 2010-05-09 15:52:27 +0000 | [diff] [blame] | 31 | return PyModule_Create(&examplemodule); |
Guido van Rossum | 026f01a | 1996-09-06 21:16:21 +0000 | [diff] [blame] | 32 | } |