Add black & isort infos to coding style
parent
f0162e9661
commit
bc4adbf875
|
@ -10,17 +10,23 @@ collaboratif.
|
|||
Ces contraintes ne devraient pas être des freins ! Si vous éprouvez des
|
||||
difficultés à les appliquer, placez votre attention sur la réalisation de votre
|
||||
but initial. Quelqu'un, ou vous-même, pourra toujours repasser un peu plus
|
||||
tard pour vous aider à *peaufiner*.
|
||||
tard pour vous aider à [*peaufiner*](https://www.youtube.com/watch?v=wf-BqAjZb8M).
|
||||
|
||||
Ceratins des outils mentionnés ci-dessous peuvent être installés depuis
|
||||
gestioCOF avec:
|
||||
|
||||
pip install -r requiments-devel.txt
|
||||
|
||||
[[_TOC_]]
|
||||
|
||||
|
||||
Linters
|
||||
-------
|
||||
|
||||
Commençons par les conventions les plus simples à respecter : celles mises en
|
||||
œuvre par des programmes externes.
|
||||
Ils peuvent généralement être intégrés facilement à votre éditeur de texte,
|
||||
nativement parfois, par l'installation d'extensions sinon.
|
||||
Ces outils peuvent généralement être intégrés facilement à votre éditeur de
|
||||
texte, nativement parfois, par l'installation d'extensions sinon.
|
||||
Une rapide recherche du nom de votre éditeur et de l'extension devrait vous
|
||||
mettre sur une bonne voie.
|
||||
|
||||
|
@ -30,6 +36,66 @@ Pour savoir ce qu'il se passe dans la CI, consultez le dernier
|
|||
[gitlab-ci.yml](https://git.eleves.ens.fr/cof-geek/gestioCOF/blob/master/.gitlab-ci.yml)
|
||||
du projet.
|
||||
|
||||
### black
|
||||
|
||||
[black](https://github.com/ambv/black) est le "uncompromising Python code
|
||||
formatter". Il applique des corrections pour rendre le code PEP8-compliant et
|
||||
va au-delà.
|
||||
|
||||
Les changements effectués sont déterministes et seront donc les mêmes peu
|
||||
importe la machine où il est utilisé. Les diffs des MRs s'en trouvent réduits
|
||||
et des conflits de fusion sont ainsi évités.
|
||||
|
||||
Pour formatter le code du projet entier, utilisez:
|
||||
|
||||
black .
|
||||
|
||||
Et sans effectuer de modifications mais en affichant les changements prévus:
|
||||
|
||||
black --check --diff .
|
||||
|
||||
Vous pouvez indiquer un ou plusieurs chemins en particulier:
|
||||
|
||||
black --check --diff bda/
|
||||
|
||||
Un hook git de pre-commit peut être installé (voir les instructions d'installation
|
||||
de gestioCOF) pour formatter automatiquement vos modifications avec black.
|
||||
Notez que black requiert la version 3.6 de Python au minimum.
|
||||
Des modifications pourront être effectuéees au moment de commit, et devront
|
||||
être ajoutées au contenu à commiter.
|
||||
Si le programme n'est pas trouvé sur votre machine, ce check sera ignoré.
|
||||
Attention cependant, l'intégration continue pourrait alors échouer, auquel cas
|
||||
on peut vous aider.
|
||||
|
||||
### isort
|
||||
|
||||
[isort](https://github.com/timothycrosley/isort) est aussi un formatter de code
|
||||
Python, mais limité aux imports (`from ... import ...` et `import ...`).
|
||||
Ces lignes suivent alors des règles de formatage identiques : tri par type
|
||||
d'imports, alphabétique, etc.
|
||||
|
||||
À nouveau cela permet d'éviter des conflits de fusion.
|
||||
|
||||
Pour formatter le code du projet entier, utilisez:
|
||||
|
||||
isort --recursive bda cof gestioncof kfet provisioning shared utils
|
||||
|
||||
Ou seulement certains répertoires:
|
||||
|
||||
isort --recursive cof
|
||||
|
||||
Sans modifier les fichiers et en affichant les changements prévus:
|
||||
|
||||
isort --recursive --check-only --diff bda cof kfet
|
||||
|
||||
Ce formatter est aussi lancé par le hook de pre-commit (si le hook et isort
|
||||
sont installés).
|
||||
Des modifications pourront être effectuéees au moment de commit, et devront
|
||||
être ajoutées au contenu à commiter.
|
||||
Si le programme n'est pas trouvé sur votre machine, ce check sera ignoré.
|
||||
Attention cepedant, l'intégration continue pourrait alors échouter, auquel cas
|
||||
on peut vous aider.
|
||||
|
||||
### flake8
|
||||
|
||||
Le code Python devrait être validé par [flake8](http://flake8.pycqa.org/en/latest/).
|
||||
|
@ -41,9 +107,6 @@ sont bien respectées.
|
|||
[recommande](https://docs.djangoproject.com/en/1.11/internals/contributing/writing-code/coding-style/)
|
||||
son usage.
|
||||
|
||||
Celui-ci peut s'intégrer rapidement à votre éditeur de texte, vérifier dans le
|
||||
catalogue des extensions disponibles de celui-ci.
|
||||
|
||||
### pylint
|
||||
|
||||
Bien que personne ne devrait vous en vouloir de ne pas rendre [Pylint](https://www.pylint.org/)
|
||||
|
|
Loading…
Reference in a new issue