Repolode
davidhalter

davidhalter/parso

Un parser de Python que crea árboles de sintaxis, recupera errores y conserva el código fuente al reconstruirlo en distintas versiones de Python.

Estrellas
678
Forks
131
Issues abiertos
11
Último commit
hace 5 días

¿Qué es?

Parso analiza código fuente de Python y lo convierte en un árbol de sintaxis, que se puede inspeccionar mediante una API pequeña. A diferencia del módulo ast de la biblioteca estándar, conserva los espacios en blanco y los comentarios, por lo que llamar a get_code() en un nodo reproduce exactamente el texto original. También se recupera de los errores de sintaxis en lugar de detenerse ante el primero, y puede informar de varios problemas en un mismo archivo.

Parso permite analizar código de distintas versiones de Python cargando la gramática correspondiente a la versión elegida. Se extrajo originalmente del proyecto Jedi y se usa como capa de análisis en herramientas para editores que deben funcionar con código incompleto o incorrecto mientras el usuario escribe.

El proyecto se instala con pip y ofrece funciones como parso.parse() y parso.load_grammar() para trabajar con árboles y enumerar errores.

Funciones clave

  • 01Se recupera de los errores de sintaxis y continúa el análisis.
  • 02Analiza el código de forma reversible, conservando los espacios en blanco y los comentarios.
  • 03Enumera varios errores de sintaxis en un mismo archivo.
  • 04Permite elegir la gramática de una versión específica de Python.
  • 05Ofrece una API pequeña para recorrer y analizar el árbol de sintaxis.

Casos de uso

  • Crear herramientas para editores o IDE que deban manejar código incompleto.
  • Desarrollar herramientas de refactorización o transformación de código fuente que necesiten reconstruir el texto exactamente.
  • Informar de varios errores de sintaxis de un archivo Python a la vez.
  • Analizar código Python con gramáticas de distintas versiones de Python.

Inicio rápido

  1. 1

    Instala parso desde PyPI con pip

    pip install parso

Antes de usarlo

  • Hay problemas conocidos con las palabras clave async/await en Python 3.6 y con el manejo de from __future__ print_function.
  • Se menciona un validador PEP8 en desarrollo que todavía no está en buenas condiciones.
  • La licencia no está especificada claramente en los metadatos.

Temas

Preguntas frecuentes

¿Qué es parso?
Un parser de Python que crea árboles de sintaxis, recupera errores y conserva el código fuente al reconstruirlo en distintas versiones de Python. Parso analiza código fuente de Python y lo convierte en un árbol de sintaxis, que se puede inspeccionar mediante una API pequeña. A diferencia del módulo ast de la biblioteca estándar, conserva los espacios en blanco y los comentarios, por lo que llamar a get_code() en un nodo reproduce exactamente el texto original. También se recupera de los errores de sintaxis en lugar de detenerse ante el primero, y puede informar de varios problemas en un mismo archivo.
¿parso es gratuito? ¿Qué licencia tiene?
parso es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿parso sigue mantenido?
Mantenimiento activo. El último commit de parso fue el 2 nov 2026.
¿Para qué puedo usar parso?
Crear herramientas para editores o IDE que deban manejar código incompleto. Desarrollar herramientas de refactorización o transformación de código fuente que necesiten reconstruir el texto exactamente. Informar de varios errores de sintaxis de un archivo Python a la vez. Analizar código Python con gramáticas de distintas versiones de Python.
¿Cómo se instala parso?
Instala parso desde PyPI con pip: pip install parso
¿Dónde consigo parso?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/davidhalter/parso

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados