6 dépôts
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 est un outil d'analyse statique de code pour Python qui vérifie le code source pour les erreurs, les violations des normes de codage et les « code smells » sans exécuter le programme. Il analyse le code dans un arbre de syntaxe abstraite et parcourt l'arbre pour détecter les problèmes, applique des règles de style et des conventions de nommage configurables, et identifie les blocs de code dupliqués en comparant les séquences sources tokenisées. L'outil inclut également un moteur d'inférence qui déduit les types de variables en simulant les chemins de code, permettant une analyse plus approfondie même dans le code non typé. Ce qui distingue Pylint est son architecture de vérificateur basée sur des plugins, qui permet aux utilisateurs d'étendre l'analyse en chargeant des modules Python externes qui enregistrent des vérificateurs et des règles d'inférence personnalisés lors de l'exécution. Il prend en charge la superposition de fichiers de configuration, fusionnant les paramètres de plusieurs fichiers de configuration et arguments de ligne de commande afin que les valeurs par défaut à l'échelle du projet puissent être remplacées par des options locales ou spécifiques aux plugins. Pylint suit également la qualité du code au fil du temps en comparant les résultats d'analyse actuels par rapport à un score de référence stocké, signalant l'amélioration ou la régression lors des exécutions successives, et peut générer des diagrammes de classes et de paquets UML à partir de l'arbre de syntaxe abstraite dans les formats Graphviz, PlantUML ou MermaidJS. L'outil s'intègre dans les pipelines d'intégration continue et les hooks de pré-validation pour exécuter automatiquement des vérifications sur plusieurs versions de l'interpréteur Python. Il peut être installé via pip, conda ou un gestionnaire de paquets système, et offre une vérification orthographique optionnelle des identifiants de code via la bibliothèque enchant. Pylint fournit également une intégration d'éditeur pour des environnements tels qu'Emacs et TextMate, et inclut une visionneuse d'explication de message qui imprime la description complète et le contexte de tout code d'avertissement ou d'erreur spécifique directement depuis la ligne de commande.
Provides static analysis for Python source code, detecting errors, style violations, and code smells.
python-mode est un plugin IDE Vim qui fournit un ensemble d'outils intégrés pour le développement Python. Il incorpore une interface de débogage pour gérer les points d'arrêt d'exécution et inspecter l'état du programme, un navigateur de documentation pour récupérer les symboles de langage officiels, et un système pour l'analyse statique et la refactorisation structurelle automatisée. Le projet dispose d'un gestionnaire d'environnement dédié qui détecte et utilise des environnements virtuels spécifiques au projet pour assurer la résolution correcte des bibliothèques et de l'interpréteur. Il intègre des outils externes tels que PyLint et Rope pour identifier les erreurs de code et effectuer une refactorisation à l'échelle du projet. Le plugin couvre de vastes capacités de développement, incluant le linting en temps réel, le formatage de code automatisé et la complétion de code intelligente. Il fournit également des outils de navigation structurelle pour sauter entre les définitions, une coloration syntaxique avancée et la possibilité d'exécuter des blocs de code individuels directement depuis l'éditeur.
Uses PyLint to perform static analysis of Python source code to detect errors and style violations.
jedi-vim est une extension Vim et une interface de serveur de langage qui fournit une analyse statique et une autocomplétion intelligente pour le développement Python. Il fonctionne comme un pont entre l'éditeur Vim et la bibliothèque Jedi pour apporter des capacités d'IDE (environnement de développement intégré) à l'éditeur. Le plugin fournit une complétion de code contextuelle et des outils d'analyse statique, incluant la possibilité de sauter aux définitions, de suivre l'utilisation des symboles à travers les fichiers et de renommer les identifiants globalement pour maintenir la cohérence de la base de code. Il propose également des popups flottants pour les aperçus de documentation et l'affichage des signatures de fonctions en temps réel. L'outil inclut une intégration pour les environnements virtuels Python afin d'assurer une analyse précise des dépendances spécifiques au projet et des paquets tiers.
Provides a static analysis tool for Python to enable symbol navigation, refactoring, and documentation popups.
autopep8 est un styler et formateur de code statique Python conçu pour réécrire automatiquement le code source afin de se conformer au guide de style PEP 8. Il fonctionne comme un nettoyeur de code récursif qui identifie et corrige les irrégularités d'indentation, d'espacement et de syntaxe à travers des projets entiers. L'outil effectue un refactoring structurel en utilisant des transformations d'arbre de syntaxe abstraite pour exécuter des changements non liés aux espaces, tels que le raccourcissement des lignes longues et l'amélioration des tests d'identité. Il inclut un mode de refactoring agressif pour les violations de style complexes et prend en charge le formatage sélectif via des marqueurs inline pour désactiver les changements pour des blocs de code spécifiques. Les capacités incluent le filtrage de corrections basé sur des règles pour cibler ou ignorer des codes d'erreur spécifiques, le formatage par plage de lignes et la génération de rapports de différences de style. Le système peut traiter des fichiers via une interface en ligne de commande avec parcours récursif de répertoires et modification de fichiers sur place, ou être intégré par programmation via une API. Les préférences de formatage et les ensembles de règles peuvent être gérés via des fichiers de configuration globaux ou locaux.
Identifies and fixes indentation, whitespace, and syntax irregularities using static analysis.
Vulture est un outil d'analyse statique et un linter conçu pour trouver les variables, fonctions et classes inutilisées dans le code source Python. Il opère comme un détecteur de code mort et un chercheur de code inutilisé qui scanne les fichiers sources pour identifier les expressions et importations inaccessibles sans exécuter le code. L'outil emploie un système de score heuristique basé sur la confiance pour attribuer des valeurs de probabilité aux détections, aidant à distinguer les symboles réellement inutilisés des faux positifs potentiels. Il aide en outre à élaguer la logique morte en triant les classes et fonctions inutilisées détectées par nombre de lignes pour prioriser la suppression des plus gros blocs de code. La surface d'analyse inclut l'analyse de l'accessibilité du flux de contrôle, le suivi des références de symboles et la capacité de supprimer les faux positifs via des modèles de noms, des décorateurs ou des commentaires d'ignorance. Vulture prend également en charge la génération et la gestion de listes blanches via des modules mock pour exclure des éléments spécifiques des scans ultérieurs. Les règles d'analyse à l'échelle du projet et les chemins cibles peuvent être gérés via des fichiers de configuration, incluant la prise en charge du format TOML.
Provides static analysis for Python source code to identify unreachable blocks and unused imports.
Overcommit is a Git hook manager and pre-commit validation framework designed to automate the execution of scripts and checks during various Git events. It serves as a workflow automation tool that ensures code quality and project standards are met before changes are committed or pushed to a remote repository. The system distinguishes itself through a comprehensive YAML-based configuration that allows for detailed hook behavior control, including file execution filtering, conditional skipping, and the management of hook dependencies. It provides specialized roles such as a commit message vali
Integrates Pylint to analyze Python files for coding errors and style violations.