ToolActToolAct

Outil de Formatage Python

Entrée Python
Sortie
Lignes: 1Caractères: 0Octets: 0
Lignes: 1Caractères: 0

Qu'est-ce que le formatage Python?

Le formateur Python réorganise le code Python avec indentation, retours à la ligne et structure lisible. En Python, l’indentation fait partie de la syntaxe; un code mal copié ou mélangé peut donc changer le comportement ou provoquer des erreurs, pas seulement paraître laid. L’outil aide pour scripts, extraits de notebooks, code généré, exemples pédagogiques, revues et petits refactorings, en rendant fonctions, classes, imports, listes, dictionnaires et expressions imbriquées plus faciles à parcourir. Le formatage ne corrige pas bugs logiques, erreurs de types, dépendances manquantes, environnement d’exécution ni mauvais usage d’API. En projet réel, il doit s’aligner sur Black, Ruff, isort ou les règles d’équipe.

Mode d'emploi

Comment l'utiliser

  1. Collez ou saisissez du code Python dans la zone de saisie de gauche
  2. Choisissez la taille d'indentation (2 espaces, 4 espaces ou tabulation)
  3. Cliquez sur « Formater » pour embellir le code, ou « Minifier » pour le compresser
  4. Consultez le résultat à droite (avec coloration syntaxique)
  5. Cliquez sur « Copier » pour copier dans le presse-papiers

Description des options

Taille d'indentationChoisissez entre 2 espaces, 4 espaces ou une indentation par tabulation. PEP 8 recommande 4 espaces.
FormaterEmbellir le code avec une indentation et des sauts de ligne corrects
MinifierSupprimer les espaces et commentaires pour réduire la taille du fichier

Conseils Python

  • Python est sensible à l'indentation : vérifiez les blocs de contrôle formatés avant de recopier le résultat dans votre projet.
  • Le formatage n'effectue pas de vérifications de type, d'importations ni de tests. Utilisez vos outils Python habituels pour valider le comportement et les dépendances.

Cas d’utilisation

Nettoyer du code Python collé en préservant les chaînes et commentairesUtilisez le formateur lorsqu’un extrait présente une indentation irrégulière, des lignes vides en excès ou des espaces copiés depuis un chat, un wiki ou un ticket. Il protège les chaînes entre guillemets, les blocs triple-quote et les commentaires avant de normaliser l’indentation, afin que le texte de documentation et les notes en ligne ne soient pas réécrits accidentellement. Le résultat est du type d’extrait qui s’insère dans un README ou une réponse Stack Overflow sans déclencher un reformatage.
Détecter les erreurs simples de parenthèses et de chaînes avant de partager du codeL’outil valide les parenthèses, crochets, accolades appariées et les chaînes triple-quote non fermées avant de produire la sortie. Ce n’est pas un interpréteur Python complet ni un remplaçant de Black, mais il détecte les erreurs structurelles évidentes dans les petits exemples, les leçons et les réponses de support. Combinez le formateur avec un vrai linter dans le CI pour détecter les problèmes de logique qu’un formateur ne peut pas voir.
Basculer entre une sortie lisible et des extraits compacts sur une ligneChoisissez 2 espaces, 4 espaces ou des tabulations pour la sortie formatée, ou minifiez le code en une forme compacte séparée par des points-virgules pour les courtes démos et les intégrations. Le résultat peut être copié ou téléchargé au format .py formaté ou .py minifié selon le mode sélectionné. La forme minifiée est pratique pour l’intégration dans des one-liners shell ou de courtes signatures d’e-mail.
Auditer les f-strings et les docstrings triple-quotePassez les f-strings imbriqués, les échantillons regex et les docstrings triple-quote avec des blocs de code intégrés dans le formateur pour vérifier que les accolades et les guillemets restent équilibrés. Une indentation inattendue dans les docstrings signifie généralement que le source avait un triple-quote non fermé plus haut. Revérifiez attentivement l’original lorsque le formateur signale une erreur d’analyse sur un extrait qui semble correct à première vue.
Comparer les styles Black 88 colonnes, PEP 8 79 colonnes et autopep8/yapf/blackLa sortie ici utilise une largeur de ligne configurable plutôt qu’un style de projet fixe ; la cible de 88 colonnes privilégiée par Black donne un résultat plus compact, tandis que la valeur par défaut de PEP 8 à 79 colonnes est celle d’autopep8 et de la plupart des éditeurs. Black est un outil d’opinion non configurable, yapf s’inspire du style Google et est paramétrable, et autopep8 ne corrige que les violations PEP 8 sans restructurer le code. Utilisez cet outil dans le navigateur pour un nettoyage rapide, puis lancez Black ou Ruff dans le CI pour maintenir la cohérence du projet selon le style choisi par l’équipe.

Principe technique

