Formater du code Python

Seuls les espaces sont réécrits : l'indentation est réordonnée et les lignes longues peuvent être coupées, tandis que chaînes, commentaires et opérateurs sont copiés octet par octet. C'est un formateur de mise en page, pas un linter : il ne vérifie ni ne répare la syntaxe.

Fonctionne localement dans votre navigateur
Copier

Comment formater du code Python dans le navigateur

Collez un extrait Python : l'outil renvoie le même programme avec une indentation réordonnée, une règle sur les lignes vides et un retour à la ligne facultatif. Seuls les espaces entre les jetons sont réécrits : chaînes, commentaires et accolades des f-strings sont copiés octet par octet, le résultat donne donc le même arbre syntaxique que l'entrée.

Le formateur s'exécute entièrement dans cet onglet et rien n'est envoyé. C'est un formateur de mise en page, pas un linter : il ne vérifie, ne compile et ne répare pas Python, et ne signale jamais d'erreur — un extrait cassé revient mis en page, pas corrigé.

  1. Collez le code Python dans la zone et cliquez sur Python Code Formatting, ou Ctrl/⌘+Entrée. Chaque exécution remplace le résultat précédent.
  2. Choisissez l'indentation (tabulation ou 2, 3, 4 ou 8 espaces), le nombre de lignes vides à conserver et le retour à la ligne à 80 ou 120 caractères.
  3. Cliquez sur Copy pour récupérer le résultat, ou sur Clear pour vider les deux zones avant l'extrait suivant.
  4. Le retour à la ligne ne coupe qu'aux espaces situés hors des chaînes et des commentaires : entre crochets, le saut est implicite ; ailleurs, une barre oblique inverse est ajoutée. Choisissez No wrapping pour laisser chaque ligne telle qu'elle est écrite.

Ce que le formateur change — et ce qui reste identique

Ce qui est réécrit et ce qui est copié

Seuls les espaces entre les jetons sont réécrits : l'indentation de début de ligne est ramenée à l'unité choisie, les espaces en fin de ligne et les lignes vides en trop disparaissent, et les lignes longues peuvent être coupées. Tout le reste est copié octet par octet — chaînes entre guillemets simples et doubles, chaînes raw, bytes et f-strings (y compris les accolades contenant des guillemets imbriqués), chaînes triples et docstrings avec leur indentation interne, commentaires, et opérateurs tels que **, //, :=, -> ainsi que les * et ** des appels et du déballage.

Vérification rapide d'un résultat : la sortie contient les mêmes jetons, dans le même ordre, que l'entrée, simplement re-espacés. Si le code passe aussi par Black, Ruff ou autopep8 dans votre éditeur, cette page ne remplace pas cette étape : elle sert à lire un extrait, pas à une chaîne de compilation.

Indentation, lignes vides et retour à la ligne

Chaque niveau d'indentation plus profond devient une unité de la largeur choisie : tabulations, 2, 3, 4 et 8 espaces produisent donc la même structure de blocs, et un fichier qui mélange les styles est normalisé sur l'unité retenue. Les lignes qui poursuivent une instruction inachevée — entre crochets ou après une barre oblique inverse — gardent leur décalage par rapport à l'instruction à laquelle elles appartiennent.

L'option de lignes vides limite les suites de lignes vides : les supprimer, en garder au plus une ou deux (la valeur par défaut en garde deux, l'espacement habituel autour des définitions de premier niveau) ou les garder toutes. Le retour à la ligne est glouton et ne coupe qu'aux espaces hors chaînes et commentaires, donc aucun jeton n'est scindé ; si une longue chaîne ou un long nom ne peut pas être coupé, la ligne reste longue au lieu d'être tronquée.

Ce qu'il ne fait pas

Ce n'est ni un linter, ni un correcteur de style, ni un interpréteur. Rien n'est exécuté, aucun nom n'est renommé, les imports ne sont pas triés, les guillemets ne sont pas convertis, et un deux-points manquant ou un crochet non fermé n'est pas signalé. Les lignes coupées par l'auteur restent coupées, à l'exception de leur indentation.

Comme le programme n'est jamais analysé, la page ne peut pas dire que l'entrée est invalide : un mélange de tabulations et d'espaces, par exemple, est normalisé au lieu d'être signalé. Passez le résultat par python -m py_compile ou par le contrôle de votre éditeur si vous devez savoir qu'il est valide.

Outils récents :