6 repositorios
Static analysis tools specifically designed for Python source code to detect errors, style violations, and code smells.
Distinct from Static Code Analysis: Distinct from Static Code Analysis: focuses on Python-specific analysis rather than language-agnostic scanning.
Explore 6 awesome GitHub repositories matching testing & quality assurance · Python Static Analyzers. Refine with filters or upvote what's useful.
Pylint es una herramienta de análisis estático de código para Python que verifica el código fuente en busca de errores, violaciones de estándares de codificación y olores de código sin ejecutar el programa. Analiza el código en un árbol de sintaxis abstracta y recorre el árbol para detectar problemas, aplica reglas de estilo configurables y convenciones de nomenclatura, e identifica bloques de código duplicados comparando secuencias de origen tokenizadas. La herramienta también incluye un motor de inferencia que deduce los tipos de variables simulando rutas de código, permitiendo un análisis más profundo incluso en código sin tipos. Lo que distingue a Pylint es su arquitectura de verificador basada en complementos, que permite a los usuarios extender el análisis cargando módulos externos de Python que registran verificadores personalizados y reglas de inferencia en tiempo de ejecución. Admite la estratificación de archivos de configuración, fusionando configuraciones de múltiples archivos y argumentos de línea de comandos para que los valores predeterminados de todo el proyecto puedan ser anulados por opciones locales o específicas de complementos. Pylint también rastrea la calidad del código a lo largo del tiempo comparando los resultados del análisis actual con una puntuación de referencia almacenada, informando sobre mejoras o regresiones en ejecuciones sucesivas, y puede generar diagramas de clases y paquetes UML desde el árbol de sintaxis abstracta en formatos Graphviz, PlantUML o MermaidJS. La herramienta se integra en tuberías de integración continua y ganchos de pre-confirmación para ejecutar verificaciones en múltiples versiones del intérprete de Python automáticamente. Se puede instalar a través de pip, conda o un gestor de paquetes del sistema, y ofrece corrección ortográfica opcional de identificadores de código a través de la biblioteca enchant. Pylint también proporciona integración de editor para entornos como Emacs y TextMate, e incluye un visor de explicación de mensajes que imprime la descripción completa y el contexto de cualquier código de advertencia o error específico directamente desde la línea de comandos.
Provides static analysis for Python source code, detecting errors, style violations, and code smells.
python-mode es un plugin de IDE para Vim que proporciona un conjunto de herramientas integrado para el desarrollo en Python. Incorpora una interfaz de depuración para gestionar puntos de interrupción de ejecución e inspeccionar el estado del programa, un navegador de documentación para recuperar símbolos oficiales del lenguaje y un sistema para análisis estático y refactorización estructural automatizada. El proyecto cuenta con un gestor de entorno dedicado que detecta y utiliza entornos virtuales específicos del proyecto para garantizar la resolución correcta de bibliotecas e intérpretes. Integra herramientas externas como PyLint y Rope para identificar errores de código y realizar refactorizaciones en todo el proyecto. El plugin cubre capacidades de desarrollo amplias, incluyendo linting en tiempo real, formato de código automatizado y autocompletado de código inteligente. Proporciona además herramientas de navegación estructural para saltar entre definiciones, resaltado de sintaxis avanzado y la capacidad de ejecutar bloques de código individuales directamente desde el editor.
Uses PyLint to perform static analysis of Python source code to detect errors and style violations.
jedi-vim es una extensión de Vim y una interfaz de servidor de lenguaje que proporciona análisis estático y autocompletado inteligente para el desarrollo en Python. Funciona como un puente entre el editor Vim y la biblioteca Jedi para llevar capacidades de entorno de desarrollo integrado (IDE) al editor. El plugin proporciona autocompletado de código consciente del contexto y herramientas de análisis estático, incluyendo la capacidad de saltar a definiciones, rastrear el uso de símbolos a través de archivos y renombrar identificadores globalmente para mantener la consistencia del código. También cuenta con ventanas emergentes flotantes para vistas previas de documentación y visualización de firmas de funciones en tiempo real. La herramienta incluye integración para entornos virtuales de Python para asegurar un análisis preciso de las dependencias específicas del proyecto y paquetes de terceros.
Provides a static analysis tool for Python to enable symbol navigation, refactoring, and documentation popups.
autopep8 es un estilizador y formateador de código estático para Python diseñado para reescribir automáticamente el código fuente para cumplir con la guía de estilo PEP 8. Funciona como un limpiador de código recursivo que identifica y corrige irregularidades de sangría, espacios en blanco y sintaxis en proyectos completos. La herramienta realiza refactorización estructural utilizando transformaciones de árbol de sintaxis abstracta para ejecutar cambios que no son de espacios en blanco, como acortar líneas largas y mejorar pruebas de identidad. Incluye un modo de refactorización agresivo para violaciones de estilo complejas y admite el formateo selectivo mediante marcadores en línea para deshabilitar cambios en bloques de código específicos. Las capacidades incluyen filtrado de correcciones basado en reglas para apuntar o ignorar códigos de error específicos, formateo de rangos de líneas y la generación de informes de diferencias de estilo. El sistema puede procesar archivos a través de una interfaz de línea de comandos con recorrido recursivo de directorios y modificación de archivos in-place, o integrarse programáticamente a través de una API. Las preferencias de formato y los conjuntos de reglas pueden gestionarse a través de archivos de configuración globales o locales.
Identifies and fixes indentation, whitespace, and syntax irregularities using static analysis.
Vulture es una herramienta de análisis estático y linter diseñada para encontrar variables, funciones y clases no utilizadas en código fuente Python. Opera como un detector de código muerto y buscador de código no utilizado que escanea archivos fuente para identificar expresiones e importaciones inalcanzables sin ejecutar el código. La herramienta emplea un sistema de puntuación heurística basado en confianza para asignar valores de probabilidad a las detecciones, ayudando a distinguir símbolos verdaderamente no utilizados de posibles falsos positivos. Además, ayuda a podar lógica muerta ordenando las clases y funciones no utilizadas detectadas por conteo de líneas para priorizar la eliminación de los bloques de código más grandes. La superficie de análisis incluye análisis de alcanzabilidad de flujo de control, seguimiento de referencias de símbolos y la capacidad de suprimir falsos positivos mediante patrones de nombres, decoradores o comentarios de ignorar. Vulture también soporta la generación y gestión de listas blancas (whitelists) mediante módulos mock para excluir elementos específicos de escaneos posteriores. Las reglas de análisis de todo el proyecto y las rutas de destino pueden gestionarse mediante archivos de configuración, incluyendo soporte para el formato TOML.
Provides static analysis for Python source code to identify unreachable blocks and unused imports.
Overcommit es un gestor de hooks de Git y framework de validación pre-commit diseñado para automatizar la ejecución de scripts y comprobaciones durante varios eventos de Git. Sirve como una herramienta de automatización de flujos de trabajo que asegura que la calidad del código y los estándares del proyecto se cumplan antes de que los cambios sean confirmados o enviados a un repositorio remoto. El sistema se distingue por una configuración integral basada en YAML que permite un control detallado del comportamiento de los hooks, incluyendo filtrado de ejecución de archivos, omisión condicional y la gestión de dependencias de hooks. Proporciona roles especializados como un validador de mensajes de commit para aplicar convenciones de nomenclatura y un protector de push para bloquear código inestable o inseguro antes de que llegue a las ramas remotas. El proyecto cubre una amplia gama de áreas de capacidad, incluyendo análisis estático y linting en múltiples idiomas, gestión automatizada de dependencias y verificación de seguridad como escaneo de secretos y cumplimiento de licencias. También gestiona la integridad del repositorio a través de la aplicación de ramas protegidas y ejecución de hooks en paralelo para optimizar el rendimiento.
Integrates Pylint to analyze Python files for coding errors and style violations.