Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modification reindent.py

1 réponse
Avatar
Pierre Maurette
Bonsoir,

J'avais fait le choix - une erreur ? - d'une base d'indentation de 2.
Mais j'utilise plusieurs éditeurs, et en particulier mais pas
exclusivement une floppée d'Eclipse/Pydev sur diverses plateformes.
J'arrive donc parfois à un code fonctionnel mais hétérogène sur le plan
de l'indentation.
Je suis également tombé sur du code tiers qui mélange espaces et
tabulations (j'ai en tête le client Usenet XPN).

J'ai voulu me faire une moulinette pour remettre tout ça au propre,
mais ça demande un minimum de travail de parsing. J'ai alors regardé le
code de reindent.py de Tim Peters, qui réindente proprement sur une
base standard de 4. Et je me suis aperçu que rendre la base
d'indentation paramétrable *semblait* trivial. J'ai testé et ça
*semble* fonctionnner, sur du code valide bien entendu. Modifications
de la string de doc:

"""reindent [-t][-d][-r][-v] [ path ... ]

-t val (--tab) Tab width. New tab width, val in caracters.
[blah]
Change Python (.py) files to use val-space indents and no hard tab
characters.
val cannot be 0 (irreversible !) and default to 4.
Also trim etc.

Pourquoi Tim Peters avait-il codé en dur la base d'indentation à 4 ?
Y a-t-il un piège à con dans ma modification qui m'a échappé ?

Bonne soirée,

--
Pierre Maurette

1 réponse

Avatar
NicolasP
Bonjour,

Le 28/01/2010 21:43, Pierre Maurette a écrit :
Bonsoir,

J'avais fait le choix - une erreur ? - d'une base d'indentation de 2.
Mais j'utilise plusieurs éditeurs, et en particulier mais pas
exclusivement une floppée d'Eclipse/Pydev sur diverses plateformes.
J'arrive donc parfois à un code fonctionnel mais hétérogène sur le plan
de l'indentation.
Je suis également tombé sur du code tiers qui mélange espaces et
tabulations (j'ai en tête le client Usenet XPN).

J'ai voulu me faire une moulinette pour remettre tout ça au propre, mais
ça demande un minimum de travail de parsing. J'ai alors regardé le code
de reindent.py de Tim Peters, qui réindente proprement sur une base
standard de 4. Et je me suis aperçu que rendre la base d'indentation
paramétrable *semblait* trivial. J'ai testé et ça *semble* fonctionnner,
sur du code valide bien entendu. Modifications de la string de doc:

"""reindent [-t][-d][-r][-v] [ path ... ]

-t val (--tab) Tab width. New tab width, val in caracters.
[blah]
Change Python (.py) files to use val-space indents and no hard tab
characters.
val cannot be 0 (irreversible !) and default to 4.
Also trim etc.

Pourquoi Tim Peters avait-il codé en dur la base d'indentation à 4 ?
Y a-t-il un piège à con dans ma modification qui m'a échappé ?



Peut être parce que le code de bonne conduite de Python recommanded'utiliser une indentation de 4 espaces...
Bonne soirée,



Bonne journée