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é ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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...
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...