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
으로 푸시됩니다.
개발 상태
이 프로젝트는 다음을 지원하기 위해 개발된 실험이었습니다. 시스네이크. 시스네이크가 중단되었기 때문에, 이 프로젝트도 중단되었습니다.