Sealang은 libclang을 위한 개선된 파이썬 바인딩 세트입니다.

libclang`의 업스트림 유지 관리자는 특별히 파이썬 3 호환성과 같은 문제를 해결하는 패치에 반응하지 않았습니다, 및 API의 중요한 누락(리터럴 추출과 같은 및 연산자 추출 등).

이 패키지는 libclang에 대한 공식 파이썬 바인딩의 포크입니다, 의 공식 파이썬 바인딩을 포크한 것입니다.

작동 방식

실랑은 약간 지저분한 해킹입니다. libclang은 C 바인딩의 집합입니다. C++ API에 대한 C 바인딩 집합이며, 파이썬ctypes는 C API를 래핑하는 데 사용됩니다. 그러나 C++ API는 상당히 풍부한 반면,libclang`은 그렇지 않습니다.

Sealang은 유용한 기능을 제공하는 C++ 호출에 C 래퍼를 제공하여 이 격차를 해소합니다. 를 제공하여 유용한 기능을 제공합니다. 이 C 함수 라이브러리는 전달 목적으로 파이썬 C 모듈로 래핑되어 있습니다. 에는 노출된 Python 객체나 메서드가 없지만, 이 모듈은 모듈이기 때문에 기본 컴파일된 sealang.so 파일을 쉽게 찾을 수 있습니다. 그런 다음 ctypes를 사용하여 sealang 래퍼 함수를 노출하는 데 사용됩니다;

내부적으로, Sealang은 libclang API의 일부 사소한 부분을 재현합니다; 이는 (문자열 생성 및 조작 메서드 등) 타사 사용을 위해 심볼로 노출되지 않는 메서드입니다. 메서드(예: 문자열 생성 및 조작 메서드)입니다.

이 모든 기능은 잠재적으로 업스트림으로 전달될 수 있는 후보입니다. 로 전달될 수 있습니다.

Clang과의 관계

이 프로젝트는 현재 파이썬에서 사용할 수 있는 것을 미러링하는 것을 목표로 합니다. 바인딩을 미러링하는 것을 목표로 합니다. 이 프로젝트의 버전 번호는 의 버전과 SVN 리비전에서 가져옵니다.

libclang에 대한 모든 변경 사항은 여기에 미러링됩니다. 여기서 변경하면 가능한 경우 업스트림의 libclang으로 푸시됩니다.

개발 상태

이 프로젝트는 다음을 지원하기 위해 개발된 실험이었습니다. 시스네이크. 시스네이크가 중단되었기 때문에, 이 프로젝트도 중단되었습니다.

How to help