Este proyecto esta clasificado como en el ático. Ya no se mantiene activamente


Sealang es un conjunto mejorado de enlaces de Python para libclang.

Los mantenedores de libclang no han sido especialmente sensibles con parches que abordan problemas como la compatibilidad con Python 3 y omisiones significativas en el API (como la extracción de literales y operadores).

Este paquete es una bifurcación de los enlaces oficiales de Python para libclang, reparados para corregir estos problemas.

Cómo funciona

Sealang es un hack un poco desagradable. libclang es un conjunto de enlaces C a un API en C++; Python ctypes se utiliza para envolver la API C. Sin embargo, mientras que el API en C++ API es bastante rica en opciones, la de libclang lo es menos.

Sealang comprime esta brecha proporcionando envolturas C alrededor de las llamadas C ++ que proporcionan la funcionalidad útil. Esta librería de funciones C se envuelve como un módulo CPython - este módulo C no contiene Python objetos o métodos, pero debido a que es un módulo, el módulo compilado sealang.so es fácil de encontrar. ctypes se utiliza para exponer las funciones de la envoltura del sealang;

Internamente, Sealang reproduce algunas piezas menores de la API de libclang; estos son métodos (como los métodos de creación y manipulación de cadenas) que no están expuestos como símbolos para el uso por terceros.

Toda esta funcionalidad está potencialmente disponible para ser incorporada a libclang.

Relación con Clang

Este proyecto pretende reflejar lo que está actualmente disponible en los enlaces de Python a libclang. El número de versión para este proyecto se extrae de la versión y la revisión SVN del repositorio oficial clang.

Cualquier cambio hecho en el repositorio oficial de libclang se reflejará aquí; algún cambio hecho aquí será, cuando sea posible, empujado hacia el repositorio oficial de libclang.

Estado del desarrollo

Este proyecto fue un experimento desarrollado para apoyar Seasnake. Desde que Seasnake fue abandonado, este proyecto también se abandonó.


Código Fuente


Tipo de proyecto:
Librería
Madurez:
Desarrollo inicial
Lenguaje:
Python
Plataforma:
macOS, Linux (GTK+)

Colaboradores