Python est l'un des rares langages mainstream à utiliser l'indentation plutôt que les accolades pour définir les blocs de code. Les instructions consécutives avec la même indentation appartiennent au même bloc ; un espace de plus ou de moins et la sémantique change. Ce design fait correspondre la structure visuelle du code à sa logique, mais il exige que le formateur identifie les niveaux logiques avec précision. Le formateur scanne d'abord le code avec le module tokenize ou un analyseur lexical personnalisé, traitant l'espace blanc de début de chaque ligne comme information d'indentation. Les instructions entre parenthèses (rondes, carrées ou accolades) peuvent s'étendre sur plusieurs lignes, auquel cas l'indentation est déterminée par la profondeur des parenthèses plutôt que par l'espace blanc de début de ligne. L'espace blanc à l'intérieur des littéraux de chaînes (triple guillemets, guillemets simples) ne doit pas être modifié, sinon la valeur de la chaîne change. PEP 8 est le guide de style officiel de Python, spécifiant une indentation de 4 espaces, une longueur maximale de ligne de 79 caractères, des espaces autour des opérateurs, des imports groupés et des conventions de nommage. Black est l'exemple emblématique de l'école des formateurs sans configuration : il impose les guillemets doubles, les virgules finales et une longueur de ligne de 88 caractères, avec des règles strictes et non configurables. yapf est plus proche du style Google et est configurable.

  • Sémantique d'indentation : Python utilise l'espace blanc de début de ligne pour déterminer les blocs de code ; la même indentation signifie le même bloc, un changement d'indentation change la portée
  • Règles PEP 8 : indentation de 4 espaces, largeur de ligne de 79 caractères, espaces autour des opérateurs, CapWords pour les noms de classes, snake_case pour les noms de fonctions
  • Retours à la ligne entre parenthèses : les instructions entre parenthèses (rondes, carrées, accolades) peuvent être réparties sur plusieurs lignes, et l'indentation est déterminée par la profondeur des parenthèses plutôt que par l'espace blanc de début de ligne
  • Délimitation des chaînes : l'espace blanc à l'intérieur des chaînes triple-guillemets et des docstrings ne doit pas être modifié, sinon cela casse le contenu du littéral
  • Style Black : aucune configuration, non personnalisable, impose les guillemets doubles, les virgules finales, 88 caractères par ligne, identique sur l'ensemble du projet
  • Annotations de type : introduites dans PEP 484 ; le formateur préserve l'espacement correct autour des types de retour -> et des annotations de paramètre : type

Exemples

Formatage de définitions de fonctions

Entrée : def add(a,b):
  return a+b


def subtract(a,b):
  return a-b
Sortie :
def add(a, b):
    return a + b


def subtract(a, b):
    return a - b

Formatage de compréhensions de listes

Entrée : result=[x*x for x in range(10) if x%2==0]
result2={k:v for k,v in items if v>0}
Sortie :
result = [x * x for x in range(10) if x % 2 == 0]
result2 = {k: v for k, v in items if v > 0}

Formatage d'une définition de classe

Entrée : class User:
  def __init__(self,name,email):
   self.name=name
    self.email=email
  def __repr__(self):
    return f"User({self.name})"
Sortie :
class User:
    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return f"User({self.name})"

FAQ

Quel style Python utilise-t-il ?

La plupart des versions adoptent par défaut les conventions PEP 8, souvent via Black : largeur de ligne de 88 colonnes, chaînes entre guillemets doubles, pas de point-virgules de fin. Black est opiniâtre : il supprime la plupart des options de configuration pour offrir un style cohérent à l'échelle du projet. autopep8 et yapf offrent plus d'options si vous avez besoin de flexibilité.

L'indentation est-elle importante pour le formateur ?

Oui : l'indentation Python définit la structure des blocs. Le formateur respecte les limites de blocs existantes ; si votre entrée mélange tabulations et espaces ou a de mauvais niveaux d'indentation, l'analyse échoue avant le formatage.

Va-t-il corriger l'ordre des imports ?

Black, autopep8 et yapf ne gèrent que les espaces. Pour trier et grouper les imports, utilisez isort (ou ruff --fix). Certaines pages combinent les deux ; lisez la configuration pour savoir ce qui est réellement appliqué.

Les annotations de type sont-elles prises en charge ?

Oui pour les analyseurs modernes. Les annotations de type sur les signatures de fonctions, variables et attributs de classe (PEP 526, 484, 612) se formatent correctement. La syntaxe très récente (syntaxe générique PEP 695 dans 3.12+) nécessite un analyseur récent ; les versions plus anciennes peuvent buter dessus.

Mon code est-il téléversé ?

Non. Le formatage s'exécute dans votre navigateur via une implémentation JavaScript de l'AST Python. Le code collé n'est pas transmis.

Le résultat correspondra-t-il à Black sur mon CI ?

Proche mais pas toujours identique. Différentes versions de Black peuvent formater légèrement différemment (Black met régulièrement à jour ses règles). Pour la cohérence en CI, exécutez la même version de Black en local et en CI ; traitez cette page comme une vérification visuelle rapide.

Pourquoi enveloppe-t-il les longues lignes sur plusieurs lignes ?

PEP 8 et Black visent ≤88 caractères par ligne. Les expressions longues, les appels de fonction avec de nombreux arguments et les appels de méthodes chaînés sont répartis sur plusieurs lignes pour la lisibilité. Ajustez l'option de largeur de ligne si votre équipe utilise 100 ou 120.