11 dépôts
Tools that assist in modifying, cleaning, or modernizing existing codebases.
Explore 11 awesome GitHub repositories matching part of an awesome list · Code Refactoring. Refine with filters or upvote what's useful.
This project is a comprehensive collection of software design patterns implemented in Python. It serves as a reference for architectural, behavioral, creational, and structural patterns to guide the organization of Python applications. The collection covers behavioral strategies for managing object communication and state, creational techniques for controlling object instantiation, and structural methods for composing classes and objects into flexible hierarchies. It also includes architectural references for system-wide structuring, such as multi-tier architectures and blackboard models. Th
Identifies architectural anti-patterns and provides clean, idiomatic Python refactoring alternatives.
Awesome autocompletion, static analysis and refactoring library for python
Library for autocompletion and static analysis during refactoring.
MonkeyType est un outil d'inférence de type et d'analyse au runtime pour Python. Il collecte les types réels des arguments et des retours à partir des appels de fonction pendant l'exécution du programme pour automatiser la production d'annotations de type statiques et de fichiers stub compatibles. Le système convertit les traces d'exécution capturées en indices de type statiques, qui peuvent être insérés directement dans les définitions de fonction du code source ou utilisés pour générer des stubs de type externes. Ce processus permet l'ajout de sécurité de type aux bases de code existantes en analysant les types de données réels plutôt que par un audit manuel. Les capacités de l'outil couvrent la collecte de types au runtime, l'inférence de type dynamique et la génération de définitions de type statiques. Il utilise la modification du code source et la persistance des traces d'appel pour mapper les modèles observés au runtime vers des signatures statiques.
Generates type annotations by observing runtime execution.
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.
Identifies and removes unused or dead code.
pyupgrade est un modernisateur de code statique et un outil de mise à niveau de syntaxe pour Python. Il réécrit automatiquement le code source pour implémenter des fonctionnalités de langage modernes et une syntaxe basée sur une version cible spécifiée. L'outil se concentre sur la suppression de la dette technique en supprimant les imports obsolètes, les correctifs de compatibilité et les blocs conditionnels obsolètes spécifiques à une version. Il refactorise également les annotations de type pour utiliser les standards actuels, tels que les alias génériques simplifiés et les opérateurs d'union. Sa surface de capacités inclut la mise à jour de l'utilisation de la bibliothèque standard, l'optimisation des appels de fonctions intégrées et la conversion de constructeurs de collections verbeux ou de formatage de chaînes en équivalents modernes concis. Ces transformations sont effectuées via un moteur de règles versionné qui préserve le formatage original et les commentaires.
Automatically updates syntax to use modern language features.
a python refactoring library
Comprehensive library for automated code refactoring tasks.
Removes unused imports and unused variables as reported by pyflakes
Removes unused imports and variables from source files.
add-trailing-comma
Automatically inserts trailing commas for cleaner diffs.
com2ann
Converts type comments into modern type annotations.
.. image:: https://img.shields.io/pypi/v/massedit.svg :target: https://pypi.python.org/pypi/massedit/ :alt: PyPi version
Enables programmatic text editing across multiple files.
🚀 The ultimate linter and formatter for removing unused import statements in your code.
Cleans up unused import statements in Python files.