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으로 푸시됩니다.
개발 상태
This project was an experiment developed to support Seasnake. Since Seasnake has been abandoned, so has this project.