Articles of Swig

¿Técnica para usar std :: ifstream, std :: ofstream en python a través de SWIG?

¿Hay alguna forma de usar std::[io]fstream en python a través de un swig? Tengo una clase C con funciones como: void readFrom(std::istream& istr); void writeTo(std::ostream& ostr); Me gustaría construir, en python, una instancia std::ofstream y pasarla como argumento para writeTo (y hacer lo mismo para leer). Traté de hacer una función como std::ostream& make_ostream(const std::string& […]

SWIG python inicializa un puntero a NULL

¿Es posible inicializar un ptr a NULL desde el lado de python cuando se trata con el módulo SWIG? Por ejemplo, digamos que envolví una estructura trackt en un módulo de gulp m (_m.so), puedo crear un puntero a la estructura desde Python de la siguiente manera: import m track = m.track_t() esto solo hará […]

Devuelva el vector <pair > y del método c ++ a la lista de tuplas de Python utilizando el mapa de tipos de swig

Estoy teniendo muchos problemas al intentar envolver un método c ++ que devuelve una referencia constante a un vector de pares a una lista de tuplas de Python usando %typemap(out) . Actualmente tengo algo como esto: myclass.h: #inlcude using std::vector; class MyClass { private: const vector<pair> & _myvector; public: MyClass(const vector<pair> & myvector ); const […]

¿Comstackndo un contenedor SWIG Python para una biblioteca estática?

Esta es una pregunta noob. Estoy tratando de aprender a usar SWIG para crear una interfaz de Python para una biblioteca de C ++. La biblioteca es una biblioteca propietaria de terceros; Me llega en forma de un archivo de encabezado (foo.h) y un archivo estático (libfoo.a). Para simplificar las cosas, he preparado un ejemplo […]

swig no hay módulo llamado _ejemplo

No puedo reproducir el ejemplo básico de SWIG en Windows. Mi error está en los documentos SWIG y estoy seguro de que hago las 2 correcciones que mencionan. Para este error: >>> import example Traceback (most recent call last): File “”, line 1, in ? File “example.py”, line 2, in ? import _example ImportError: No […]

¿Cómo usar float ** en Python con Swig?

Estoy escribiendo enlaces de swig para algunas funciones de c. Una de estas funciones toma un flotador **. Ya estoy usando cpointer.i para los punteros normales y busqué en carrays.i , pero no encontré la forma de declarar un flotador **. ¿Que recomiendas? archivo de interfaz: extern int read_data (const char * file, int * […]

Cómo calcular una imagen PIL de Python utilizando SWIG

Tengo una biblioteca que toma una estructura de imagen en C muy simple: // Represents a one-channel 8-bit image typedef struct simple_image_t { uint32 rows; uint32 cols; uint8 *imgdata; } simple_image; No creé esta biblioteca, ni esta estructura, así que no puedo cambiarla. Soy responsable de envolver esta biblioteca para python utilizando SWIG. El envoltorio […]

Cómo enumerar los miembros de la enumeración utilizando SWIG

¿Puedo exponer una enum C ++ a SWIG como una entidad real en lugar de un conjunto de constantes para poder enumerarlas en el código de Python?

Error de argumento SWIG al usar “using std :: vector” en python

Esto está muy relacionado con esta pregunta. Independientemente de si esto es o no una práctica de encoding, me he encontrado con un código que se ve así prueba.hh #include using std::vector; class Test { public: vector data; }; Estoy intentando cambiar esto usando swig3.0 usando el siguiente archivo de interfaz test.i %module test_swig %include […]

¿Cuál es la forma más limpia de llamar a una función de Python desde C ++ con un objeto envuelto SWIG?

Tengo el siguiente código, que implementa una clase simple de C ++ (ObjWithPyCallback) con una función de callback de Python. La idea es llamar a la función Python con “esto” como único argumento. El problema es que, dado que ObjWithPyCallback es un objeto envuelto SWIG, necesito el tipo de información SWIG para crear un objeto […]