Propositions liées à la qualité du code (pep8, pylint, ...) #58
Loading…
Reference in New Issue
No description provided.
Delete Branch "propal/pep8-pylint"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Setup.cfg
Dans le fichier
setup.cfg
, j'ai ajouté deux lignes la configuration de flake8 (max-line-lenght et max-complexity)Requirements
J'ai ajouté
pylint
, pour avoir une idée de la qualité de code par application.pylint
J'ai modifié deux points dans l'appli
base
et pylint est tout content !En customisant un peu la config' (voir ici, on arrive à 10/10 pour l'application base 😙 )
--errors-only
En fait, outre sa tendance à noyer le développeur sous une multitude de messages parfois chelous, pylint propore aussi une option
--errors-only
, qui ne liste que les erreurs qu'il détecte. Par exemple:Du coup, le fait que Python soit un langage dynamique peut être compensé par ce genre d'outils (en plus de
mypy
, mais perso, je ne le maîtrise pas).Il suffit ensuite de regarder aux lignes mentionnées ci-dessus:
En gros, si on passe un pattern à cette fonction, elle va de toutes façons planter.
C'est le genre d'étapes que l'on passe à la CI pour être averti au plus tôt d'une fonctionnalité qui pourrait planter 🙂
Intégration avec l'éditeur
J'aime bien aussi intégrer Pylint avec l'éditeur.
VSCodium propose une bonne intégration:
Le seul soucis concerne la création correcte de la structure du projet - et je suis un peu coincé avec le répertoire
src/
, parce que je ne sais pas exactement comment configurer pylint pour que ce soit correct.Quelques idées
trim des lignes
Configure ton éditeur de texte (SublimeText?) pour avoir un trim des lignes à chaque sauvegarde. Si tu utilises VSCodium, tu peux ajouter la ligne suivante dans ton fichier .vscode/settings.json:
A chaque sauvegarde, l'éditeur dégagera tous les espaces qui pourraient terminer une ligne. Chaque commit sera alors propre et aura le poil soyeux - et cela évitera les "faux positifs" qui hurlent "y'a un changement! y'a un changement!" alors que seul le dernier caractère aura été modifié 😉
Ordre des imports
Les imports sont mis au début de chaque fichier. L'ordre a son importance pour la lisibilité:
nommage des variables
Evite les variables
m
,u
, ... Elles doivent signifier quelque chose et respecter lesnake_case
:user_messages
,current_message
, ..."merge master into propal/pep8" ? Pourquoi ? 😥
[WIP] Propositions liées à la qualité du code (pep8, pylint, ...)to Propositions liées à la qualité du code (pep8, pylint, ...)