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 navigateurCollez 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é.
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.
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 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.