6 Repos
A library offering automated refactoring operations like renaming symbols and finding references across Python projects.
Distinct from Automated Refactoring Tools: Distinct from Automated Refactoring Tools: specifically targets Python projects with static analysis for refactoring.
Explore 6 awesome GitHub repositories matching software engineering & architecture · Python Refactoring Libraries. Refine with filters or upvote what's useful.
Awesome autocompletion, static analysis and refactoring library for python
Offers automated refactoring operations like renaming symbols across Python projects.
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 the Rope library to automate structural changes like renaming symbols and updating imports across projects.
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 automated refactoring operations such as global identifier renaming for Python projects.
Pytype ist ein Tool zur statischen Code-Analyse und eine Typinferenz-Engine für Python. Es fungiert als statischer Typ-Analysator, der Typ-Diskrepanzen erkennt und Typ-Annotationen verifiziert, ohne dass vollständige manuelle Hinweise erforderlich sind, und dient gleichzeitig als Typ-Stub-Generator zur Erstellung eigenständiger Definitionsdateien. Das Projekt zeichnet sich dadurch aus, dass es Variablen- und Funktionstypen durch eine Analyse von Codemustern und Zuweisungen automatisch bestimmt. Diese Inferenz-Engine ermöglicht eine strukturelle Code-Verifizierung und die Generierung von Typ-Stubs, die die Schnittstellen von Modulen und Funktionen beschreiben. Das System deckt breite statische Analyseoperationen ab, einschließlich struktureller Validierung von Klassenhierarchien und Funktionsaufrufen sowie Symbol-Tracking zur Erkennung von Namespace-Fehlern und Zugriffen auf ungültige Attribute. Es bietet zudem Typ-Prüf-Primitive zur Durchsetzung von Annotationen und ein Typsystem, das in der Lage ist, komplexe Datenstrukturen unter Verwendung von Unions und Optionals zu modellieren.
Provides cross-reference mapping and namespace analysis to support safe restructuring of Python projects.
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.
Assists in pruning dead logic by prioritizing the removal of the largest blocks of unused code.
pyupgrade is a static code modernizer and syntax upgrader for Python. It automatically rewrites source code to implement modern language features and syntax based on a specified target version. The tool focuses on removing technical debt by deleting deprecated imports, compatibility shims, and obsolete version-specific conditional blocks. It also refactors type annotations to use current standards, such as simplified generic aliases and union operators. Its capability surface includes updating standard library usage, optimizing built-in function calls, and converting verbose collection const
Provides automated refactoring of outdated type hinting syntax into modern generic aliases and union operators.