Python/Cython/C and callbacks
===

I have the following question.
We have to pass callback functions to the C code. If the function is a Cython function in the same module, the situation is quite simple

In Cython:

    def callme(int x):
        ` c_callme(x, <int (*)(int)>&callbackme) ` 
 
    cdef int callbackme(int x):
        ` print <int> x `

        ` return <int>x `

In C:

    int c_callme(int x, int (*f)(int))
    {
	printf("---%d\n",x);
	printf("--%d\n",*(f(x)));
	return x;
    }

The question is as follows: we want to generalize this code in the most Pythonic way so that it can accept also python functions as callback arguments (of course, some additional layer is needed), and also C/Cython functions from another module. I suppose, for C/Cython functions from a separate module one has to get the address of these functions (convert to long int?) and for Python function a certain wrapper is needed
