Pysonar2는 대형 코드베이스의 배치 처리를 위해 설계된 Python 용 시맨틱 인덱서 라이브러리입니다. 결과 인덱스는 코드 브라우저 및 코드 검색 엔진을 빌드하는 데 사용될 수 있습니다.
파이썬은 매우 역동적 인 언어입니다. 높은 정확도와 품질을 달성하기 위해 Pysonar2는 유형을 추론하기 위해 간과 분석을 수행합니다. Pysonar2는 일반적으로 Python IDE보다 더 나은 인덱스를 생성하는 동시에 IDE의 실시간 업데이트 기능을 희생합니다.
여기서 "타입 추론"이라는 용어는 규범이 아닌 기술적이라는 용어에 주목하십시오. 즉, 추론 된 유형은 코드가 실제로 사용되는 방식을 설명하지만 사용 방법을 규정하지 않습니다. 따라서 유형의 추론이 작동하는 방식은 유형 시스템 (예 : Hindley-Milner System)과 다릅니다.
Pysonar2는 Google의 내부 코드 검색, SourceGraph.com 및 Insight.io (현재 탄성의 일부)와 같은 여러 대규모 코드 내비게이션 서비스를위한 기본 색인 엔진입니다.
mvn package -DskipTests
Pysonar2가 생산하는 것을 느끼려면 다음 명령 줄을 사용하여 Python 2.7 표준 라이브러리의 간단한 코드 브라우저를 작성할 수 있습니다.
java -jar target/pysonar-<version>.jar /usr/lib/python2.7 ./html
기계에 따라 몇 분이 걸릴 수 있습니다. 이 프로세스 후에 HTML 디렉토리 내부에 대화식 HTML 파일을 찾아야합니다. 변수의 마우스를 움직여서 클릭하여 정의 등으로 이동할 수 있습니다.
이것은 라이브러리를 기반으로 한 간단한 데모 프로그램 일뿐입니다. pysonar2는 최종 사용자 도구가 아닙니다. 주로 Python Ides, 개발자 도구 및 코드 검색 엔진 용 라이브러리로 설계되었으므로 인터페이스는 최종 사용자 도구만큼 매력적이지 않을 수 있습니다.
문제가 있으면 언제든지 저에게 연락하십시오.
Pysonar2는 Cpython의 내장 ast 패키지를 사용하여 Python 코드를 구문 분석하므로 python 또는 python3 PATH Environment 변수에 의해 설치되어 있는지 확인하십시오. 이름이 다른 경우 기호 링크를 만드십시오.
PYTHONPATH 환경 변수는 Python 표준 라이브러리를 찾는 데 사용됩니다. 예를 들어 올바른 파이썬 라이브러리를 가리키는 것이 중요합니다.
export PYTHONPATH=/usr/lib/python2.7
이것이 올바르게 설정되지 않으면 라이브러리 코드에 대한 참조는 찾을 수 없습니다.
코드 기여를 할 수 있습니다.
Pysonar2 뒤에 매우 복잡하고 출판되지 않은 이론으로 인해 무고한 변화조차도 쉽게 잘못 될 수 있습니다. Pysonar2에 기여하기를 원한다면 중대한 변경을하기 전에 먼저 나와상의하십시오. 그렇지 않으면 변경 사항을 검토하지 못할 수도 있습니다.
기본 확인을 위해서는 단위 테스트를 실행할 수 있습니다. Pysonar2에는 기본 테스트 프레임 워크가 있습니다. 이 명령을 사용하여 테스트를 실행할 수 있습니다.
mvn test
코드 또는 테스트를 수정하면 새로운 예상 결과를 생성해야합니다. 이 명령 줄을 실행하십시오.
mvn package -DskipTests
java -classpath target/pysonar-<version>.jar org.yinwang.pysonar.TestInference -generate tests
새로운 테스트를 작성하려면 변경 사항을 보여주는 관련 Python 코드를 작성하면 tests/testname.test 라는 디렉토리에 넣으십시오 (테스트 디렉토리 이름은 ".Test"). 예제는 tests 디렉토리를 참조하십시오.
테스트가 모든 버그를 포착 할 것으로 기대하지 마십시오. 매우 조심하십시오 :)
Apache 2.0 라이센스. 라이센스 파일을 참조하십시오.