SIP es una herramienta de software de código abierto que se utiliza para conectar programas o bibliotecas informáticas escritas en C o C++ con el lenguaje de scripting Python . Es una alternativa a SWIG .
SIP se desarrolló originalmente en 1998 para PyQt —los enlaces de Python para el kit de herramientas GUI Qt— pero es adecuado para generar enlaces para cualquier biblioteca de C o C++. [ 1 ]
Concepto
SIP toma un conjunto de archivos de especificación ( .sip ) que describen la API y genera el código C++ necesario. Este código se compila para producir los módulos de extensión de Python. Un archivo .sip es esencialmente el archivo de cabecera de la clase con algunos elementos eliminados (porque SIP no incluye un analizador sintáctico completo de C++) y otros añadidos (porque C++ no siempre proporciona suficiente información sobre el funcionamiento de la API).
Para PyQt v4 uso una herramienta interna (escrita con PyQt, por supuesto) llamada metasip. Es una especie de IDE para SIP. Utiliza GCC -XML para analizar los archivos de cabecera más recientes y guarda los datos relevantes, como XML, en un proyecto metasip. Luego, metasip realiza el equivalente a una comparación con la versión anterior de la API y señala cualquier cambio que deba revisarse. Estos cambios se realizan a través de la interfaz gráfica y se marcan en la lista de tareas pendientes. Generar los archivos .sip es tan sencillo como hacer clic en un botón. En mi repositorio de Subversion, PyQt v4 es básicamente un archivo XML de 20 MB. Actualizar PyQt v4 para una versión menor de Qt v4 lleva aproximadamente media hora. En cuanto al funcionamiento del código generado, no creo que sea muy diferente al de cualquier otro generador de enlaces. Python tiene una API de C muy buena para escribir módulos de extensión; es una de las razones por las que tantas herramientas de terceros tienen enlaces para Python. Para cada clase de C++, el código generado por SIP crea una clase de Python correspondiente implementada en C. [ 2 ]
— Phil Thompson, desarrollador y encargado del mantenimiento
Aplicaciones destacadas que utilizan SIP
- PyQt , una adaptación a Python del marco de aplicaciones y el conjunto de herramientas de widgets Qt.
- QGIS , un sistema de información geográfica (SIG) de escritorio multiplataforma, gratuito y de código abierto.
- QtiPlot , un programa informático para analizar y visualizar datos científicos.
- Calibre (software) , un gestor de libros electrónicos multiplataforma gratuito y de código abierto.
- Veusz , un programa multiplataforma gratuito y de código abierto para visualizar datos científicos.
Referencias
- Herramientas de programación
- Herramientas de programación informática gratuitas
- Lenguajes de scripting