Conjunto de bibliotecas Swift para analizar, inspeccionar, generar y transformar código fuente Swift como un árbol de sintaxis fiel al código original.
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
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
Utilidad de unist para recorrer y visitar nodos en árboles de sintaxis, como AST de Markdown, con filtro de prueba y visitantes de entrada y salida.
Generador incremental de parsers y biblioteca de análisis sintáctico que crea árboles de sintaxis concretos y los actualiza a medida que se editan los archivos fuente.
Parser completo de C99/C11 escrito en Python puro, que genera un AST a partir de código fuente C sin dependencias externas.
Herramienta de JavaScript para transformar CSS con plugins y lintar, añadir prefijos, anidar, minificar y ampliar hojas de estilo.
Un parser de PHP escrito en PHP que convierte código fuente PHP en un árbol de sintaxis abstracta para el análisis estático y la manipulación de código.