-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path_hello.cxx
More file actions
65 lines (56 loc) · 1.52 KB
/
_hello.cxx
File metadata and controls
65 lines (56 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// Python includes
#include <Python.h>
// STD includes
#include <stdio.h>
//-----------------------------------------------------------------------------
static PyObject *hello_example(PyObject *self, PyObject *args)
{
// Unpack a string from the arguments
const char *strArg;
if (!PyArg_ParseTuple(args, "s", &strArg))
return NULL;
// Print message and return None
PySys_WriteStdout("Hello, %s!)\n", strArg);
Py_RETURN_NONE;
}
//-----------------------------------------------------------------------------
static PyObject *elevation_example(PyObject *self, PyObject *args)
{
// Return an integer
return PyLong_FromLong(21463L);
}
//-----------------------------------------------------------------------------
static PyMethodDef hello_methods[] = {
{
"hello",
hello_example,
METH_VARARGS,
"Prints back 'Hello <param>', for example example: hello.hello('you')"
},
{
"elevation",
elevation_example,
METH_VARARGS,
"Returns elevation of Nevado Sajama."
},
{NULL, NULL, 0, NULL} /* Sentinel */
};
//-----------------------------------------------------------------------------
#if PY_MAJOR_VERSION < 3
PyMODINIT_FUNC init_hello(void)
{
(void) Py_InitModule("_hello", hello_methods);
}
#else /* PY_MAJOR_VERSION >= 3 */
static struct PyModuleDef hello_module_def = {
PyModuleDef_HEAD_INIT,
"_hello",
"Internal \"_hello\" module",
-1,
hello_methods
};
PyMODINIT_FUNC PyInit__hello(void)
{
return PyModule_Create(&hello_module_def);
}
#endif /* PY_MAJOR_VERSION >= 3 */