Swift 소스 코드를 원본과 정확히 대응하는 구문 트리로 파싱하고 검사·생성·변환하는 Swift 라이브러리 모음입니다.
davidhalter/parso
Python 버전별 문법을 지원하고, 오류 복구와 원본 소스 보존 기능을 갖춘 Python 파서입니다.
- 스타
- 678
- 포크
- 131
- 열린 이슈
- 11
- 마지막 커밋
- 4일 전
어떤 프로젝트인가요?
Parso는 Python 소스 코드를 구문 트리로 파싱하고 간결한 API를 통해 분석합니다. 표준 라이브러리의 ast 모듈과 달리 공백과 주석을 보존하므로, 노드에서 get_code()를 호출하면 원본 텍스트를 정확히 재현합니다. 또한 구문 오류가 발생해도 파싱을 중단하지 않고 복구하며, 하나의 파일에서 여러 문제를 보고할 수 있습니다.
Parso는 선택한 버전의 문법을 불러와 여러 Python 버전의 코드를 파싱할 수 있습니다. 원래 Jedi 프로젝트에서 분리되었으며, 사용자가 입력하는 동안 미완성되거나 잘못된 코드도 처리해야 하는 에디터 도구의 파싱 계층으로 사용됩니다.
이 프로젝트는 pip으로 설치할 수 있으며, 트리를 다루고 오류 목록을 확인하는 parso.parse()와 parso.load_grammar() 같은 함수를 제공합니다.
핵심 기능
- 01구문 오류가 발생한 뒤에도 파싱을 이어가는 오류 복구 기능.
- 02공백과 주석을 보존하는 왕복 파싱.
- 03한 파일에서 여러 구문 오류를 나열합니다.
- 04특정 Python 버전의 문법을 선택할 수 있습니다.
- 05구문 트리를 탐색하고 분석하는 간결한 API.
활용 사례
- 미완성 코드도 처리해야 하는 에디터 또는 IDE 도구 개발.
- 정확한 텍스트 왕복이 필요한 소스 코드 리팩터링 또는 변환 도구 작성.
- Python 파일의 여러 구문 오류를 한 번에 보고.
- 서로 다른 Python 버전의 문법에 맞춰 Python 코드 분석.
빠른 시작
- 1
pip으로 PyPI에서 parso를 설치합니다
pip install parso
사용 전 알아둘 점
- Python 3.6에서 async/await 키워드 및 from __future__ print_function 처리와 관련된 알려진 문제가 있습니다.
- 아직 완성도가 낮은 개발 중인 PEP8 검사기가 나열되어 있습니다.
- 메타데이터에 라이선스가 명확히 지정되어 있지 않습니다.
토픽
자주 묻는 질문
- parso은(는) 무엇인가요?
- Python 버전별 문법을 지원하고, 오류 복구와 원본 소스 보존 기능을 갖춘 Python 파서입니다. Parso는 Python 소스 코드를 구문 트리로 파싱하고 간결한 API를 통해 분석합니다. 표준 라이브러리의 ast 모듈과 달리 공백과 주석을 보존하므로, 노드에서 get_code()를 호출하면 원본 텍스트를 정확히 재현합니다. 또한 구문 오류가 발생해도 파싱을 중단하지 않고 복구하며, 하나의 파일에서 여러 문제를 보고할 수 있습니다.
- parso은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- parso은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- parso은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. parso의 마지막 커밋은 2026년 11월 2일입니다.
- parso은(는) 어디에 사용할 수 있나요?
- 미완성 코드도 처리해야 하는 에디터 또는 IDE 도구 개발. 정확한 텍스트 왕복이 필요한 소스 코드 리팩터링 또는 변환 도구 작성. Python 파일의 여러 구문 오류를 한 번에 보고. 서로 다른 Python 버전의 문법에 맞춰 Python 코드 분석.
- parso는 어떻게 설치하나요?
- pip으로 PyPI에서 parso를 설치합니다: pip install parso
- parso은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/davidhalter/parso
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
Markdown AST 같은 구문 트리에서 노드를 순회하고 방문하는 unist 유틸리티로, 테스트 필터와 enter/exit 방문자를 지원합니다.
구체 구문 트리를 만들고 소스 파일이 편집될 때마다 갱신하는 증분 파서 생성기이자 파싱 라이브러리입니다.
외부 의존성 없이 C 소스 코드에서 AST를 생성하는 순수 Python 구현의 완전한 C99/C11 파서입니다.
플러그인으로 CSS를 변환해 린트, 벤더 프리픽스 추가, 중첩, 압축 및 확장에 사용하는 JavaScript 도구입니다.
PHP로 작성된 PHP 파서로, PHP 소스 코드를 정적 분석과 코드 조작에 활용할 수 있는 AST로 변환합니다.