kp_py.c (921B)
#define PY_SSIZE_T_CLEAN #include <Python.h> #include <complex.h> #include "kp.h" static PyObject* py_gen_data(PyObject* self, PyObject* args, PyObject* kwargs) { static char* kwlist[] = {"b", "V_0", "Delta", NULL}; double b = 1.0, V_0 = -5.0, Delta = 0.2; if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|ddd", kwlist, &b, &V_0, &Delta)) { return NULL; } gen_data(b, V_0, Delta); Py_RETURN_NONE; } static PyMethodDef KPMethods[] = { {"gen_data", (PyCFunction)py_gen_data, METH_VARARGS | METH_KEYWORDS, "gen_data(b=1.0, V_0=-5.0, Delta=0.2) -> None\n" "Generates ./data.csv using hardcoded path; silent on I/O failure."}, {NULL, NULL, 0, NULL} }; static struct PyModuleDef kp_module = { PyModuleDef_HEAD_INIT, "kp", "Kronig–Penney data generator", -1, KPMethods }; PyMODINIT_FUNC PyInit_kp(void) { return PyModule_Create(&kp_module); }