手巻きメソッドを追加したいSWIGモジュールがあります。
%module frob
%inline %{
int Foo(int x, int y) { return x+y; }
PyObject* Bar(PyObject* self, PyObject* args) {
return PyString_FromString("Hello from Bar");
}
%}
ただし、スウィッグを実行するとswig -python frob.i
、SWIGが実際にFooとBarの両方を_wrap_Foo、_wrap_Barとしてラップしていることがわかりました。
SWIGINTERN PyObject *_wrap_Foo(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
// ...
result = (int)Foo(arg1,arg2);
// ...
}
SWIGINTERN PyObject *_wrap_Bar(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
// ...
result = (PyObject *)Bar(arg1,arg2);
// ...
}
SWIGにBarの折り返しを停止するように指示し、PyMethodDefテーブルで公開するようにするにはどうすればよいですか?