6 Repos
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 ist ein statisches Code-Analysetool für Python, das Quellcode auf Fehler, Verstöße gegen Codierungsstandards und Code-Smells prüft, ohne das Programm auszuführen. Es parst Code in einen abstrakten Syntaxbaum und durchläuft diesen, um Probleme zu erkennen, erzwingt konfigurierbare Stilregeln und Namenskonventionen und identifiziert doppelte Codeblöcke durch den Vergleich tokenisierter Quellsequenzen. Das Tool enthält zudem eine Inferenz-Engine, die Variablentypen durch Simulation von Codepfaden ableitet, was eine tiefere Analyse selbst in nicht typisiertem Code ermöglicht. Was Pylint auszeichnet, ist seine Plugin-basierte Checker-Architektur, die es Benutzern ermöglicht, die Analyse durch das Laden externer Python-Module zu erweitern, die benutzerdefinierte Checker und Inferenzregeln zur Laufzeit registrieren. Es unterstützt das Layering von Konfigurationsdateien, wobei Einstellungen aus mehreren Konfigurationsdateien und Befehlszeilenargumenten zusammengeführt werden, sodass projektweite Standardeinstellungen durch lokale oder Plugin-spezifische Optionen überschrieben werden können. Pylint verfolgt zudem die Codequalität im Zeitverlauf, indem aktuelle Analyseergebnisse mit einem gespeicherten Basiswert verglichen werden, berichtet über Verbesserungen oder Regressionen in aufeinanderfolgenden Durchläufen und kann UML-Klassen- und Paketdiagramme aus dem abstrakten Syntaxbaum in Graphviz-, PlantUML- oder MermaidJS-Formaten generieren. Das Tool lässt sich in Continuous-Integration-Pipelines und Pre-Commit-Hooks integrieren, um Prüfungen automatisch über mehrere Python-Interpreter-Versionen hinweg auszuführen. Es kann über pip, conda oder einen Systempaketmanager installiert werden und bietet eine optionale Rechtschreibprüfung für Code-Bezeichner durch die enchant-Bibliothek. Pylint bietet zudem Editor-Integration für Umgebungen wie Emacs und TextMate und enthält einen Nachrichten-Erklärungs-Viewer, der die vollständige Beschreibung und den Kontext jedes spezifischen Warn- oder Fehlercodes direkt über die Befehlszeile ausgibt.
Provides static analysis for Python source code, detecting errors, style violations, and code smells.
python-mode ist ein Vim-IDE-Plugin, das ein integriertes Toolset für die Python-Entwicklung bereitstellt. Es enthält eine Debugging-Schnittstelle zur Verwaltung von Ausführungs-Breakpoints und zur Inspektion des Programmstatus, einen Dokumentationsbrowser zum Abrufen offizieller Sprachsymbole sowie ein System für statische Analyse und automatisierte strukturelle Refactorings. Das Projekt verfügt über einen dedizierten Umgebungsmanager, der projektspezifische virtuelle Umgebungen erkennt und nutzt, um die korrekte Auflösung von Bibliotheken und Interpretern zu gewährleisten. Es integriert externe Tools wie PyLint und Rope, um Codefehler zu identifizieren und projektweite Refactorings durchzuführen. Das Plugin deckt breite Entwicklungsfunktionen ab, einschließlich Echtzeit-Linting, automatisierter Code-Formatierung und intelligenter Code-Vervollständigung. Es bietet zudem strukturelle Navigationstools zum Springen zwischen Definitionen, fortgeschrittenes Syntax-Highlighting und die Möglichkeit, einzelne Code-Blöcke direkt aus dem Editor auszuführen.
Uses PyLint to perform static analysis of Python source code to detect errors and style violations.
jedi-vim ist eine Vim-Erweiterung und ein Language-Server-Interface, das statische Analyse und intelligente Autovervollständigung für die Python-Entwicklung bietet. Es fungiert als Brücke zwischen dem Vim-Editor und der Jedi-Bibliothek, um IDE-Funktionen in den Editor zu bringen. Das Plugin bietet kontextsensitive Code-Vervollständigung und statische Analysetools, einschließlich der Möglichkeit, zu Definitionen zu springen, die Verwendung von Symbolen über Dateien hinweg zu verfolgen und Bezeichner global umzubenennen, um die Konsistenz der Codebasis zu wahren. Es bietet zudem schwebende Popups für Dokumentationsvorschauen und Echtzeit-Anzeigen von Funktionssignaturen. Das Tool beinhaltet eine Integration für Python-Virtual-Environments, um eine präzise Analyse projektspezifischer Abhängigkeiten und Drittanbieter-Pakete sicherzustellen.
Provides a static analysis tool for Python to enable symbol navigation, refactoring, and documentation popups.
autopep8 is a Python static code styler and formatter designed to automatically rewrite source code to comply with the PEP 8 style guide. It functions as a recursive code cleaner that identifies and fixes indentation, whitespace, and syntax irregularities across entire projects. The tool performs structural refactoring using abstract syntax tree transformations to execute non-whitespace changes, such as shortening long lines and improving identity tests. It includes an aggressive refactoring mode for complex style violations and supports selective formatting via inline markers to disable chan
Identifies and fixes indentation, whitespace, and syntax irregularities using static analysis.
Vulture ist ein statisches Analysetool und Linter, das entwickelt wurde, um ungenutzte Variablen, Funktionen und Klassen im Python-Quellcode zu finden. Es arbeitet als Dead-Code-Detektor und Finder für ungenutzten Code, der Quelldateien scannt, um nicht erreichbare Ausdrücke und Importe zu identifizieren, ohne den Code auszuführen. Das Tool verwendet ein konfidenzbasiertes heuristisches Bewertungssystem, um Erkennungen Wahrscheinlichkeitswerte zuzuweisen und so zwischen tatsächlich ungenutzten Symbolen und potenziellen False Positives zu unterscheiden. Es unterstützt zudem das Bereinigen von Dead-Code, indem erkannte ungenutzte Klassen und Funktionen nach Zeilenanzahl sortiert werden, um die Entfernung der größten Codeblöcke zu priorisieren. Die Analyseoberfläche umfasst Control-Flow-Reachability-Analyse, Symbol-Referenz-Tracking und die Möglichkeit, False Positives durch Namensmuster, Decorators oder Ignore-Kommentare zu unterdrücken. Vulture unterstützt zudem die Erstellung und Verwaltung von Whitelists über Mock-Module, um spezifische Elemente von nachfolgenden Scans auszuschließen. Projektweite Analyseregeln und Zielpfade können über Konfigurationsdateien verwaltet werden, einschließlich Unterstützung für das TOML-Format.
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.