Repolode
davidhalter

davidhalter/parso

Um parser de Python que cria árvores sintáticas, recupera-se de erros e preserva o código-fonte original entre versões do Python.

Estrelas
678
Forks
131
Issues abertas
11
Último commit
há 5 dias

O que é?

Parso analisa o código-fonte Python e o transforma em uma árvore sintática, que pode ser examinada por meio de uma API enxuta. Ao contrário do módulo ast da biblioteca padrão, ele preserva espaços em branco e comentários; assim, chamar get_code() em um nó reproduz exatamente o texto original. Além disso, ele se recupera de erros de sintaxe em vez de parar no primeiro e pode apontar vários problemas em um único arquivo.

Parso permite analisar código de diferentes versões do Python carregando a gramática da versão escolhida. O projeto foi originalmente extraído do Jedi e é usado como camada de parsing em ferramentas para editores que precisam funcionar com código incompleto ou com erros enquanto o usuário digita.

O projeto pode ser instalado com pip e oferece funções como parso.parse() e parso.load_grammar() para trabalhar com árvores e listar erros.

Recursos principais

  • 01Recupera-se de erros de sintaxe e continua a análise.
  • 02Preserva espaços em branco e comentários ao analisar e reconstruir o código.
  • 03Lista vários erros de sintaxe em um único arquivo.
  • 04Permite selecionar a gramática de uma versão específica do Python.
  • 05Oferece uma API enxuta para percorrer e analisar a árvore sintática.

Casos de uso

  • Criar ferramentas para editores ou IDEs que precisam lidar com código incompleto.
  • Desenvolver ferramentas de refatoração ou transformação de código-fonte que precisam preservar exatamente o texto original.
  • Apontar vários erros de sintaxe de um arquivo Python de uma só vez.
  • Analisar código Python usando gramáticas de diferentes versões do Python.

Início rápido

  1. 1

    Instale parso do PyPI com pip

    pip install parso

Antes de usar

  • Há problemas conhecidos com as palavras-chave async/await no Python 3.6 e com o tratamento de from __future__ print_function.
  • É listado um validador PEP8 em desenvolvimento que ainda não está em boas condições.
  • A licença não está especificada claramente nos metadados.

Tópicos

Perguntas frequentes

O que é parso?
Um parser de Python que cria árvores sintáticas, recupera-se de erros e preserva o código-fonte original entre versões do Python. Parso analisa o código-fonte Python e o transforma em uma árvore sintática, que pode ser examinada por meio de uma API enxuta. Ao contrário do módulo ast da biblioteca padrão, ele preserva espaços em branco e comentários; assim, chamar get_code() em um nó reproduz exatamente o texto original. Além disso, ele se recupera de erros de sintaxe em vez de parar no primeiro e pode apontar vários problemas em um único arquivo.
parso é gratuito? Qual é a licença?
parso é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
parso ainda é mantido?
Manutenção ativa. O último commit de parso foi em 2 de nov. de 2026.
Para que posso usar parso?
Criar ferramentas para editores ou IDEs que precisam lidar com código incompleto. Desenvolver ferramentas de refatoração ou transformação de código-fonte que precisam preservar exatamente o texto original. Apontar vários erros de sintaxe de um arquivo Python de uma só vez. Analisar código Python usando gramáticas de diferentes versões do Python.
Como instalar parso?
Instale parso do PyPI com pip: pip install parso
Onde consigo parso?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/davidhalter/parso

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados